Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP SimpleHTMLDomainParser+;寻找寂寞的弦_Php_Html_Html Parsing_Simple Html Dom - Fatal编程技术网

PHP SimpleHTMLDomainParser+;寻找寂寞的弦

PHP SimpleHTMLDomainParser+;寻找寂寞的弦,php,html,html-parsing,simple-html-dom,Php,Html,Html Parsing,Simple Html Dom,我正在使用来浏览html代码并查找各种内容。到目前为止,一切正常,但有一个问题: 如何查找没有ID、没有类和唯一父元素的字符串 在我的例子中,我从从一个div中提取内容开始: $descrs = $html->find('.show_synopsis'); foreach($descrs as $descr) { echo($descr->innertext); } 这看起来像: <div class="show_synopsis"> L

我正在使用来浏览html代码并查找各种内容。到目前为止,一切正常,但有一个问题:

如何查找没有ID、没有类和唯一父元素的字符串

在我的例子中,我从从一个div中提取内容开始:

$descrs    = $html->find('.show_synopsis');

foreach($descrs as $descr) { 

    echo($descr->innertext);

}
这看起来像:

<div class="show_synopsis">

    Lorem ipsum dolor sit amet, consetetur sadipscing elitr. <b>Source:</b> LORES.

</div>

Lorem ipsum Door sit amet,consetetur Sadipsing Eliter。资料来源:传说。
现在,是否可以从上述示例中查找并删除
知识

由于
LORES
是一个变量,可以更改,我想知道是否可以总是在
来源:
旁边找到这个词


我尝试过几种不同的方法,但迄今为止没有一种有效。我尝试了一个来自的解决方案,但无法根据我的需要进行调整。

你不能直接替换你要回显的字符串中的知识吗

echo str_replace('LORES', '', $descr->innertext);

你就不能替换你要回显的字符串中的知识吗

echo str_replace('LORES', '', $descr->innertext);
试试这个:

echo preg_replace('/(.?)<b>.*Source:.*<\/b>.*\./', '$1', $descr->innertext);
echo preg\u replace('/(.?).*源代码:.*.\./'、'$1'、$descr->innertext);
试试这个:

echo preg_replace('/(.?)<b>.*Source:.*<\/b>.*\./', '$1', $descr->innertext);
echo preg\u replace('/(.?).*源代码:.*.\./'、'$1'、$descr->innertext);

哦,是的:)这似乎奏效了。最后一件事:如果我使用这种方式并且有各种字符串,我会简单地为每个循环创建一个循环并检查每个字符串,还是会有另一个(更简单)解决方案?你可以在replace函数中用多个指针数组替换'LORES'指针。哦,如果这很重要的话:html总是这样:
Source:LORES
-那么我是否可以总是删除
Source:
和它旁边的单词(在我们的示例中是LORES)?我对我的问题做了一些修改,但总的来说,你的解决方案很好——但如果我能找到一种方法,而不必知道所有可能的字符串并将它们放入数组中,那就更舒服了。在这种情况下,你可以使用preg_replace而不是str_replace。哦,是的:)这似乎很有效。最后一件事:如果我使用这种方式并且有各种字符串,我会简单地为每个循环创建一个循环并检查每个字符串,还是会有另一个(更简单)解决方案?你可以在replace函数中用多个指针数组替换'LORES'指针。哦,如果这很重要的话:html总是这样:
Source:LORES
-那么我是否可以总是删除
Source:
和它旁边的单词(在我们的示例中是LORES)?我对我的问题做了一些修改,但总体而言,您的解决方案运行良好-但如果我能够找到一种方法,而不必知道所有可能的字符串并将它们放入数组,那就更舒服了。在这种情况下,您可以使用preg_replace而不是str_replace。这似乎不起作用。虽然我没有收到任何错误消息,但是
Source:LORES
也会收到“echo`ed”,并且在输出中仍然可见!你先说
源代码:
,然后说
源代码:
(在
源代码:
之前和之后的空格);哪一个是你需要更换的?很抱歉给你带来混乱。它看起来就像这样:
随机文本。

来源:CBS
随机文本。
我刚刚编辑了我的答案,涵盖了有空格和没有空格的情况。请再试一次。这似乎不起作用。虽然我没有收到任何错误消息,但是
Source:LORES
也会收到“echo`ed”,并且在输出中仍然可见!你先说
源代码:
,然后说
源代码:
(在
源代码:
之前和之后的空格);哪一个是你需要更换的?很抱歉给你带来混乱。它看起来就像这样:
随机文本。

来源:CBS
随机文本。
我刚刚编辑了我的答案,涵盖了有空格和没有空格的情况。请再试一次。