こんにちは、埋め込みフィールドからファイル パスを取得しようとしています。そのパスを使用して、そのパスにファイルが存在するかどうかを確認します。ファイルが存在しない場合は、そのエントリを削除します。私はゲーム サイトを実行していますが、ゲーム ファイルをダウンロードするスクリプトがいくつかスキップされたため、4000 エントリの db 干し草の山から針を見つけるようなものです。どんな助けでも大歓迎です。これが私のコードです:
<?php
if(isset($_POST['clean'])) {
$query = "SELECT * FROM games WHERE embed";
$result = mysql_query($query) or die ("no query");
$result_array_path = array();
while($row = mysql_fetch_assoc($result))
{
$result_array_path = $row;
}
$count = mysql_num_rows($result);
for($counter=0;$counter<$count;$counter++){
if (file_exists($result_array_path[$counter])){
}else{
mysql_query("DELETE FROM games WHERE embed".$result_array_path[$counter]);
echo $result_array_path[$counter]." ";
}
}
}
?>
- - - - - - - 編集 - - - - - - -
コードを更新しましたが、不足しているゲーム エントリを削除するのではなく、データベース全体を削除することにしました。改訂されたコードは次のとおりです。
<?php
if(isset($_POST['clean'])) {
$query = "SELECT * FROM games WHERE embed NOT LIKE '%mochiads.com%'";
$result = mysql_query($query) or die ("no query");
$result_array_path = array();
while($row = mysql_fetch_assoc($result))
{
$result_array_path[] = $row['embed'];
}
foreach($result_array_path as $path) {
if(!file_exists($path)) {
mysql_query("DELETE FROM games WHERE embed = '" . $path . "'");
echo $path." | ";
}
}
}
?>
- - - - - -編集 - - - - - - -
プログラムをデバッグしたので、現在は動作しています。$_SERVER['DOCUMENT_ROOT']
プログラムに" " を追加する必要がありました。完成したプログラムはこちら
<?php
if(isset($_POST['clean'])) {
$query = "SELECT * FROM games WHERE embed NOT LIKE '%mochiads.com%'";
$result = mysql_query($query) or die ("no query");
$result_array_path = array();
while($row = mysql_fetch_assoc($result))
{
$result_array_path[] = $row['embed'];
}
foreach($result_array_path as $path) {
$rel_path = str_replace('http://www.flamegame.net', '', $path);
$rel_path = str_replace('http://flamegame.net', '', $rel_path);
$rel_path = str_replace('%20', ' ', $rel_path);
if(! file_exists($_SERVER['DOCUMENT_ROOT'] . $rel_path)) {
mysql_query("DELETE FROM games WHERE embed = '" . $path . "'");
echo $rel_path." | ";
}
}
}
?>
助けてくれてありがとう 特にGargron。
このプログラムが私のウェブサイト用であることに疑問を持っている人のために: http://www.FlameGame.net