0

ニュースレターのhtmlファイルがあります。href リンクを html ファイルにキャプチャして、テーブルに保存する必要があります。そして、リンクを新しい追跡リンクに置き換え、その後に 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 です。ここで、html ファイル内のこれらのリンクを、保存した同じ行 ID に置き換える必要があります。したがって、新しい URL は " " のようになります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 属性を設定し、新しい html の出力を で取得できます$dom->saveHtml();file_put_contents()または任意の方法で、それを新しいファイルに書き込みます。

お役に立てれば。

于 2013-05-13T11:31:37.290 に答える