PHP cURL - 使用变量时的"Illegal characters found in URL1"



,所以我将卷曲请求发送到带有某些内容的网站,但是如果我使用变量,我从mysql-db中获得了一些信息,在字符串中,它带有错误"错误: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

因此,当我使用我从数据库中获得的变量时,为什么会出现错误。我该如何修复?

希望您了解我的问题并可以帮助我。

您需要使用urlencode()在URL中使用它们。

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

该函数编码非法URL字符,因此可以安全地用于URL。
示例:Random name变为Random%20name

相关内容