[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: разбить строку на переменные
Страницы: 1, 2
1coba1
Помоги пожалуйста разбить срочку на переменные..

раньше легко бил этим кодом, потому что содержимое файла было:
list($perv[$n],$vtor[$n])=array_map("trim", explode("|", $line_price_position));

------------------------- код/ вместо ячейки таблицы положил содержимое дампа в файл msq.txt, на котором экспериментирую. Значения из дампа взяты 1:1

$file_handle = fopen("msq.txt", "r"); $n=0;

while (!feof($file_handle)) {
$line_price_position = str_replace('\r\n', "<br>", fgets($file_handle));

//print $line_price_position;

list($perv[$n],$vtor[$n])=array_map("trim", explode("|", $line_price_position));
$TABLE1[$n] = "артикул $perv[$n], цена $vtor[$n] грн";

print "$n Артикул: $perv[$n], цена $vtor[$n] грн<br>";

$n++; } fclose($file_handle);

-------------------------------------

Разделял по | первое значение - артикул, второе - стоимость.
3109 | 845,37
4000 | 531,03
4006-0 | 684,48
4013 | 90,21
4020-0 | 684,48
4029 | 829,56
4033 | 90,21
4041 | 135,78

НО! теперь содержимое ячейки таблицы стало:
9989 | 3,72\r\n6recEH | 0,11\r\n0870418/PUB | 2,79\r\n299052 | 0,93\r\n4468 | 1086,24\r\n4468-0 | 1086,24\r\n3102 | 845,37\r\n3103 | 845,37\r\n3109 | 845,37\r\n4000 | 531,03\r\n4006-0 | 684,48\r\n4013 | 90,21\r\n4020-0 | 684,48\r\n4029 | 829,56\r\n4033 | 90,21\r\n4041 | 135,78\r\n4043 | 90,21\r\n4062 | 531,03\r\n4064 | 531,03\r\n4086/12 | 723,54\r\n4086-0/09 | 684,48\r\n4086-0/12 | 723,54\r\n4096-0 | 730,05\r\n4108 | 1051,83\r\n4126-0 | 868,62\r\n4136-0 | 868,62\r\n4139/16 | 823,05

нет переноса строки, вместо него есть вот эта дрянь /r/n
причем, ничего не изменишь, плагин сторонний, данные хранятся только так

мне надо так же делить артикул | цена, как в первом случае, но уже с учетом того что разделение строк идет по /r/n

Подскажите решение, пожалуйста, ибо я убил весь день на это и так и не решил свою задачу..

Спасибо!
killer8080
\r\n это и есть перевод строки
если это текст, то можно тупой заменой
$str = str_replace('\r\n', "\r\n", $str);
1coba1
я так пробовал, не помогает.
killer8080
Цитата (1coba1 @ 9.03.2013 - 23:10)
я так пробовал, не помогает.

не может быть, значит что делал не так, показывай код
1coba1
$file_handle = fopen("msq.txt", "r"); $n=0;
//$file_handle = str_replace('\r\n', "\r\n", fgets($file_handle));
while (!feof($file_handle)) {
$line_price_position = str_replace('\r\n', "\r\n", fgets($file_handle));



print $line_price_position;

list($perv[$n],$vtor[$n])=array_map("trim", explode("|", $line_price_position));
$TABLE1[$n] = "артикул $perv[$n], цена $vtor[$n] грн";

print "$n Артикул: $perv[$n], цена $vtor[$n] грн<br>";

$n++; } fclose($file_handle);
killer8080
1coba1
а как получилось что в файле вместо символов новой строки оказался текст \r\n? Кто формирует этот файл?
1coba1
я изменил условие задания, чтобы было ближе к реальности.

Будем считать что я считал данные в переменную:$datatext

$datatext = "9989 | 3,72\r\n6recEH | 0,11\r\n0870418/PUB | 2,79\r\n299052 | 0,93\r\n4468 | 1086,24\r\n4468-0 | 1086,24\r\n3102 | 845,37\r\n3103 | 845,37\r\n3109 | 845,37\r\n4000 | 531,03\r\n4006-0 | 684,48\r\n4013 | 90,21\r\n4020-0 | 684,48\r\n4029 | 829,56\r\n4033 | 90,21\r\n4041 | 135,78\r\n4043 | 90,21\r\n4062 | 531,03\r\n4064 | 531,03\r\n4086/12 | 723,54\r\n4086-0/09 | 684,48\r\n4086-0/12 | 723,54\r\n4096-0 | 730,05\r\n4108 | 1051,83\r\n4126-0 | 868,62\r\n4136-0 | 868,62\r\n4139/16 | 823,05\r\n4141 | 279,93\r\n4166/20 | 1061,13\r\n4166-0/20 | 1061,13\r\n4166-0/23 | 1222,02\r\n4506/16 | 939,3\r\n4506/20 | 1109,49\r\n4506-0/16 | 939,3\r\n4506-0/23 | 1198,77\r\n4510/20 | 270,63\r\n4510/23 | 312,48\r\n4522/14 | 704,01\r\n4522/20 | 939,3\r\n4529/20 | 1305,72\r\n4529/23 | 1392,21";

$line_price_position = str_replace('\r\n', "\r\n", $datatext);


print $line_price_position;

цикл - начало

list($perv[$n],$vtor[$n])=array_map("trim", explode("|", $line_price_position));
$TABLE1[$n] = "артикул $perv[$n], цена $vtor[$n] грн";

print "$n Артикул: $perv[$n], цена $vtor[$n] грн<br>";


конец цикла



каким циклом можно пройтись по строковой переменной и какое должно быть условие у такого цикла?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.