Не работает ли PHP curl_getinfo для удаленных URL-адресов из блогов WordPress или сайтов, которые используют WordPress для управления контентом?

#php #wordpress #curl #imageurl

#php #wordpress #curl #imageurl

Вопрос:

Я использую PHP, чтобы определить, активны URL-адреса изображений или неработающие. Я использовал следующий код, который я нашел в одном из ответов о самом stackoverflow.

 $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_NOBODY, 1); 

curl_exec($ch);

if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200)
{ 
    echo "image exists<br/>";
}

curl_close($ch);
  

Если я использую обычный URL-адрес изображения, то программа работает нормально, но если ссылка на изображение присутствует в блоге, подобном этому (http://unspokenstyle .files.wordpress.com/2009/01/yorkegrammy.jpg ) или если управление контентом выполняется с помощью WordPress, подобного этому (http://rockandroll.blog.br/wp-content/uploads/2009/01/radiohead-na-rollingstone3.jpg ), тогда я получаю ошибку «400 неверных запросов».

Я что-то упускаю в коде?

Пожалуйста, помогите.

PS: Я не могу использовать некоторые функции PHP, такие как PHP getimagesize, поскольку я использую сторонний хостинг. Поэтому я должен использовать CUrl.

Комментарии:

1. извините, что задаю очевидный вопрос, но вы уверены, что изображение действительно существует?

2. да … ссылки, которые я упомянул в вопросе, являются рабочими URL-адресами, но они выдают ошибку 400 Bad Request

3. работает ли это без флага NOBODY?

4. проблема существует и без флага NOBODY : (

5. извините, но все еще получаю ошибки

Ответ №1:

Я протестировал вашу функцию, и на моей установке она работает просто отлично. Так что это не ваш код. Возможно ли, что они заблокировали ваш IP? Работает ли функция, когда вы получаете изображение со своего собственного сервера (с http: //)?

На вашем хостинге вы можете использовать функцию PHP: file_get_contents ($ url)?

Комментарии:

1. функция file_get_contents ($ url) не работает на сервере .. возможно, это связано с безопасностью.

2. Вы пробовали загружать изображение на свой собственный сервер? curl_setopt($ch, CURLOPT_URL, "http://myserver.tld/image.jpg");

3. да .. если изображение находится на моем сервере, то вывод «изображение существует»