file_get_contents将“&”更改为“&”

时间:2018-09-21 17:55:09

标签: php file-get-contents ampersand

我想从带有file_get_contents的URL中获取json,但是它将&替换为&amp,因此它不起作用  我尝试卷曲并再次发生 我也直接尝试使用url并且它起作用了,所以url没问题

$url="https://api.kavenegar.com/v1/asdkljsadlkjsd/sms/send.json?receptor=09148523669&sender=100005252&message=testing";


$json = file_get_contents($url);
echo "1";
var_dump($json);

这是结果:

  

(!)警告:   file_get_contents(https://api.kavenegar.com/v1/asdkljsadlkjsd/sms/send.json?receptor=09148523669&sender=100005252&message=testing):   无法打开流:HTTP请求失败! HTTP / 1.1 400错误请求   在第22行的C:\ wamp64 \ www \ te \ func \ testjson.php中

当然,stackoverflow会从结果网址中删除&amp

2 个答案:

答案 0 :(得分:0)

问题似乎在于它正在返回错误状态代码。如果是这样,请参阅: Ignoring errors in file_get_contents HTTP wrapper?

$url="https://api.kavenegar.com/v1/asdkljsadlkjsd/sms/send.json?receptor=09148523669&sender=100005252&message=testing";

$context = stream_context_create(array('http' => array('ignore_errors' => true),));
$json = file_get_contents($url, false, $context);

echo $json;

答案 1 :(得分:-1)

这是答案:

$url = 'https://example.url?';

// http_build_query builds the query from an array
$query_array = array (
    'search' => $string,
    'from' => $from,
    'to' => $to,
    'format' => 'json'
);

$query = http_build_query($query_array);
$result = file_get_contents($url . '&' . $query);