Люди.. вот такая проблемка.. кароч.. \n - это я так понимаю перенос строки.. а у меня почему то это простой пробел.. В чем дело??
пробел в php. пример: echo "text\ntext"; // выводит text text а я так понимаю что должно вывести text text
_Flash_, ты неправильно понимаешь. Ты смотришь в браузере, а он обрабатывает текст, как html, а там переносы строк делаются по другому. Если ты посмотришь "Исходный html-код страницы", то там все будет нормально, т.е. php отработал, как надо. Учить основы html. Так же — http://www.phpfaq.ru/na_tanke
Короче если хочешь сделать перенос, то тебе надо сделать так: PHP: <?php echo "text<BR>text"; ?> тогда выведет: text text html-файл у тебя будет выглядеть text<br>text если написать вот так PHP: <?php echo "text\ntext"; ?> выведет text text а html-файл будет text text
Да знаю я хтмл.. и знаю я что <br> это перенос строки. Просто в учебниках по php написано, что \n - это перенос строки в php. Вот я и подумал, что вместо <br> можно использовать \n. Да и в примерак также. зачем тогда вообще придуман был \n - если можно просто ставить пробел?
\n - для переноса строки в html-файле. А пробел у тебя получается потому что это особенность html. Например если написать: <tr> <td> TEXTTEXTTEXT </td> </tr> То у после фразы TEXTTEXTTEXT в конце будет стоять пробел А если написать: <tr><td>TEXTTEXTTEXT</td></tr>, то пробел стоять не будет. В общем если после какой-то фразы перенести строку, то в конце будет стоять пробел, если нет то пробел не ставится. Тоже самое в случае с \n
Блин.. терь ясно.... Просто я не думал, что как-то будет изменяться html-код. да и смысла особого я в этом не вижу Я отлично понимаю что это такое и чем они отличаются...
Заметно. Как по мне, так ты все на свете спутал. Люди правы. Учи HTML, учи PHP, все учи, в общем Если у тебя дойдут руки до мануала по HTML, то ты прочитаешь там, что любая последовательность пробельных символов (пробел, таб, перенос строки) преобразуется браузером в ОДИН ПРОБЕЛ. Нужно понимать и чувствовать разницу, между исходным кодом HTML и отображаемой HTML-сраницей. Что касается "\n", который, по-твоему, абсолютно бесполезный, то у него свои функции. Во-первых, ты можешь писать на PHP не только динамические страницы, но и консольные приложения. Если тебе понадобится перевести строку в консоли, то тебе прийдется писать "\n", потому что там текст выводится как есть, и если ты выведешь "<br>", то на экране так и будет написано "<br>". Во-вторых, иногда бывает нужно разобраться в исходном коде HTML, который генерирует твой скрипт. Если ты делаешь вывод с одними br-ами, то открыв исходный код страницы, обнаружишь, что все написано в одну строчку, потому что в исходном коде как раз и нету символа новой строки "\n". И в-третьих, в конце концов, стандартный поток вывода - это далеко не единственное место, где могут всретиться переносы строк. Возьми для пирмера хотя бы обработку обычного многострочного текстового файла. Кстати, на всяк случай замечу, что "\n" - это не два символа (косая и буква n), а способ обозначить в строке один символ, имеющий свой собственный код, но не имеющий графического представления. На лету чего? Если ты контролируешь полет, то сделай вот так: $out = str_replace("\n", '<br>', $out); А если не контролируешь, то для того, чтобы сделать такую замену, тебе сначала нужно будет перехватить поток. Тогда можно воспользоваться функциями управлениями выводом: PHP: <?php // Включаем буферизацию ob_start(); // Выполняем задуманное echo "Hello World"; // Получаем содержимое буфера и очищаем его $out = ob_get_clean(); // Отключаем буферизацию ob_end_clean(); // Делаем преобразование над перехваченным текстом $out = str_replace("\n", '<br>', $out); // Выводим преобразованный текст echo($out); ?>
вариант 1 $this->out_text=str_replace( "\r\n" , "<br>" , $this->out_text); вариант 2 $this->out_text=nl2br($this->out_text); И не один почему то не сработал я близок к самоубийству
Но есть еще одна проблема Скрипт отрабатывает так как мне нужно, результаты выводятся. Но перед результатами выводится сообщение об ошибке: Warning: strpos(): Offset not contained in string. in s:\home\hosts\gazeta-pr\www\req\out.class on line 348 В этой строке у меня: $this->out_text=substr("$this->out_text", 0, strpos($this->out_text, ".", 200)); Кто подскажет где искать
Вот что еще интересно с некоторыми текстами работает без ошибок, а с некоторыми выдает ошибку. Если я правильно понимаю сообщение об ошибке функция не может найти точку в том куске текста который я пихаю в эту функцию
е-мое, уже написал сообщение что зделать, а затем нажал Ф5 делай так: Код (Text): $pos = strpos($this->out_text,'.',200); if ($pos) {$this->out_text=substr($this->out_text,0,$pos)}