現在、自動コンテンツ生成スクリプトのサイトマップを作成中です。私は、Googleがラインごとに1つのURLを含む単純なテキストファイルでサイトマップを受け入れることを知る必要があります。文字列がファイルに存在しない場合はfwrite
私は1.txt
という名前のファイルを作成し、ユーザーが訪問するときに現在のページURLを1.txt
に追加するスクリプトを書いています。
test.php
は次のとおりです。
$file = 'assets/sitemap/1.txt';
$url = "http://".$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI]."\n";
$file = fopen($file, 'a');
fwrite($file, $url);
fclose($file);
このスクリプトは、1.txt
たびに誰かがページをヒットURLtoページを書き込みます。しかし問題は、あまりにも多くの重複したリンクを作成することです。だから私は既に存在する場合は、文字列(この場合はURL)を追加しないフィルタを追加したいと思います。
しばらくサーフィンした後、私は、リソースフレンドリーで、ここで溶液(第二のスニペット)を得た:PHP check if file contains a string
私は、以下の修正をしたが、それは(すべてでは何も追加しない)動作していない:
$file = 'assets/sitemap/1.txt';
$url = "http://".$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI]."\n";
if(exec('grep '.escapeshellarg($url).' assets/sitemap/1.txt')) {}
else{
$file = fopen($file, 'a');
fwrite($file, $url);
fclose($file);
}
それはまた、文字列の存在を確認するの横に1.TXTへのリンクを追加しない:
$url
はin_array()
を使用して配列している場合は、チェック? – Kubloy第3弾は何を言いますか? – AbraCadaver
append = writeは可能でしょうか? – Kubloy