Làm thế nào tôi có thể loại bỏ một phần của chuỗi?
Chuỗi ví dụ: "REGISTER 11223344 here"
Làm thế nào tôi có thể loại bỏ "11223344"
khỏi chuỗi ví dụ trên?
REGISTER here
trong cơ sở dữ liệu?
Làm thế nào tôi có thể loại bỏ một phần của chuỗi?
Chuỗi ví dụ: "REGISTER 11223344 here"
Làm thế nào tôi có thể loại bỏ "11223344"
khỏi chuỗi ví dụ trên?
REGISTER here
trong cơ sở dữ liệu?
Câu trả lời:
Nếu bạn đặc biệt nhắm mục tiêu "11223344", thì hãy sử dụng str_replace
:
// str_replace($search, $replace, $subject)
echo str_replace("11223344", "","REGISTER 11223344 here");
Bạn có thể sử dụng str numplace () , được định nghĩa là:
str_replace($search, $replace, $subject)
Vì vậy, bạn có thể viết mã dưới dạng:
$subject = 'REGISTER 11223344 here' ;
$search = '11223344' ;
$trimmed = str_replace($search, '', $subject) ;
echo $trimmed ;
Nếu bạn cần kết hợp tốt hơn thông qua các biểu thức thông thường, bạn có thể sử dụng preg numplace () .
giả sử 11223344 không phải là hằng số
$string="REGISTER 11223344 here";
$s = explode(" ",$string);
unset($s[1]);
$s = implode(" ",$s);
print "$s\n";
str_replace(find, replace, string, count)
Theo ví dụ OP:
$Example_string = "REGISTER 11223344 here";
$Example_string_PART_REMOVED = str_replace('11223344', '', $Example_string);
// will leave you with "REGISTER here"
// finally - clean up potential double spaces, beginning spaces or end spaces that may have resulted from removing the unwanted string
$Example_string_COMPLETED = trim(str_replace(' ', ' ', $Example_string_PART_REMOVED));
// trim() will remove any potential leading and trailing spaces - the additional 'str_replace()' will remove any potential double spaces
// will leave you with "REGISTER here"
Khi bạn cần kết hợp dựa trên quy tắc, bạn cần sử dụng regex
$string = "REGISTER 11223344 here";
preg_match("/(\d+)/", $string, $match);
$number = $match[1];
Điều đó sẽ khớp với bộ số đầu tiên, vì vậy nếu bạn cần cụ thể hơn hãy thử:
$string = "REGISTER 11223344 here";
preg_match("/REGISTER (\d+) here/", $string, $match);
$number = $match[1];
$match
mảng. Loại bỏ các dấu ngoặc sau đó acces qua $match[0]
.
chất nền () là một hàm php tích hợp trả về một phần của chuỗi. Hàm struct () sẽ lấy một chuỗi làm đầu vào, dạng chỉ mục nơi bạn muốn chuỗi được cắt. và một tham số tùy chọn là độ dài của chuỗi con. Bạn có thể xem tài liệu và mã ví dụ thích hợp trên http://php.net/manual/en/feft.substr.php
LƯU Ý: chỉ mục cho một chuỗi bắt đầu bằng 0.
Tự động, nếu bạn muốn xóa (a) một phần khỏi (a) chỉ mục cố định (es) của một chuỗi, hãy sử dụng chức năng này:
/**
* Removes index/indexes from a string, using a delimiter.
*
* @param string $string
* @param int|int[] $index An index, or a list of indexes to be removed from string.
* @param string $delimiter
* @return string
* @todo Note: For PHP versions lower than 7.0, remove scalar type hints (i.e. the
* types before each argument) and the return type.
*/
function removeFromString(string $string, $index, string $delimiter = " "): string
{
$stringParts = explode($delimiter, $string);
// Remove indexes from string parts
if (is_array($index)) {
foreach ($index as $i) {
unset($stringParts[(int)($i)]);
}
} else {
unset($stringParts[(int)($index)]);
}
// Join all parts together and return it
return implode($delimiter, $stringParts);
}
Vì mục đích của bạn:
remove_from_str("REGISTER 11223344 here", 1); // Output: REGISTER here
Một trong những cách sử dụng của nó là thực thi các chuỗi giống như lệnh mà bạn biết cấu trúc của chúng.
Đoạn mã sau sẽ in "ĐĂNG KÝ tại đây"
$string = "REGISTER 11223344 here";
$result = preg_replace(
array('/(\d+)/'),
array(''),
$string
);
print_r($result);
API preg numplace () sử dụng chúng tôi như được đưa ra dưới đây.
$result = preg_replace(
array('/pattern1/', '/pattern2/'),
array('replace1', 'replace2'),
$input_string
);
preg_replace()
trong trường hợp này. Cũng không có bất kỳ lợi ích để sử dụng một nhóm chụp.
Làm như sau
$string = 'REGISTER 11223344 here';
$content = preg_replace('/REGISTER(.*)here/','',$string);
Điều này sẽ trả về "ĐĂNG KÝ"
hoặc là
$string = 'REGISTER 11223344 here';
$content = preg_replace('/REGISTER (.*) here/','',$string);
Điều này sẽ trả về "ĐĂNG KÝ tại đây"
remove
, nhưng có vẻ như bạn muốn nóiextract
rằng chuỗi mục tiêu có thể được lưu trữ trong cơ sở dữ liệu.