我可以看到两种方法可以做到这一点,但最终都非常相似:
更换零件
当您在问题中使用 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() function:
$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的情况。