не удалось открыть поток: HTTP-запрос не удался! HTTP / 1.1 400 BAD ЗАПРОС в

Мой код:

function jsonCall() { global $_SESSION; global $smarty; $client_id = "XXXXXXXX"; $next_max_tag_id = 1349756086082; if(isset($_POST['nextSubmit'])) { $next_max_tag_id = $_POST['next_max_tag_id']; } $url ='https://api.instagram.com/v1/tags/' . $_SESSION['zoekterm'] . '/media/recent?access_token=145408254.f59def8.448ef83c8fa740aa9744a0c47766a857&max_tag_id=' . $next_max_tag_id; $json = file_get_contents($url); $json_output = json_decode($json,true); file_put_contents('json/instagram.json',$json); $imagesErbuiten = array(); foreach($json_output['data'] as $data) { foreach($data['images'] as $images) { array_push($imagesErbuiten, $images); } } $smarty->assign('arrData',$imagesErbuiten); $smarty->assign('next_max_tag_id',$json_output['pagination']['next_max_tag_id']); } 

Я работаю с API Instagram и API Flickr. Оба получают одинаковые ошибки, когда есть значение, которое они не знают в своем поле поиска.

В качестве примера:

Instagram не позволяет поиск по тэгу, как порно, сиськи, … Когда это произойдет, вы получите 400 Bad запроса. Когда вы выполняете поиск QSDFQSDFQSDFQSDF (который не существует ether), ошибки нет, только потому, что поиск действителен, но массив пуст (это хорошо, поэтому я могу отображать «Ничего не найдено»).

Это не проблема с пустым пространством. Я allready исключил все пустые места и заменил их на +.

Мой вопрос:

Можно ли просто удалить или исправить эту ошибку? Все работает отлично, за исключением того, что вы получаете эту уродливую ошибку в верхней части моей страницы.

Приветствую вас, W.

Один из вариантов – использовать cURL (http://php.net/manual/en/book.curl.php), чтобы получить более подробную информацию о запросе перед печатью:

Некоторые, например, могут помочь вам:

 function url_get_contents ($Url) { if (!function_exists('curl_init')){ die('CURL is not installed!'); } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $Url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); //get the code of request curl_close($ch); if($httpCode == 400) return 'No donuts for you.'; if($httpCode == 200) //is ok? return $output; }