-1

ある意味で、ページをキャッシュして、後で以前と同じように表示できるようにしようとしています (変更または削除された場合)。つまり、ページ全体の HTML (craigslist 広告) をデータベース フィールドに取り込みます。

必要なものを簡単かつシンプルにするために、 file_get_contents を使用しています。これ以外にもありますが、これが私が行ったことの基本です

$page = file_get_contents('http://annapolis.craigslist.org/hea/3652436359.html');
// $page = mysql_real_escape_string($page);
// $page = htmlspecialchars($page);
// $page = htmlentities($page);
mysql_query("INSERT INTO `page` (`html`) VALUES ('$page')");

組み込みの PHP サニテーション機能はすべて試しました。

  • mysql_real_escape_string
  • html特殊文字
  • htmlentities

これらのいずれも、MySQL データベースに入力できるようにページを十分にサニタイズせず、MySQL は毎回構文エラーをスローします。HTMLをbase64でエンコードして入力するように誰かに言われましたが、データベースでHTMLを検索できるようにしたいので、必要なものが機能しません。

2 つの関数 (一方が他方の内部) など、さまざまなことを試しましたが、正しく動作しないようです。

ありとあらゆる助けをいただければ幸いです。

4

1 に答える 1

0

これを試してください、うまくいきます

$page = file_get_contents('http://annapolis.craigslist.org/hea/3652436359.html');

mysql_query("INSERT INTO `page` set `html`= '".magic($page)."'");

function magic($value)
{
    if( get_magic_quotes_gpc() )
       $value = stripslashes( $value );

    if( function_exists( "mysql_real_escape_string" ) )
       $value = mysql_real_escape_string( $value ); 
    else
        $value = addslashes( $value );

return $value;
}
于 2013-03-04T06:32:15.620 に答える