-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
  • htmlspecialchars
  • 实体

这些都不能对页面进行足够的清理,以便可以将其输入到 MySQL 数据库中,并且 MySQL 每次都会抛出语法错误。有人告诉我只对 HTML 进行 base64 编码并输入它,但我希望能够在数据库中搜索 HTML,这样就无法满足我的需要。

我尝试了各种不同的东西,例如两个功能(一个在另一个里面),但我似乎无法让它正常工作。

任何和所有的帮助将不胜感激。

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 回答