Как разбить следующую строку по запятым не в кавычках
Исходная строка: '54","34',34,"ab,ac",10,20
Результат:
54","34
34
ab,ac
10
20
Представьте вызов функции: my_function('54","34',34,"ab,ac",10,20) И вот нужно получить формальные параметры
sergeiss
21.08.2015 - 00:00
По-моему, тебе нужна вот эта функция:
http://php.net/manual/ru/function.str-getcsv.php
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
$str ="'54\",\"34',34,\"ab,ac\",10,20";
print_r(str_getcsv($str));
Выдает следующее:
Array ( [0] => '54" [1] => 34',34,ab [2] => ac" [3] => 10 [4] => 20 )
Чуть не то
sergeiss
21.08.2015 - 00:23
Цитата (wollk @ 21.08.2015 - 00:11) |
Выдает следующее: |
Ну так ты про параметры-то почитай, подумай, "поиграйся" ими!!!
PS. Строку только подготовь, чтобы она была "правильная" (в частности, кавычки должны быть однотипные). Тогда всё получится нормально.
Данные у тебя откуда получаются?
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
sergeiss
21.08.2015 - 00:34
Вот тебе код :) С полученным массивом, я думаю, ты уже разберешься. Его можно преобразовать в строку, с четко определенным форматом, а можно так с массивом и работать.
$str = "\$a = array('54\",\"34',34,\"ab,ac\",10,20);";
eval( $str );
echo '<pre>'.print_r( $a, 1 ).'</pre>';
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
В этом то и проблема, я избавляюсь от eval )) Виноват, что сразу не написал
sergeiss
21.08.2015 - 00:38
Цитата (wollk @ 21.08.2015 - 00:35) |
В этом то и проблема, я избавляюсь от eval )) |
Об этом не было сказано
Озвучь тогда уж сразу ВСЕ условия. "Избавляешься от eval", "не можешь использовать одинаковые кавычки"... Что еще не сказал пока? Ну, например, откуда идут данные и почему хочешь избавиться от eval()?
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Просто есть строка в теле страницы
Может быть и такая
function(54)
А может и такая:
function('54')
Или такая:
function(54,",")
Типа вызов функций
И вот парсится это, получаем то, что между скобками, и нужно это разбить на параметры
Люди могут написать как угодно. По этому я и не привяываюсь к одному типу кавычек.
Данные идут от - парсятcя со страницы
Без eval - сказали, что использование eval - дурной тон. Вот и не использую. А так с ним бы и парсить ничего не надо было
sergeiss
21.08.2015 - 00:54
Цитата (wollk @ 21.08.2015 - 00:41) |
Без eval - сказали, что использование eval - дурной тон. |
Если данные приходят от юзера, то да. Но если бы это был совсем "дурной тон", то и функции такой не было бы.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)