Имеется переменная
$text = "Строка 1
Строка 2
Строка 3
Строка 4
...";
Как её преобразовать в следующий вид:
$text = "1|Строка 1|0
2|Строка 2|0
3|Строка 3|0
4|Строка 4|0
...";
Слева - нумерация строк, | - разделитель.
Что-то наподобие того, что в текстовой БД.
1. Vladimir - 12 Января, 2010 - 06:50:39 - перейти к сообщению
2. Davinchi - 12 Января, 2010 - 07:06:08 - перейти к сообщению
как вариант разбить строку в массив по пробелам, а дальше записать в новую переменную
есть варианты проще наверно но первый в голову пришел этот
Работоспособность не проверял
CODE:
$i|$arr[j]$arr[j+1]|0
$i|$arr[j]$arr[j+1]|0
есть варианты проще наверно но первый в голову пришел этот
Работоспособность не проверял
3. Vladimir - 12 Января, 2010 - 12:14:07 - перейти к сообщению
Как каждую строку обрабатывать?
4. Davinchi - 12 Января, 2010 - 17:03:49 - перейти к сообщению
CODE:
<?php
$text="Строка 1 Строка 2 Строка 3 Строка 4";
$arr=explode(" ",$text);
$text_new="";
$j=0;
for($i=0; $i<count($arr); $i=$i+2){
$text_new=$text_new."|".$j."|".$arr[$i]." ".$arr[$i+1]."|0";
$j++;
}
echo $text_new;
?>
<?php
$text="Строка 1 Строка 2 Строка 3 Строка 4";
$arr=explode(" ",$text);
$text_new="";
$j=0;
for($i=0; $i<count($arr); $i=$i+2){
$text_new=$text_new."|".$j."|".$arr[$i]." ".$arr[$i+1]."|0";
$j++;
}
echo $text_new;
?>
5. Vladimir - 13 Января, 2010 - 02:58:13 - перейти к сообщению
CODE:
Попробовал так, получается:<?php
$text="Строка1
Строка2
Строка3
Строка4
Строка5
Строка6
Строка7
Строка8";
$arr=explode("\n",$text);
$text_new="";
$j=1;
for($i=0; $i<count($arr); $i=$i+1){
$text_new=$text_new."<".$j.">".$arr[$i]."*0*<br>";
$j++;
}
echo $text_new;
?>
$text="Строка1
Строка2
Строка3
Строка4
Строка5
Строка6
Строка7
Строка8";
$arr=explode("\n",$text);
$text_new="";
$j=1;
for($i=0; $i<count($arr); $i=$i+1){
$text_new=$text_new."<".$j.">".$arr[$i]."*0*<br>";
$j++;
}
echo $text_new;
?>
<1>Строка1 *0*
<2>Строка2 *0*
<3>Строка3 *0*
<4>Строка4 *0*
<5>Строка5 *0*
<6>Строка6 *0*
<7>Строка7 *0*
<8>Строка8*0*
Но в дальнейшем переменную $text_new невозможно обработать.
6. Vladimir - 13 Января, 2010 - 04:20:18 - перейти к сообщению
Ещё немного изменил и получилось следующее:
Результат обработки:
[<c=1>Строка1
<x=1><0>]<br>[<c=2>Строка2
<x=2><0>]<br>[<c=3>Строка3
<x=3><0>]<br>[<c=4>Строка4
<x=4><0>]<br>[<c=5>Строка5
<x=5><0>]<br>[<c=6>Строка6
<x=6><0>]<br>[<c=7>Строка7
<x=7><0>]<br>[<c=8>Строка8<x=8><0>]<br>
(теги <br> стоят временно)
Как теперь в этом тексте можно изменять <0> на 0+1 ?
То есть, если x=1, то тот ноль, что правее - превращается в 1. При аналогичном обращении - в 2. И т.д.
Если необходимо, то <0> можно заменить, например, на <y=0>.
CODE:
<?php
$text="Строка1
Строка2
Строка3
Строка4
Строка5
Строка6
Строка7
Строка8";
$arr=explode("\n",$text);
$text_new="";
$j=0;
for($i=0; $i<count($arr); $i=$i+1){
$j++;
$text_new=$text_new."[<c=".$j.">".$arr[$i]."<x=".$j."><0>]<br>";
}
echo $text_new;
?>
$text="Строка1
Строка2
Строка3
Строка4
Строка5
Строка6
Строка7
Строка8";
$arr=explode("\n",$text);
$text_new="";
$j=0;
for($i=0; $i<count($arr); $i=$i+1){
$j++;
$text_new=$text_new."[<c=".$j.">".$arr[$i]."<x=".$j."><0>]<br>";
}
echo $text_new;
?>
Результат обработки:
[<c=1>Строка1
<x=1><0>]<br>[<c=2>Строка2
<x=2><0>]<br>[<c=3>Строка3
<x=3><0>]<br>[<c=4>Строка4
<x=4><0>]<br>[<c=5>Строка5
<x=5><0>]<br>[<c=6>Строка6
<x=6><0>]<br>[<c=7>Строка7
<x=7><0>]<br>[<c=8>Строка8<x=8><0>]<br>
(теги <br> стоят временно)
Как теперь в этом тексте можно изменять <0> на 0+1 ?
То есть, если x=1, то тот ноль, что правее - превращается в 1. При аналогичном обращении - в 2. И т.д.
Если необходимо, то <0> можно заменить, например, на <y=0>.
7. Davinchi - 16 Января, 2010 - 11:05:25 - перейти к сообщению
тогда лучше поставить y=0 дальше найти последнее вхождение "y=" в строке и заменить следующий символ на нужный