Различия в расположении URL в скрипте между хостами - PullRequest
1 голос
/ 23 марта 2012

У меня есть следующая функция, которая извлекает изображение из ленты Twitter, параметр «url» получает URL-адрес, такой как:

'http://t.co/ilGWtpkV'

Поскольку это сокращенный URL-адрес, сценарий затемвозвращает местоположение этого URL:

http://www.facebook.com/photo.php?pid=1425727&l=1f2c2b6432&id=358116934207463

Затем скрипт анализирует html-содержимое этой страницы и возвращает источник элементов url по тегу.

Это рабочий примерскрипт: http://psuprob.herobo.com/pullmeme.php

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

Эта функция используется:

getImages('http://t.co/ilGWtpkV');

function getImages($url) {
  $url1 = $url;
  require_once('../scripts/simple_html_dom.php'); 
  require_once('../scripts/url_to_absolute.php');

  $response = get_headers($url, 1);
  //Get the location property of the first response header. 
     (returns: http://fb.me/1dnoCICkf)
  $location = $response["Location"];
  $url3 = $location;

  $response2 = get_headers($url3,1);
  //Get the location property of the second response header.
     (returns: the full facebook url)
  $location2 = $response2["Location"];
  $url4 = $location2;

  //image parser
  if(isset($response2["Location"])) { //tests to make sure url is present
  $html = file_get_html($url3);  //function call to return page as html elements

  foreach($html->find('img') as $element) { //finds every img as element
    $bump = url_to_absolute($url4, $element->src);  //converts src to absolute url
      return $bump;
    } 
  }
  else {
    echo "url is not valid (Probably not an image)";
  }

}

Эта функция отлично работает на серверах 000webhost, однако на серверах godaddy она возвращает NULL.Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 23 марта 2012

если вы используете cURL на сервере GoDaddy для получения страниц, вам необходимо указать их прокси-сервер, например:

curl_setopt($ch,CURLOPT_PROXYTYPE,CURLPROXY_HTTP);
curl_setopt($ch,CURLOPT_PROXY,'http://proxy.shr.secureserver.net:3128');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...