我有这个:
$variable = "El documento ya ha sido registado anteriormente,su estado es aceptado";
如何在'es '
之后获得文本?这应该返回aceptado
。
答案 0 :(得分:2)
看看这段代码并尝试一下
$variable = "El documento ya ha sido registado anteriormente,su estado es aceptado";
$estado = explode("El documento ya ha sido registado anteriormente,su estado es ", $variable);
echo $estado[0];
echo $estado[1]; // aceptado
希望它对您有用!
答案 1 :(得分:2)
尝试一下
$variable = "El documento ya ha sido registado anteriormente,su estado es aceptado";
$estado = explode("es ", $variable);
echo $estado[0];
echo $estado[1];
答案 2 :(得分:2)
有很多方法可以做到这一点。正则表达式是一种方式,您可以使用explode()
进行多种方式,也可以将strpos()
与substr()
一起使用。我敢肯定还有其他聪明的方法。
在此示例中,我们将使用explode()
将字符串分成单词数组。在我看来,这是个好主意,因为您可以避免与包含您要查找的单词的单词混淆(例如,如果不使用空格填充strpos()
,则可能会遇到它。)
一旦我们有了所有单词的数组,我们就使用array_search()
来查找我们要查找的单词所在的索引。我们在array_slice()
中使用该位置来获取所需的零件,然后implode()
将其放回字符串中。
$variable = "El documento ya ha sido registado anteriormente,su estado es aceptado";
$parts = explode(" ", $variable);
$position = array_search("es", $parts);
echo implode(" ", array_slice($parts, $position + 1)); // +1 to not include the word we're looking for
您还可以将其用explode(" es ", $variable)
分割(注意每边的空格,以确保它是一个单词,而不是另一个单词的一部分),然后打印最后一个元素。
$variable = "El documento ya ha sido registado anteriormente,su estado es aceptado";
$parts = explode(" es ", $variable);
echo array_pop($parts);
或者您可以使用正则表达式对单词es
进行拆分,并以与以前相同的原因注意\b
-我们要确保单词上的单词而不是单词的一部分
$variable = "El documento ya ha sido registado anteriormente,su estado es aceptado";
$words = preg_split("/\bes\b/iu", $variable);
echo array_pop($words);
答案 3 :(得分:2)
使用strpos()搜索'es'。得到'es'的位置后,在substr()中添加2以删除'es'。我加了2,因为es中的char总数为2
<?php
$variable = "El documento ya ha sido registado anteriormente,su estado es aceptado";
$position =strpos($variable , 'es ');
echo substr($variable, $position + 2);
?>