PHP:在一些文本后获取文本

时间:2019-07-02 18:01:07

标签: php

我有这个:

$variable = "El documento ya ha sido registado anteriormente,su estado es aceptado";

如何在'es '之后获得文本?这应该返回aceptado

4 个答案:

答案 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); 
?>