urlencode & SQL 请求不起作用...(cUrl 和 html 特殊字符似乎不起作用)
urlencode & SQL request does not work... (cUrl and html special chars seems not to work)
问题的第一部分解决了。请查看编辑 2
我有以下问题:
我使用 htmlspecialchar
从我的数据库中获取用户名,在本例中为:exámple
。我通过 cUrl
将其解析为 Riot-Games API.
$url = 'https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/exámple?api_key=<my-api-key>'
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
return $output;
curl_close($ch);
我的结果是:{ "status": { "message": "Not Found", "status_code": 404 } }
但是用户存在!我可以在我的浏览器中打开 URL 并且它有效...
我认为 cUrl
无法解析字符串中的 á,如果我复制 url 并在浏览器中打开它
á
is converted to %C3%A1
是否可以将 PHP
中的 URL 转换为可发送请求?
提前致谢 ;)
编辑
如果我在我的用户数据库中使用 ex%C3%A1mple
而不是 exámple
就可以了!
编辑 2
我现在使用 urlencode
作为用户名。 然而我很绝望...
我的简单脚本:
echo urlencode($row["username"]) . " " . urlencode('exámple');
$row["username"]
输出我保证 'exámple'
。这是一个 SQL 请求。
我得到的输出:
ex%E1mple ex%C3%A1mple
已解决:
urlencode(utf8_encode($row["username"]))
使用urlencode
函数对名称进行编码。见以下代码:
$name='exámple';
$encoded_name = urlencode('exámple'); //output: ex%C3%A1mple
$url = 'https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/'.$encoded_name.'?api_key=<my-api-key>';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
echo $output;
问题的第一部分解决了。请查看编辑 2
我有以下问题:
我使用 htmlspecialchar
从我的数据库中获取用户名,在本例中为:exámple
。我通过 cUrl
将其解析为 Riot-Games API.
$url = 'https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/exámple?api_key=<my-api-key>'
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
return $output;
curl_close($ch);
我的结果是:{ "status": { "message": "Not Found", "status_code": 404 } }
但是用户存在!我可以在我的浏览器中打开 URL 并且它有效...
我认为 cUrl
无法解析字符串中的 á,如果我复制 url 并在浏览器中打开它
á
is converted to%C3%A1
是否可以将 PHP
中的 URL 转换为可发送请求?
提前致谢 ;)
编辑
如果我在我的用户数据库中使用 ex%C3%A1mple
而不是 exámple
就可以了!
编辑 2
我现在使用 urlencode
作为用户名。 然而我很绝望...
我的简单脚本:
echo urlencode($row["username"]) . " " . urlencode('exámple');
$row["username"]
输出我保证 'exámple'
。这是一个 SQL 请求。
我得到的输出:
ex%E1mple ex%C3%A1mple
已解决:
urlencode(utf8_encode($row["username"]))
使用urlencode
函数对名称进行编码。见以下代码:
$name='exámple';
$encoded_name = urlencode('exámple'); //output: ex%C3%A1mple
$url = 'https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/'.$encoded_name.'?api_key=<my-api-key>';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
echo $output;