0

我有时事通讯 html 文件。我需要捕获 html 文件中的 href 链接并将其保存在表中。并将链接替换为新的跟踪链接,后跟 id。我可以通过以下 php 找到链接并插入到 db

<?PHP
$con=mysqli_connect("localhost","root","","test");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }


$html = file_get_contents('test.html');

$dom = new DOMDocument();
@$dom->loadHTML($html);


$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");

for ($i = 0; $i < $hrefs->length; $i++) {
       $href = $hrefs->item($i);
       $url = $href->getAttribute('href');
       mysqli_query($con,"INSERT INTO urls (id, url)
VALUES ('','$url')");
       echo $url.'<br />';
}
?>

这里 id 是主键和 auto_increment。现在我需要用我存储的相同行 ID 替换 html 文件中的那些链接。所以新的网址应该是这样的“ http://www.mysite.com/track.php?id=1”。最后,我需要生成一个带有更新链接的新 html 文件。请帮我

你好,我把

$href = 'http://mysite.com/track.php?id=' . mysqli_insert_id($con);
$dom->saveHTMLFile("temp".$y.".html");

插入表格后。但我没有在生成的 html 文件中替换链接,请帮助

4

1 回答 1

0

我希望我能正确理解你的问题。替换 id 最好用preg_replace(). 类似的东西$newUrl = preg_replace('/[0-9]*$/', mysqli_insert_id($con), $url);。把它放在你的mysqli_query.

该 preg_replace 中的正则表达式针对 $url 末尾的数字。我希望这就是你想要的。

一旦你有了新的 url,你就可以用它设置 href 属性,然后用$dom->saveHtml();. file_put_contents()使用您喜欢的任何方法将其写入一些新文件。

希望这可以帮助。

于 2013-05-13T11:31:37.290 回答