<a href="myexample.com"></a>
这样的描述应该返回空白
答案 0 :(得分:1)
如果要将动态内容替换为url,可以使用正则表达式或使用phpQuery这样的简单方法来执行此操作,这样可以使用多种方法在HTML中查找链接,并替换他们的HREF属性。
phpQuery::newDocument("externalPage.html");
pq("a")->href("");
我暂时没有使用过phpQuery,但我相信这样做会有所帮助。此外,如果您要删除的链接是导航,RSS订阅源等,您可以使用phpQuery仅返回externalPage的特定部分,这意味着您不再需要删除不在您想要的部分内的链接
例如,如果您尝试从ID为“articleBox”的DIV中的外部页面获取文章,则可以执行以下操作:
pq("div#articleBox");
这将仅返回该特定元素及其中的内容。
您可能会发现PHPSimpleHTMLDOMParser更易于使用。这是一个如何使用它来反对slashdot来刮擦主页部分的例子:
// Create DOM from URL
$html = file_get_html('http://slashdot.org/');
// Find all article blocks
foreach($html->find('div.article') as $article) {
$item['title'] = $article->find('div.title', 0)->plaintext;
$item['intro'] = $article->find('div.intro', 0)->plaintext;
$item['details'] = $article->find('div.details', 0)->plaintext;
$articles[] = $item;
}
print_r($articles);
答案 1 :(得分:0)
使用php strip_tags函数(http://us3.php.net/manual/en/function.strip-tags.php),它将从字符串中删除所有html标记,所以:
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
将输出“测试段落。其他文本”,并且您给出的示例将返回空白。请注意,如果您还想要使用某些标记,也可以指定一些您想要使用的标记。
答案 2 :(得分:0)
您是否试图隐藏所提取数据中的链接?如果是这样,也许您可以将CSS仅应用于该文本(div
或span
)以隐藏所有<a>
代码&gt;设置display:none
。