Безкраен цикъл

NewGuy

Registered
Здравейте. Имам проблем с едно кодче. Според мен имам безкраен цикъл. Кода си върши работата но седи така 60 секунди и и пише, че времето е изтекло. Махнах лимита за секундите и постоянно зарежда страницата. Някои има ли идея от къде може да идва грешката?
Код:
while ($i <= count($information['Cast:']))
{

    $kartinka = "" . $information['Cast:'][$i]['thumb'] . "";
    $kartinka = preg_replace('/30/', '100', $kartinka);
    $kartinka = preg_replace('/23/', '90', $kartinka);

    echo $kartinka;
    $name = time(); 
    $razshirenie = pathinfo($kartinka); 
    $ext = $razshirenie['extension']; 
    $destinacia = "files/" . $information['Cast:'][$i]['name'] . $name . "." . $ext;
    $dalechno = fopen($kartinka, "r");
    $lokalno = fopen($destinacia, "w");


    while (!feof($dalechno))
    {
        $line = fgets($dalechno, 4096);
        fputs($lokalno, $line, strlen($line));
    }


    $kartinka = preg_replace('/100/', '300', $kartinka);
    $kartinka = preg_replace('/90/', '200', $kartinka);

    $name = time() . time(); 
    $razshirenie = pathinfo($kartinka); 
    $ext = $razshirenie['extension'];
    $destinacia = "files/" . $information['Cast:'][$i]['name'] . $name . "." . $ext;
    $dalechno = fopen($kartinka, "r");
    $lokalno = fopen($destinacia, "w");


    while (!feof($dalechno))
    {
        $line = fgets($dalechno, 4096);
        fputs($lokalno, $line, strlen($line));
    }

    $fail_loc = "files/" . $name . "." . $ext;
    echo "<img src='$destinacia'>";

    $i++;
}
 
Аз мисля че имаш твърде много цикли в главния и предполагам всеки един бави доста, ако обработваш голям файл.
Най-вероятно е от някой от тези:
Код:
  while (!feof($dalechno)) 
    { 
        $line = fgets($dalechno, 4096); 
        fputs($lokalno, $line, strlen($line)); 
    }

Пробвай да ги коментираш и виж какво става, ако е от тях - ще трябва да намериш начин да ги оптимизираш или да си преосмислиш логиката и да я напишеш по друг начин :)
 
Да от тях е. Нямам идея обаче как може да се направи по-бързо. Някакви заместители да се сещате?
 
Я кажи какво точно се мъчиш да направиш.

Някакви текстови файлове четеш, докато не достигнеш края на файла, вземаш инфото от файла и го слагаш в нов, доколкото успях да разбера.
Каква е целта на всичко това?
 
Да точно така. Проблема е, че са на отдалечен хостинг. Искам да имам архив на моя.
 
Защо не вземаш съдържанието с file_get_contents ?

Ако файловете не са твърде големи, за да напълнят позволения буфер на сървъра може и да стане :wink:

http://bg.php.net/manual/en/function.file-get-contents.php

П. С

Защо просто не ползваш функцията copy (), която ти дава възможност да копираш определен файл в място което ти посочиш в сървъра или ти обработваш новия файл, който генерираш?
 
Охооо. Стана сега проблема ми е, че изпълнява действието 2 пъти но сигурно нещо съм объркал сега ще го мъча. Благодаря много! :wink:
 

Back
Горе