gpt4 book ai didi

php-curl 不支持 url 中的 utf-8

转载 作者:搜寻专家 更新时间:2023-10-31 21:25:17 26 4
gpt4 key购买 nike

我正在尝试从我的服务器向 php 中的另一台服务器发送 http 请求。我发送请求的 url 包含一些 utf8 字符,例如 http://www.aparat.com/etc/api/videoBySearch/text/نوروز .

这是我的代码:

 const api_adress = 'http://www.aparat.com/etc/api/';
const xml_config = 'http://www.aparat.com/video/video/config/videohash/[ID]/watchtype/site';

public function getDataInArray($JSON_ADRESS)
{
$json = json_decode(file_get_contents(self::api_adress . utf8_encode($JSON_ADRESS)), true);
return ($json != NULL) ? $json : die(NULL);
}

我也试过 php-curl insted file-get-contents 但我没有得到答案。

最佳答案

你只需要 urlencode() UTF-8 字符,像这样:

php > $api = 'http://www.aparat.com/etc/api/';
php > $searchEndpoint = 'videoBySearch/text/';

php > var_dump($api . $searchEndpoint . urlencode('نوروز'));
string(79) "http://www.aparat.com/etc/api/videoBySearch/text/%D9%86%D9%88%D8%B1%D9%88%D8%B2"

php > $encodedUrl = $api . $searchEndpoint . urlencode('نوروز');
php > var_dump($encodedUrl);

string(79) "http://www.aparat.com/etc/api/videoBySearch/text/%D9%86%D9%88%D8%B1%D9%88%D8%B2"
php > var_dump(json_decode(file_get_contents($encodedUrl)));
object(stdClass)#1 (2) {
["videobysearch"]=>
array(20) {
[0]=>
object(stdClass)#2 (17) {
["id"]=>
string(7) "4126322"
["title"]=>
string(35) "استقبال از نوروز 1395"
["username"]=>
string(6) "tabaar"
...
}
...

关于php-curl 不支持 url 中的 utf-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37561402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com