|
|
|
| Имеется текст с переводами строк типа \n.
Произвольный текст:
Одна строка
Другая строка
|
Как посчитать, сколько строк в этом тексте?
Пока приходится преобразовывать переводы строк в <br /> функцией nl2br и считать эти теги. | |
|
|
|
|
|
|
|
для: ДацкыйКот
(25.07.2009 в 13:44)
| | а теги каким образом считаете? | |
|
|
|
|
|
|
|
для: ДацкыйКот
(25.07.2009 в 13:44)
| |
<?
$s = "Произвольный текст:
Одна строка
Другая строка";
$n = count_chars($s, 1);
echo $n[10];
//или
echo substr_count($s , "\n");
|
| |
|
|
|
|
|
|
|
для: sim5
(25.07.2009 в 13:56)
| | Спасибо, помогло.
Я пробовал считать, обрамляя перевод строк одинарными кавычками:
Так почему-то не считает. | |
|
|
|
|
|
|
|
для: ДацкыйКот
(25.07.2009 в 14:07)
| | \r, \n, \t .... нужно обрамлять двойными кавычками, иначе это не будет восприниматься как код возврата каретки, перевода строки, табуляции..... | |
|
|
|
|
|
|
|
для: sim5
(25.07.2009 в 13:56)
| | Может посоветуете, как проще вырезать n-ое число строк от начала?
К примеру, краткое описание будет состоять из 10 первых строк оригинального текста. | |
|
|
|
|
|
|
|
для: ДацкыйКот
(25.07.2009 в 14:10)
| | Если ваши строки разделены кодом перевода строки, то либо приеобразовать в массив и взять из него первые десять элементов, либо, если текст, это файл на диске, то file(), получите массив, ну и далее как выше сказано. | |
|
|
|
|
|
|
|
для: ДацкыйКот
(25.07.2009 в 14:10)
| | $title = "";
for($i=0, $p=0; $p < 10; $i++) {
$title .= $s[$i];
if($s[$i] == "\n") $p++;
}
echo $title; | |
|
|
|
|
|
|
|
для: Eugene77
(25.07.2009 в 16:06)
| | Это зачем так? Можно ведь без цикла взять десять строк и implode() через <br>. | |
|
|
|