2017-01-15 6 views
0

J'ai une url comme ça, https://www.example.com/send?id=1 & text=http://example2.com/song.mp3comment arrêter et de passer à & amp dans une URL?

lorsque je tente d'obtenir les données de l'URL en utilisant file_get_contents() il montre ci-dessous erreur,

PHP Warning: file_get_contents (https://www.example.com/send?id=1 & amp text=http://example2.com/song.mp3): échoué ouvrir le flux: la requête HTTP a échoué! HTTP/1.1 501 non implémenté

et les & ont été convertis en & amp. En raison de cela, l'URL ne fonctionne pas. J'ai essayé htmlspecialchars_decode() et preg_replace() sur &, mais il n'a rien fait.

comment résoudre ce problème?

+0

@Xorifelse ne pas l'échapper avec% 26 n'a pas résolu le problème – theModerator713

+0

l'URL de référence est http ou https? – msk

+0

@msk https, ... – theModerator713

Répondre

1

Je pense que vous feriez mieux d'utiliser cURL au lieu de file_get_contents(), parce que le serveur de renvoi doit être activé allow_url_fopen dans leur serveur si vous utilisez file_get_contents(), mais cURL est une bibliothèque, il suffit de faire une demande http

<?php 
    $cSession = curl_init(); 
    curl_setopt($cSession,CURLOPT_URL,"https://www.example.com/send?id=1&text=http://example2.com/song.mp3"); 
    curl_setopt($cSession,CURLOPT_RETURNTRANSFER,true); 
    curl_setopt($cSession,CURLOPT_HEADER, false); 
    $result=curl_exec($cSession); 
    curl_close($cSession); 
    echo $result; 
?> 

se réfèrent liens suivants

file_get_contents script works with some websites but not others

cURL vs file_get_contents

+0

Il semble y avoir un espace avant et après le '&' dans l'URL. Vous pouvez essayer de supprimer les espaces –