2017-02-26 87 views
0

我從網頁刮某些URL一些奇怪的字符,並在網頁上的顯示精細,但是當我插入到數據庫它插入一些奇怪這樣刮板插入數據庫

http://westseattleblog.com/event/west-seattle-church-listings/?instance_id=567059 

我的代碼

網址
foreach($html->find('div[class=ai1ec-btn-group ai1ec-actions] a') as $element) 
{ 
    $url= $element->href; 
    $url1=mysql_real_escape_string($url); 
    $sql="insert into catlink(catlink) values('$url1')"; 
    //echo $sql."<br>"; 
    $query=mysql_query($sql); 
    //newpage 
} 

而當我開始從數據庫中提取URL並逐一報廢時,它什麼都不顯示。

我的代碼

$sql1="select * from links limit 10"; 
$query1=mysql_query($sql1); 
while($res=mysql_fetch_assoc($query1)){ 
    $url=$res['url']; 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    // curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt"); 
    // curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    $page = curl_exec($ch); 
    curl_close($ch); 
    $dom = new simple_html_dom(); 
    $html = $dom->load($page); 
    foreach($html->find("div") as $a){ 
     echo $a->innertext; 
    } 
    //$separator = '&nbsp;-&nbsp;'; 
} 
+0

你的意思是說,你從查詢到數據庫什麼都沒有得到?關於亂碼的內容,應該沒問題。檢查[這篇文章](http://stackoverflow.com/questions/7867204/how-should-be-kept-as-html-tags-in-database)。 –

+0

Base64將URL編碼爲安全的Base64字符串,然後將其保存到數據庫中。當Base64解碼數據庫中保存的字符串時,您可以輕鬆找回原始URL。請參閱http://stackoverflow.com/questions/13109588/base64-encoding-in-java –

回答

0

您的網址有hex characters,所以你需要使用html_entity_decode 解碼它,你在你的數據庫中插入前或使用它與捲曲

所以前:

$url1=mysql_real_escape_string(html_entity_decode($url)); 

$url=html_entity_decode($res['url']);