PHP скрипт работает на локальном сервере MAMP, но не на сервере IIS 8

У меня есть PHP-скрипт, который отображает твиты, встроенные в сайт, который я создал на своей локальной машине. Когда я загрузил сайт на свой сервер IIS 8.0, скрипт PHP больше не работает, и я получаю эту ошибку:

Предупреждение: неверный аргумент указан для foreach() в C:\inetpub\wwwroot\i360_new\footer.php в строке 76

Сценарий:

<?php
    ini_set('display_errors', 1);
    require_once('TwitterAPIExchange.php');

    /** Set access tokens here - see: https://dev.twitter.com/apps/ **/
    $settings = array(
        'oauth_access_token' => "xxxxx",
        'oauth_access_token_secret' => "xxxxx",
        'consumer_key' => "xxxxx",
        'consumer_secret' => "xxxxx"
    );


    /** Perform a GET request and echo the response **/
    /** Note: Set the GET field BEFORE calling buildOauth(); **/
    $url = "https://api.twitter.com/1.1/statuses/user_timeline.json";
    $getfield = '?screen_name=interactive360&count=1';
    $requestMethod = 'GET';
    $twitter = new TwitterAPIExchange($settings);
    $string = json_decode($twitter->setGetfield($getfield)
    ->buildOauth($url, $requestMethod)
    ->performRequest(),$assoc = TRUE);
    foreach($string as $items)
        {
            echo $items['text']."<br />";
        }
?>

Я думал, что это может быть проблема с версией PHP, но мой локальный компьютер работает на 5.4.10, а мой сервер работает на 5.4.14.

3 ответа

Вы сравнили оба сервера phpinfo()? При работе практически в одной среде каждый сервер может работать по-разному в зависимости от того, какие модули установлены.

Оказывается, это была проблема SSL/CURL. В файле TwitterAPIExchange.php мне пришлось добавить эти две строки в массив опций CURL:

CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false

Возможно, вы захотите убедиться, что строка $ не пуста. Я считаю, что ForEach выдаст эту ошибку, если вы предоставите пустую строку. Похоже, что строка зависит от TwitterAPIExchange.php, я вижу "Требуется один раз", но убедитесь, что он настроен правильно.

Другие вопросы по тегам