PHP: $cdata = <![CDATA[{"старт":"9,999.9 десять тысяч иен","техосмотр \"shaken\"":"29 год06 месяц","состояние":"ставка возможна","комплектация":"E Chocolatier","название машины":"Moco","топливо":"GS","оценка":"R","объем двигателя":"660cc","кондиционер":"AAC","оборудование":"PS PW ABS подушка безопасности","коробка передач":"FAT","место проведения":"JU Okinawa Okinawa префектура средний. уезд","количество проведений":"1523","пробег":"45 тысячkm","цвет":". .","год":"H22","Full model name":"Nissan Moco MG22S-369522","конечный срок предложения цены":"2016-07-22 11:30","день проведения":"2016-07-22 12:30:"}]]> Прошу прощение за такой тупой вопрос... Но в первый раз знакомлюсь с этим тегом. В общем короче мне передают базу в проект, и там в базе есть вот такой контент в таком типа теге... Но как его разобрать не пойму попробовал парсингом xml не получилось... Найти как распарсить эту штуку я не нашёл, можно просто регуляркой это сделать, можно explode и состряпать массив, то что мне в принципе и нужно в результате получить имя и значение, и отдать во вью. Вопрос в принципе в другом есть ли на php функция, чтобы просто туда это засунуть и получить объектный массив, либо же просто массив ? Найти не смог...
Вытяни то что внутри квадратных скобок, а дальше это просто json строка. после декодирования имеет вид. Код (Text): object(stdClass)[6] public 'старт' => string '9,999.9 десять тысяч иен' (length=38) public 'техосмотр "shaken"' => string '29 год06 месяц' (length=22) public 'состояние' => string 'ставка возможна' (length=29) public 'комплектация' => string 'E Chocolatier' (length=13) public 'название машины' => string 'Moco' (length=4) public 'топливо' => string 'GS' (length=2) public 'оценка' => string 'R' (length=1) public 'объем двигателя' => string '660cc' (length=5) public 'кондиционер' => string 'AAC' (length=3) public 'оборудование' => string 'PS PW ABS подушка безопасности' (length=50) public 'коробка передач' => string 'FAT' (length=3) public 'место проведения' => string 'JU Okinawa Okinawa префектура средний. уезд' (length=65) public 'количество проведений' => string '1523' (length=4) public 'пробег' => string '45 тысячkm' (length=15) public 'цвет' => string '. .' (length=3) public 'год' => string 'H22' (length=3) public 'Full model name' => string 'Nissan Moco MG22S-369522' (length=32) public 'конечный срок предложения цены' => string '2016-07-22 11:30' (length=16) public 'день проведения' => string '2016-07-22 12:30:' (length=17) --- Добавлено --- http://stackoverflow.com/questions/6674322/how-to-get-values-inside-cdatavalues-using-php-dom Вот тема где это дело рассматривается.
@mahmuzar ну как бы, да jsone обьект и вправду не дотупил чё то Чё то внатуре залагал.... xD Спасибо.
Вот прикол, в html выводит cdata а так не видит его Чё делать? --- Добавлено --- @mahmuzar А вот не получается не чего мне вытаскивать php не видит тега <![CDATA --- Добавлено --- вар дампом говорит мол тут строчка столько то символов, а выводить не через echo не через принт не хочет лол
Смотри в отладчике или в исходном коде. Это скорее браузер игнорит, а не пхп. Какая ядру пыхпа разница, чего там у тебя в строчке? Единственное исключение - нулевой байт, поскольку многие строковые функции php транслируются на вызов соответствующих функций C, а там нулевым байтом конце строки отмечают.
PHP: $parsedDataRu =str_replace('<![CDATA[', '', $value['parsed_data_ru']); $parsedDataRu =str_replace(']]>', '', $parsedDataRu); //И $parse_ru = json_decode($parsedDataRu); echo '<pre>'; print_r($parse_ru); echo '</pre>'; Cделал так. Работает, чё то вчухнуть не могу, как одной функцией намутить вырезку. --- Добавлено --- ага preg_replace точно...
PHP: echo $content = simplexml_load_string( '<content>'.$value['parsed_data_ru'].'</content>' , null , LIBXML_NOCDATA ); Да вот таким путём работает.... --- Добавлено --- @runcore я видел, но не мог срастить почему не работает, нужно было подстроить под xml вариант. И тогда да работает, а что быстрее этот вариант или же простая замена строки?
простая замена думаю быстрее. но оптимизацией нужно заниматься когда уже все написано и правильно работает. прездевременной оптимизацией лучше не заниматься. выйдет боком в итоге. проверено.