File_get_contents вызывает преждевременный выход из цикла foreach - PullRequest
0 голосов
/ 09 июня 2011

Итак, я использую API и использую текстовые файлы для хранения данных. При попытке прочитать содержимое этих файлов в цикле foreach иногда это не работает. Вот код, с которым я работаю:

$allCampaigns = listCampaigns();
$userCampaings = campaignsForUser($_SESSION['usertoken']);
$allCampaigns = array_diff($allCampaigns, $userCampaings);

$joinedCampaigns = array();
$otherCampaigns = array();

foreach($userCampaings as $value)
{
    $info = campaignInfo($value);
    $joinedCampaigns[] = $info;
}

foreach($allCampaigns as $key =>$value)
{
    echo " $key  => $value <br />";
    $info = campaignInfo($value);
    if($info['joinable'] != 0)
        $otherCampaigns[] = $info;
    else
        continue;
}

foreach($userCampaigns as $value) отлично работает, он перебирает все элементы. Когда я попадаю в foreach($allCampaigns as $key =>$value), он повторяется только один раз, независимо от того, сколько элементов в $allCampaigns. echo " $key => $value <br />"; печатается только один раз.

Функция CampainInfo:

function campaignInfo($campaign)
{
    $file_name = "data/campaigns/$campaign.txt";
    $fp = file_get_contents($file_name) or die ("Could not open $file_name");
    $arr = json_decode($fp);
    return $arr;
}

Строка «Не удалось открыть $ file_name» никогда не печатается. Данные во всех этих файлах идентичны, и я могу открыть их все в текстовом редакторе.

Идеи

Редактировать: Нет ошибок или предупреждений, период. кажется, что он не работает на if($info['joinable'] != 0), но присоединяемый ключ всегда равен 0 или 1 .... ???

...