2011-12-26 3 views
0

У меня есть длинная строка, например:PHP: Взорвать сложную строку

11070, 'EP_LQ-630', 'LQ-630, 24 pin, A4, 360 cps, USB 1.1&LPT', NULL, 6438, 1, 45, 1, 5184, 0, 20, NULL, NULL, 432, 1, 5088, 0, 424, 1, 1, 4, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, 370, 1, 369, 1, 368, 1, 367, 1, NULL, NULL, NULL, NULL, NULL, 1, '8443', NULL, NULL, NULL, '07.12.2011 18:16:28', NULL, NULL, '8471604', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 366, 1, ';6438;6432;4873;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL 

Это часть запроса SQL Insert, и разделенные запятыми значения столбцов.
Как я могу взорвать эту строку по столбцам, если у меня в третьих столбцах строка, которая также содержит запятые?

ответ

8

Вы можете использовать функцию str_getcsv для разбора разделенных запятыми список значений:

$parsed_array = str_getcsv($string, ',', "'"); //Return value: array 
// Separated by : , (comma) 
// Enclosused by: ' (single quote) 
+0

Спасибо! Он отлично работает! –

5

Попробуйте str_getcsv.

<?php 
$s = "11070, 'EP_LQ-630', 'LQ-630, 24 pin, A4, 360 cps, USB 1.1&LPT', NULL, 6438, 1, 45, 1, 5184, 0, 20, NULL, NULL, 432, 1, 5088, 0, 424, 1, 1, 4, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, 370, 1, 369, 1, 368, 1, 367, 1, NULL, NULL, NULL, NULL, NULL, 1, '8443', NULL, NULL, NULL, '07.12.2011 18:16:28', NULL, NULL, '8471604', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 366, 1, ';6438;6432;4873;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL"; 
$a = str_getcsv($s, ",", "'"); 
var_export($a); 
+0

Спасибо! Он тоже работает :) –

Смежные вопросы