Strict Standards: Resource ID#30 used as offset, casting to integer (30) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#32 used as offset, casting to integer (32) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#33 used as offset, casting to integer (33) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Как обработать переменную?
ТвойWeb » WebMaster класс » PHP/Perl » Как обработать переменную?

Страниц (1): [1]
 

1. Vladimir - 12 Января, 2010 - 06:50:39 - перейти к сообщению
Имеется переменная
$text = "Строка 1
Строка 2
Строка 3
Строка 4
...";

Как её преобразовать в следующий вид:
$text = "1|Строка 1|0
2|Строка 2|0
3|Строка 3|0
4|Строка 4|0
...";

Слева - нумерация строк, | - разделитель.
Что-то наподобие того, что в текстовой БД.
2. Davinchi - 12 Января, 2010 - 07:06:08 - перейти к сообщению
как вариант разбить строку в массив по пробелам, а дальше записать в новую переменную
CODE:

$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;
?>
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;
?>
Попробовал так, получается:

<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 - перейти к сообщению
Ещё немного изменил и получилось следующее:
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;
?>


Результат обработки:

[<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=" в строке и заменить следующий символ на нужный

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0358]     [ Gzipped ]