Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как подсчитать число переводов строк в строке?
 
 автор: ДацкыйКот   (25.07.2009 в 13:44)   письмо автору
 
 

Имеется текст с переводами строк типа \n.

Произвольный текст:
Одна строка
Другая строка


Как посчитать, сколько строк в этом тексте?

Пока приходится преобразовывать переводы строк в <br /> функцией nl2br и считать эти теги.

  Ответить  
 
 автор: Trianon   (25.07.2009 в 13:55)   письмо автору
 
   для: ДацкыйКот   (25.07.2009 в 13:44)
 

а теги каким образом считаете?

  Ответить  
 
 автор: sim5   (25.07.2009 в 13:56)   письмо автору
 
   для: ДацкыйКот   (25.07.2009 в 13:44)
 

<?
$s 
"Произвольный текст:
Одна строка
Другая строка"
;
$n count_chars($s1);
echo 
$n[10];
//или
echo substr_count($s "\n");

  Ответить  
 
 автор: ДацкыйКот   (25.07.2009 в 14:07)   письмо автору
 
   для: sim5   (25.07.2009 в 13:56)
 

Спасибо, помогло.

Я пробовал считать, обрамляя перевод строк одинарными кавычками:
 substr_count($s , '\n'); 

Так почему-то не считает.

  Ответить  
 
 автор: sim5   (25.07.2009 в 15:52)   письмо автору
 
   для: ДацкыйКот   (25.07.2009 в 14:07)
 

\r, \n, \t .... нужно обрамлять двойными кавычками, иначе это не будет восприниматься как код возврата каретки, перевода строки, табуляции.....

  Ответить  
 
 автор: ДацкыйКот   (25.07.2009 в 14:10)   письмо автору
 
   для: sim5   (25.07.2009 в 13:56)
 

Может посоветуете, как проще вырезать n-ое число строк от начала?

К примеру, краткое описание будет состоять из 10 первых строк оригинального текста.

  Ответить  
 
 автор: sim5   (25.07.2009 в 15:58)   письмо автору
 
   для: ДацкыйКот   (25.07.2009 в 14:10)
 

Если ваши строки разделены кодом перевода строки, то либо приеобразовать в массив и взять из него первые десять элементов, либо, если текст, это файл на диске, то file(), получите массив, ну и далее как выше сказано.

  Ответить  
 
 автор: Eugene77   (25.07.2009 в 16:06)   письмо автору
 
   для: ДацкыйКот   (25.07.2009 в 14:10)
 

$title = "";
for($i=0, $p=0; $p < 10; $i++) {
$title .= $s[$i];
if($s[$i] == "\n") $p++;
}
echo $title;

  Ответить  
 
 автор: sim5   (25.07.2009 в 16:08)   письмо автору
 
   для: Eugene77   (25.07.2009 в 16:06)
 

Это зачем так? Можно ведь без цикла взять десять строк и implode() через <br>.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования