[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Лишний пробел при выводе строки
rbalakirev
При выводе строки, считанной из файла и заблаговременно обработанной trim'ом появляется пробел в конце. На странице его видно, я могу его выделить. В коде же страницы его нет, однако, если правильная строка выглядит как

на телефон<br>



то строка с этим пробелом выглядит:

на телефон 
<br>



Т.е. в коде следующая команда идет с новой строки. А на самой странице - пробел. Как это вылечить?



Спустя 1 минута, 32 секунды (16.12.2011 - 22:57) Игорь_Vasinsky написал(а):
это не прбел, а перенос строки и возврат корретки - \n\r

Спустя 2 минуты, 12 секунд (16.12.2011 - 22:59) rbalakirev написал(а):
А убрать-то его как? Я думал, эти символы убираются функцией trim, а он остался

Спустя 2 минуты, 42 секунды (16.12.2011 - 23:02) Игорь_Vasinsky написал(а):
покажи содержимое файла и как получаешь данные

Спустя 5 минут, 17 секунд (16.12.2011 - 23:07) rbalakirev написал(а):
Получаю:


$fp=fopen("filter.txt",'r');
$i=1;
while (!feof($fp)) {$filter[$i]=fgets($fp); $i++;}
$kolvo=count($filter);
for($i=1;$i>=$kolvo;$i++) {
$filter[$i]=trim($filter[$i]);
}


Вывожу:

echo $filter[i];


Пример считываемого файла приложил

Спустя 2 минуты, 34 секунды (16.12.2011 - 23:10) Игорь_Vasinsky написал(а):
а если так

$data = file_get_contents("filter.txt");

foreach($data as $lines)
echo $lines."<br />";

Спустя 6 минут, 4 секунды (16.12.2011 - 23:16) rbalakirev написал(а):
Так он вообще ничего не вывел.

Спустя 2 минуты, 5 секунд (16.12.2011 - 23:18) Игорь_Vasinsky написал(а):
упс :D :D :D

$content = file_get_contents("filter.txt");

$date = explode("\n", $content);

foreach($data as $lines)
echo $lines."<br />";

Спустя 3 минуты, 12 секунд (16.12.2011 - 23:21) rbalakirev написал(а):
А вот так уже интереснее. Выводит содержимое файла построчно. Этот @#$#@$ пробел в конце каждой строчки по прежнему присутствует. Однако в коде страницы перехода на другую строчку нет.

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

Спустя 1 минута, 21 секунда (16.12.2011 - 23:22) Игорь_Vasinsky написал(а):
содержимое файла то покажи.. хоть фрагмент

Спустя 24 секунды (16.12.2011 - 23:23) sergeiss написал(а):
Во-первых, открывать тогда уж лучше функцией file() - меньше всего кода будет и всё понятно smile.gif

rbalakirev - а в твоем коде проблема в том, что у тебя написано $i>=$kolvo, а надо $i<=$kolvo (внутри цикла). То есть, попросту, у тебя в цикле вообще не было обработки! То есть, trim() вообще не вызывался.

Но в любом случае рекомендую использовать file() для загрузки данных вместо fopen()-fgets()-fclose().

Спустя 1 минута, 9 секунд (16.12.2011 - 23:24) Игорь_Vasinsky написал(а):
sergeiss
согласен.
сразу массив.

Спустя 41 секунда (16.12.2011 - 23:24) sergeiss написал(а):
Игорь_Vasinsky - и еще согласись уж сразу, что условие внутри цикла было не верно написано wink.gif

Спустя 2 минуты, 8 секунд (16.12.2011 - 23:27) Игорь_Vasinsky написал(а):
щас глянул - да. косяк.

я просто даше целикм не смотрел, как понял что надо и увидел в начале кода дедовский метод.

ес-но нужно выполнять цикл пока строки не кончатся, а там.....

Спустя 1 минута, 12 секунд (16.12.2011 - 23:28) Игорь_Vasinsky написал(а):
$data = file("filter.txt");

foreach($data as $lines)
echo $lines."<br />";

Спустя 55 секунд (16.12.2011 - 23:29) sergeiss написал(а):
Цитата (Игорь_Vasinsky @ 17.12.2011 - 00:27)
щас глянул - да. косяк.

Как говорит Жванецкий "тщательнЕе надо, тщательнЕе!" smile.gif Вот и автор темы тоже поторопился немного. Потому и косячок-с получил.

Спустя 1 минута, 24 секунды (16.12.2011 - 23:30) rbalakirev написал(а):
Цитата (sergeiss @ 16.12.2011 - 20:23)
Во-первых, открывать тогда уж лучше функцией file() - меньше всего кода будет и всё понятно smile.gif

rbalakirev - а в твоем коде проблема в том, что у тебя написано $i>=$kolvo, а надо $i<=$kolvo (внутри цикла). То есть, попросту, у тебя в цикле вообще не было обработки! То есть, trim() вообще не вызывался.

Но в любом случае рекомендую использовать file() для загрузки данных вместо fopen()-fgets()-fclose().

Действительно, не туда знак махнул. Всё работает. Пробелов нет, сравнения валидные. Огромное спасибо!

Спустя 24 секунды (16.12.2011 - 23:31) Игорь_Vasinsky написал(а):
smile.gif

Спустя 1 минута, 12 секунд (16.12.2011 - 23:32) sergeiss написал(а):
rbalakirev - "Ну ты заходи, если чё..." (с) м/ф smile.gif

И про функцию file() не забудь - удобная штука, однако!

Спустя 1 минута, 12 секунд (16.12.2011 - 23:33) Игорь_Vasinsky написал(а):
biggrin.gif .. да да.... в тему.
Быстрый ответ:

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