【发布时间】:2013-11-24 20:26:50
【问题描述】:
我正在尝试创建一些内容,它将更改网页上的所有文本并将其重新输出给用户。它将更改数据库中预定义的单词。
我使用http://simplehtmldom.sourceforge.net 作为我的 HTML 解析器。我想做的是只更改标签内部的测试,而不是标签。我认为这会起作用,如果我回显$e->plaintext 它会起作用,但它没有样式。
<?php
// example of how to modify HTML contents
include('../simple_html_dom.php');
// get DOM from URL or file
$html = file_get_html('http://example.com/');
$e = $html->find("html", 0);
$text = $e->plaintext;
$con = mysqli_connect("localhost","root","root","Words");
$result = mysqli_query($con,"SELECT * FROM Wordsweb");
//replace all words
$English = array();
$Simple = array();
while ($row = mysqli_fetch_array($result)){
$English[] = $row['English'];
$Simple[] = $row['Simple'];
}
$e->plaintext = str_replace($English, $Simple,$e->plaintext);
echo $e;
?>
提前致谢!
p.s.:以前我使用的是preg_replace_callback,但有人建议我使用它。
【问题讨论】:
-
如果不检查您要替换的实际代码,将很难找到问题所在...首先,请尝试
$e->innertext...如果仍然无法正常工作,请至少发布部分您正在处理的 html 代码... -
@Enissay 我已经尝试过 $e->innertext 但仍然没有希望。如果我回显 $e->plaintext 它会显示我的更新,但如果我想用标签显示它们以设置样式,则不会!
-
你试过
$e->outertext...它显示节点内容,包括周围的标签 -
@Enissay 它与页面相呼应,但与更改无关。
标签: php mysql dom str-replace simple-html-dom