如何解码谷歌搜索API结果?

问题描述:

我试图将谷歌结果插入到mysql utf-8数据库。 但是当我检查插入的行时,一些字符看起来很奇怪。 例如插入为“医生'的手册”的“医生手册”。 我试过htmlspecialchars_decode,urldecode但没有工作。如何解码谷歌搜索API结果?

$query="doctor's handbook"; 
$url = "https://ajax.googleapis.com/ajax/services/search/web?v=1.0&" 
    . "q=".urlencode($query)."&userip=78.160.152.204&rsz=large"; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$body = curl_exec($ch); 
curl_close($ch); 

$json = json_decode($body); 
$title = mysql_real_escape_string($result->titleNoFormatting); 

的mysql_query( “INSERT INTO文件(标题)VALUES( '$标题')”,康涅狄格州$))

+0

'& #39;'是* NOT *有效的html实体。那里应该没有空间,所以难怪它不会被解码。 –

+0

其实没有空间。没有空间堆栈溢出显示它正常报价。所以我增加了空间。 – user260223

+0

使用反引号来防止这种情况。 '''。 –

奥基我解决了这个问题。

html_entity_decode($title,ENT_QUOTES); 

ENT_QUOTES将两个双和单引号转换。