PHP 字符串 替换为字符串结尾


PHP String Replace with end of string

我需要将一些字符串替换到字符串的末尾,或者在他得到";"符号时切断字符串?

我正在尝试,但它不起作用:

$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, ";"));