我想替换一个重复的数组,所以我这样做:
$thisarray = preg_replace ("/HELLO/"), "BYE", $thisarray);
echo $thisarray[0];
这很有效......当我使用PHP SIMPLE HTML DOM PARSER指令“plaintext”时会出现问题
$thisarray = preg_replace ("/HELLO/"), "BYE", $thisarray);
echo $thisarray[0]->plaintext;
它说:注意:尝试在
中获取非对象的属性答案 0 :(得分:2)
$thisarray
是一个字符串数组或一个simple_html_dom实例数组。 选择一个。
如果是前者,它们甚至不是对象,因此不能具有plaintext
属性。
如果是后者,请小心将其传递给需要字符串的函数。想要字符串的函数会阻塞对象或根据需要对它们进行字符串化。即使假设simple_html_dom
知道如何将自身转换为字符串,preg_replace
也将返回字符串(或字符串数组)。这意味着一旦preg_replace
做了它的事情,你用返回值替换$thisarray
,无论之前是什么,现在你有一个字符串数组。见上文。
答案 1 :(得分:0)
首先,如果你只想替换一个世界而不是一个模式,preg_replace不是一个高效的函数。对于您的情况,str_replace
更好。
然后,你只是滥用$ thisarray变量。在你的函数之前,它是一个对象,之后它不再是一个对象,因为preg_replace返回一个字符串或一个数组。
所以,您可以使用以下代码获得更清晰的代码:
$textToReplace = array('/HELLO/','other world to replace');
replacementText = array('BYE','other replacemnt text');
$cleanText = str_replace($textToReplace,$replacementText,$thisarray[0]->plaintext);
echo $cleanText;