以下是一些测试代码的小样本,只是转到
http://www.un.org/apps/news/story.asp?NewsID=37180&Cr=Haiti&Cr1=
并拉入指定的网页。
<?php
$url = "http://www.un.org/apps/news/story.asp?NewsID=37180&Cr=Haiti&Cr1=";
$curl = curl_init(); // initialize curl handle
curl_setopt($curl, CURLOPT_URL, $url); // set url to post to
curl_setopt($curl, CURLOPT_FAILONERROR, 1);
curl_setopt($curl, CURLOPT_COOKIESESSION, TRUE); // since we reuse now
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);// allow redirects
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // return into a variable
curl_setopt($curl, CURLOPT_TIMEOUT, 20); // times out after 20 seconds
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0" );
$result = curl_exec($curl); // run the whole process
print $result;
然而,当我看结果时,它并不是我想要的。如果你查看字符串的结果
“联合国人道主义官员呼吁在海地进行大规模的动员活动”你可以看到围绕“大规模动员活动”文本的两个问号。
如果您访问实际网站,问号将呈现为一对左右引号,当您从网站查看源代码时会反映出这一点......
“联合国人道主义官员呼吁在海地开展”大规模动员活动“,我想知道如何抓住双引号而不是我看到的问号。
感谢所有建议。
祝你们新年快乐
答案 0 :(得分:1)
与PHP无关,与curl无关,甚至没有错误。你提到的那些“问号”是ASCII字符0x93和0x94:打开双引号和关闭双引号。我不是一个PHP人,但如果你想要常规双引号
str_replace(array(chr(0x93), chr(0x94)),'"',$result)
应该修好你。
答案 1 :(得分:0)
看起来“在上面的示例中使用的是一个特殊字符而不是正常字符”。 如果它显示,查看页面源并将过去的源复制到记事本中?而不是“它意味着它是一个特殊的角色,你需要弄清楚该角色的确切代码