CURL: not fetching url with unicode characters
I'm using CURL to fetch a Yahoo! BOSS api url with a unicode query, but I'm getting an "bad request" error.
http://boss.yahooapis.com/ysearch/web/v1/கமல்ஹாசன்?appid={appid}&format=xml
The above url works fine and returns results in firefox.
Please could anybody help me to fix this.
$url = "http://bo开发者_JAVA技巧ss.yahooapis.com/ysearch/web/v1/கமல்ஹாசன்?appid={appid}&format=xml";
$ch - curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
you must urlencode your URL. follow the below codes:
$url = "http://yoursite.com/some-unicode-chars"
$path = parse_url($url, PHP_URL_PATH);
if ($path) {
$segments = explode('/', $path);
foreach($segments as $index => $segment) {
$segments[$index] = urlencode($segment);
}
$url = str_replace($path, implode('/', $segments), $url);
}
// then use url in your curl command:
$handle = curl_init($url);
// ...
Take that கமல்ஹாசன் word and use Mysql_realescape string in PHP.
Regards, ARCHIT.
精彩评论