2015-06-07 3 views
-1

Привет всем Я создал функцию (PHP), которая в основном открывает текстовый файл со списком дат каждой даты на собственной строке. Затем я использую просмотр, чтобы просмотреть каждую строку файла, чтобы узнать, совпадает ли дата, указанная в списке, или если совпадение не соответствует следующей дате, ближайшей к сегодняшним дням. Проблема в том, что хост, на который я положил функцию, не поддерживает fopen, поэтому мне нужно преобразовать его в завиток. Я посмотрел на некоторые примеры, но могу найти способ получить содержимое с помощью завитки, а не по очереди, вы можете помочь мне преобразовать это в завиток? Вот мой код:Преобразование fopen в curl using while loop

function service_dates() { 

$file_path .= "/dates.txt"; 
$handle = fopen($file_path, "r"); 

if ($handle) { 
    while (($line = fgets($handle)) !== false) { 
     $new_time = strtotime($line); 
     $time_now = strtotime(date("d-m-Y", gmmktime())); 

     if ($time_now == $new_time) { 
      $next_date = date("D, jS M", $new_time); 
      $status = "Operating a Service Today!"; 
      $statusid = 1; 
      $returnstatus = array($status, $next_date, $statusid); 
      return $returnstatus;   
     } 

     if ($time_now <= $new_time) { 
      $next_date = date("D, jS M", $new_time); 
      $status = "Closed Today"; 
      $statusid = 2; 
      $returnstatus = array($status, $next_date, $statusid); 

      return $returnstatus;    
     } 
    } 

    fclose($handle); 
} 
else { 
    echo "error"; 
    } 

} 
+0

Что не работает с' fopen'? Как именно сервер не поддерживает его? Это встроенная функция. - Просить, чтобы ваш код был переписан, совершенно неясно и бессмысленно. 'curl' много не касается локальных файлов. – mario

+0

@mario в основном я написал это и протестировал его локально, все работало нормально, но я загрузил его на сервер, и он не работал. Поэтому я посмотрел на это: http://stackoverflow.com/questions/9038694/fopen-is-not-working-on-my-server, который я нашел fopen, отключен. Главный ответ на этот предлагаемый завиток, поэтому я смотрел на это, но не могу понять, как использовать завиток в цикле для каждой строки. – Mark

+0

«Не работает» не является фактическим сообщением об ошибке. И 'allow_url_fopen' ** ничего ** не делает с открытием локальных файлов. – mario

ответ

0

Вы можете использовать explode разделить данные на отдельные строки и перебирать результирующий массив с помощью цикла Еогеаспа:

foreach(explode("\n", $data_from_curl) as $line){ 
    ... 
} 

(заменить «\ п» на «\ r \ n ", если ваш файл использует разрыв строки Windows)

+0

Отличное спасибо, что я только что только что не знал, каким образом я должен получить каждую строку от результата завитка, и это сработало отлично :) – Mark