PHP函数不能处理String对象,但可以处理手动输入的对象

iecba09b  于 2023-01-01  发布在  PHP
关注(0)|答案(2)|浏览(123)

我试着从一个对象的文本输出中剥离标签。问题是,我不能。如果我手动输入"<p>http://www.mylink.com</p>",它工作得很好!当执行echo $item->text;时,它给我同样的字符串"<p>http://www.mylink.com</p>";。执行var_dump或甚至gettype时,给我一个string()。所以,我确信它是一个字符串,但它的行为不像它。我试了几个函数preg_replacepreg_matchstrip_Tags,都不行,怎么解决这个问题,怎么调试?

$search = array("<p>", "</p>");
 $switch = array("foo", "baa");

 //works just fine, when used
 $text = "<p>http://www.mylink.com</p>"; 

 //it's a string for sure!
 var_dump($item->introtext);

 $text = $item->introtext;

 //doesn't work
 $text = str_replace($search, $switch, $text);

 $text = strip_tags($text, "<p>");

 //doesn't work either.
 $matches = array();
 $pattern = '/<p>(.*)<\/p>/';

 preg_match($pattern, $text, $matches);

 //gives me the following output: <p>http://www.omeulink.com</p>
 echo $text;
af7jpaap

af7jpaap1#

请尝试以下操作

$text = $item->introtext;
$newText = strip_tags($text);
wecizke3

wecizke32#

在将对象输入函数之前将其类型转换为字符串。
$text =(字符串)$item-〉介绍;

相关问题