返回php中第一个字符出现之前的字符串部分

返回php中第一个字符出现之前的字符串部分,php,string,Php,String,在PHP中,返回第一次出现特定字符之前的字符串部分的最简单方法是什么 例如,如果我有一个字符串 “那只敏捷的棕色狐狸跳过了etc。” …我正在筛选空格字符(“”),函数将返回 “这个” 谢谢 您可以这样做: $string = 'The quick brown fox jumped over the lazy dog'; $substring = substr($string, 0, strpos($string, ' ')); 但是我更喜欢这个: list($firstWord) = exp

在PHP中,返回第一次出现特定字符之前的字符串部分的最简单方法是什么

例如,如果我有一个字符串

“那只敏捷的棕色狐狸跳过了etc。”

…我正在筛选空格字符(“”),函数将返回 “这个”


谢谢

您可以这样做:

$string = 'The quick brown fox jumped over the lazy dog';
$substring = substr($string, 0, strpos($string, ' '));
但是我更喜欢这个:

list($firstWord) = explode(' ', $string);
查找字符串的第一个匹配项。返回haystack字符串的一部分,该字符串从针的第一次出现开始,包括针的第一次出现,一直到haystack的结尾

第三个参数:如果为TRUE,则strstr()返回针第一次出现之前的草堆部分(针除外)

打印
文件

这个怎么样:

$string = "The quick brown fox jumped over the etc etc.";

$splitter = " ";

$pieces = explode($splitter, $string);

echo $pieces[0];
对于谷歌人来说:这样更好

echo strtok("The quick brown fox",  ' ');

总而言之,有四种方法

strstr($str,' ',true);
strtok($str,' ');
explode(' ', $str)[0];  //slowest
substr($str, 0, strpos($str, ' '));
不同之处在于,如果未找到分隔符:

strstr
返回false

strtok
explode
返回整个字符串

substr
返回空字符串

如果多字节出现意外故障,请尝试使用
mb\u strstr

mb_strstr($str, 'и', true);
strtok()函数将字符串拆分为较小的字符串 例如:

$string = "The quick brown";
$token = strtok($string, " "); // output: The
如果没有空间:打印所有字符

$string = "Thequickbrown";
$token = strtok($string, " "); // output: Thequickbrown

这不会带来错误吗?我认为link必须为要分解的数组中的变量数量设置一个匹配的VARABLE集合(或用空逗号分隔)?以防您想要返回变量而不是分配它
return array_shift(explode(“”,$string))如果未找到字符串(此处为空格),则第一个返回空字符串。第二个返回整个字符串。您还可以在中使用
limit
参数,这样
$string
不会超出需要进行扫描:
list($firstWord)=explode(“”,$string,2)我尝试了这段代码,得到了一个警告:“strstrstr()的参数计数错误”。原因是这段代码只在PHP5.3.0中起作用。我使用的是PHP的早期版本。如果没有找到指针,它将返回false。这正是你所期望的。所以我个人觉得这是更好的答案。在许多其他答案中,您可能还需要检查字符串是否包含令牌,否则会得到不可预测的结果。当然,除非它是一个给定的。干净、简单,有良好的命名约定,以便清楚地理解。这个答案应该有更多的投票权,因为我使用
strstrstr
将大文本int减半,
strstrstr
上下双向工作:);您可能会发现有帮助,如中所示。strtok的唯一缺点是,如果找不到令牌,它将返回整个字符串。除非您需要的是整个字符串。这正是我需要的。谢谢你让它明确。这正是我需要的(包括整个字符串)。也不需要任何错误处理。谢谢如果字符串以“token”开头,它将被跳过;它不会返回第一个“token”之前的空字符串;它将返回“tokens”之间的第一个非空部分。如果传递空字符串,它也将返回
false
(不是空字符串)。有几个陷阱。如果没有找到拆分器,它将返回整个字符串。@Soaku,这只是一个观察。
explode()
。这个答案应该被解释——不仅仅是为了教育,而且是为了让搜索引擎有一些东西可以琢磨。如果指针前的子字符串是错误的,那么错误的三元检查并不总是可靠的。明白了:另外,
strpos($str,)
可能返回
false
或偏移量
0
。那行代码也不可靠。最后一行只是一个可能的逻辑示例。它从来没有说明它做了什么,这似乎是一个真正的机会,那么,对你来说,改善你的答案与一个新的答案。在与研究人员分享见解时,请始终慷慨、可靠、准确。好的,我已经将示例简化为函数用法
$string = "Thequickbrown";
$token = strtok($string, " "); // output: Thequickbrown