如何修剪字符串的一部分,并使用PHP将其保存在MySQL的特定字符串中?
示例字符串:"REGISTER 11223344 here"
如何从示例字符串中删除"11223344"
?
答案 0 :(得分:177)
如果您专门定位“11223344”,请使用str_replace
:
echo str_replace("11223344", "", "REGISTER 11223344 here");
答案 1 :(得分:96)
您可以使用str_replace(),其定义为:
str_replace($search, $replace, $subject)
所以你可以把代码写成:
$subject = 'REGISTER 11223344 here' ;
$search = '11223344' ;
$trimmed = str_replace($search, '', $subject) ;
echo $trimmed ;
如果您需要通过正则表达式进行更好的匹配,可以使用preg_replace()。
答案 2 :(得分:21)
假设11223344不是常数
$string="REGISTER 11223344 here";
$s = explode(" ",$string);
unset($s[1]);
$s = implode(" ",$s);
print "$s\n";
答案 3 :(得分:15)
执行以下操作
$string = 'REGISTER 11223344 here';
$content = preg_replace('/REGISTER(.*)here/','',$string);
这将返回“REGISTERhere”
或
$string = 'REGISTER 11223344 here';
$content = preg_replace('/REGISTER (.*) here/','',$string);
这将返回“在此注册”
答案 4 :(得分:6)
当您需要基于规则的匹配时,您需要使用正则表达式
$string = "REGISTER 11223344 here";
preg_match("/(\d+)/", $string, $match);
$number = $match[1];
这将匹配第一组数字,因此如果您需要更具体,请尝试:
$string = "REGISTER 11223344 here";
preg_match("/REGISTER (\d+) here/", $string, $match);
$number = $match[1];
答案 5 :(得分:5)
substr()是一个内置的php函数,它返回一个字符串的一部分。 函数substr()将把一个字符串作为输入,索引表单是你想要修剪字符串的地方。可选参数是子字符串的长度。您可以在http://php.net/manual/en/function.substr.php
上查看相应的文档和示例代码注意:字符串的索引从0开始。
答案 6 :(得分:3)
str_replace(find, replace, string, count)
答案 7 :(得分:1)
动态地,如果要从(a)字符串的固定索引中删除(a)部分,请使用此函数:
/*
* Remove index/indexes from a string, delimited by a space (or something else).
* First, divides the string by delimiter and holds divided parts as an array.
* If $index is an array, it removes all indexes of the divided string;
* otherwise (i.e. has an int value), it removes just that index of the string.
* At last, it joins all string parts together and return it as a string.
* Note: If you want to use this function in PHP5, remove scalar type hints
* (i.e. keywords before function arguments).
* Note: For PHP versions lower than 7.0, remove scalar type hints (i.e. the
* types before each argument) and the return type.
*/
function remove_from_str(string $str, $index, string $delimiter = " "): string
{
// String parts
$strParts = explode($delimiter, $str);
// Remove indexes from string parts
if (is_array($index))
foreach ($index as $i)
$strParts[(int)$i] = null;
else
$strParts[(int)$index] = null;
// Remove null values, to prevent duplicating delimiter
$strParts = array_filter($strParts);
// Join all parts together and return it
return implode($delimiter, $strParts);
}
出于您的目的:
remove_from_str("REGISTER 11223344 here", 1);
// Output: REGISTER here
它的一个用法是执行类似命令的字符串,你知道它们的结构。
答案 8 :(得分:0)
以下代码段将在此处打印“ REGISTER”
$string = "REGISTER 11223344 here";
$result = preg_replace(
array('/(\d+)/'),
array(''),
$string
);
print_r($result);
preg_replace()API的用法如下。
$result = preg_replace(
array('/pattern1/', '/pattern2/'),
array('replace1', 'replace2'),
$input_string
);
答案 9 :(得分:-1)
如果您喜欢其他方式,也可以这样做......
function str_substract($remove, $subject){
$strpos = strpos($subject, $remove);
return substr($subject, 0, $strpos) . substr($subject, $strpos + strlen($remove));
}
$str = "Hello, world. This is amazing";
print str_substract('rld', $str);
/* Outputs: */
"Hello, wo. This is amazing"
注意:这不适用于所有字符,例如unicode字符串
答案 10 :(得分:-3)
如果要从给定字符串中删除字符串的一部分 这可能对你有帮助
chop($string,'part_of_string');