PHP cURL - 使用变量时“在URL1中找到非法字符”

问题描述 投票:0回答:1

所以我发送一个cURL请求到一个包含一些内容的网站,它工作正常,但如果我使用一个变量,我从MySQL-DB获得了一些信息,在字符串中,它返回错误“ERROR :在URL1中找到非法字符“。

我试图使用像$var(string) $var"{$var}"这样的变量,但这些变量都不起作用

这就是我所拥有的

//Up here, some code where I get some data from the database

$apiKey = "...";
$name = $userinfo["Name"];
$number = "...";

$content = "Hey " . $name;

$str = str_replace(array(" ", "/n"), array("+", "%0A"), $content);

$url = "https://thing.thing.com/thing/http/send?apiKey=" . $apiKey . "&to=45" . $number . "&content=" . $str;

//Down here I send the cURL request

如果我使用另一个自我声明的变量,如$name = "Albert Einstein",它工作正常。

当我只返回$name变量时,我得到输出为Random name之类的字符串。

那么为什么在使用我从DB获得的变量时会出现错误。我该如何解决?

希望你能理解我的问题,并能帮助我。

php php-curl
1个回答
0
投票

在URL中使用之前,您需要使用urlencode()对字符串进行编码。

$apiKey = urlencode("...");
$name   = urlencode($userinfo["Name"]);
$number = urlencode("...");

该函数对非法URL字符进行编码,因此可以安全地在URL中使用它们。 示例:Random name成为Random%20name

© www.soinside.com 2019 - 2024. All rights reserved.