[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос по циклу while в PHP
xorolcev
Парни, может кто скажет в чем же я ошибаюсь... Идея состоит в следующем, нужно считать файл построчно, поменять пятый символ с конца и выдать. То есть вместо 1_1.jpg выдать 1_2.jpg... Казалось бы легче простого.... Но что то не как не получается... В чем же я ошибаюсь???
Создаем например файл bas.bas вносим туда несколько строк:
bas.bas

1_1.jpg
2_1.jpg
3_1.jpg
4_1.jpg
5_1.jpg

Далее создаем php файл например php.php
php.php

<?php
$file = fopen("bas.bas", "r");//Открываем файловый дескриптор с режимом чтения файла «r»
while(!feof($file))//Открываем цикл пока не будет достигнут конец нашего файла.
{
$string = fgets($file);//Читаем из файла строку
$string1 = substr($string, 0, -5); //формируем массив названий файлов без расширения и последнего символа
echo "$string1 2.ipg<BR>"; //выдаем Да вот еще вопрос: чем отделить переменную от 2.jpg чтобы выдовалась вместе???
}
fclose($file);//Закрываем файловый дескриптор
?>

Выдаёт:

1_1. 2.ipg
2_1. 2.ipg
3_1. 2.ipg
4_1. 2.ipg
5_ 2.ipg

То есть от пятой строки отнимается 5 символов, все правильно, а от всех остальных по 3
Так в чем же я ошибся, или кто то подскажет другое решение.... Как заменить 5 символ с права???



Спустя 20 минут, 56 секунд (2.05.2011 - 14:20) memba написал(а):
Попробуйте по другому. не через substr резать.

либо explode() по точке, а потом скеивание. Или регулярным выражением.

А то как то на соплях такой сдвиг держится

Спустя 15 минут, 38 секунд (2.05.2011 - 14:36) Mirexzpalich написал(а):
Цитата

То есть от пятой строки отнимается 5 символов, все правильно, а от всех остальных по 4
Так в чем же я ошибся, или кто то подскажет другое решение.... Как заменить 5 символ с права???

Существую символы переноса строка... Так вот в первых 4-х есть символы перевода строки, а в 5 нет. Вот и кажется, что в первых 4-х удаляется по 4символа(на самом деле 5 т.к. есть еще и символ переноса).


Спустя 2 минуты, 1 секунда (2.05.2011 - 14:38) Mirexzpalich написал(а):

<?php
$file = fopen("bas.bas", "r");//Открываем файловый дескриптор с режимом чтения файла «r»
while(!feof($file))//Открываем цикл пока не будет достигнут конец нашего файла.
{
$string = fgets($file);//Читаем из файла строку
$string = str_replace("\n",'',$string);
$string1 = substr($string, 0, -5); //формируем массив названий файлов без расширения и последнего символа
echo "$string1 2.ipg<BR>"; //выдаем
}
fclose($file);//Закрываем файловый дескриптор
?>

Цитата

Да вот еще вопрос: чем отделить переменную от 2.jpg чтобы выдовалась вместе???

Не понятно что ты хочешь....

Спустя 9 минут, 37 секунд (2.05.2011 - 14:47) pyha_coder написал(а):
Вот рабочее решение.

$file = file("base.txt");

foreach ($file as $num=>$line){

$str = substr(trim($line), 0, -5);
echo $str . '2.ipg<br />';

}

Спустя 2 минуты, 57 секунд (2.05.2011 - 14:50) xorolcev написал(а):
Парни спасибо всем!!!! Огромное за помощь С утра парился.... Все заработало!!!! Еще раз всем спасибо!!!! Теперь мы им покажем user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.