我需要将一些字符串替换到字符串的末尾,或者在他得到";"符号时切断字符串?
我正在尝试,但它不起作用:
$string = "Hello World; lorem ipsum dolor";
$string = str_replace(";","'0",$string);
echo $string; //I want the result is "Hello World"
这应该适合您:
<?php
$string = "Hello World; lorem ipsum dolor";
echo $string = substr($string, 0, strpos($string, ";"));
?>
输出:
Hello World
您需要
用;
拆分字符串并从返回的数组中获取第一个元素(它将始终至少有一个条目(。
echo explode(';', $string, 2)[0];
explode()
我可以看到两种方法可以做到这一点,但最终它们都非常相似:
更换部件
当您在问题中使用str_replace
并在其中放置一个 NUL 字节以结束字符串(例如在 C 中(时,您可能正在寻找的是substr_replace
:
$string = "Hello World; lorem ipsum dolor";
$pos = strpos($string, ";");
if ($pos !== FALSE) {
$string = substr_replace($string, "", $pos);
}
var_dump($string); // string(11) "Hello World"
提取零件
这是大多数其他答案所暗示的。这里甚至是另一个替代函数,您可能正在寻找strstr()
函数: $result = strstr($string, ";", true(;
第三个参数设置为 true 的函数调用将返回所有$string
直到找到指针(第二个参数(";
"(不包括它(。
完整示例:
$string = "Hello World; lorem ipsum dolor";
$result = strstr($string, ";", true);
var_dump($result); // string(11) "Hello World"
根据当";
"是字符串的一部分或不是字符串的一部分时它应该如何工作,如果你想返回完整的字符串,你需要添加一次需要的:
$result = strstr("$string;", ";", true);
如果您使用strpos()
进行操作,这类似,您也必须处理FALSE
情况。
从
";"中剪切其余部分,并从 http://php.net/manual/de/function.strpos.php 中剪切strpos
echo substr($string, 0, strpos($string, ";"));