2013-03-21 3 views
1

У меня есть несколько строк в PHP, сформированных как это:Как получить конкретные подстроки в PHP

26301 - DEP : df 30 01 codename, CODE : cdef 

Прописные части являются постоянными, в то время как другие частями являются переменными.

поэтому картина будет:

xxxxxx - DEP : yy zz kk wwwwwwww, CODE : ffff 

длина переменной частей может быть различным, так что константы будут только: ДЭП, символ «:», символ «», КОД , и символ «:» снова.

Есть ли способ извлечь эти части на PHP с помощью «шаблона» или мне нужно взорвать идентификатор с пробелами, а затем проверить все места для поиска констант? любой совет?

Я хотел бы производить, из первой строки:

$dep = "df 30"; 
$codenumber = "01"; 
$code = "cdef"; 
+1

sscanf() может быть полезной функцией для просмотра - http://www.php.net/manual/en/function.sscanf.php –

+0

Я посмотрю, спасибо –

+0

Вы пробовали что-нибудь? – Alfwed

ответ

1

sscanf() является путь: http://www.php.net/manual/en/function.sscanf.php

В вашем случае это может быть что-то вроде этого:

$var = "26301 - DEP : df 30 01 codename, CODE : cdef"; 
list($first, $second, $third, $fourth, $fifth, $sixth) = sscanf($var, "%d - DEP : %s %d %d %s, CODE : %s"); 
1

Использование регулярных выражений:

$str = '26301 - DEP : df 30 01 codename, CODE : cdef'; 
preg_match('/(.+) - DEP : (.+) (\d+) codename, CODE : (.+)/', $str, $array); 
list($str, $line, $dep, $codenumber, $code) = $array; 
echo "line: $line, dep: $dep, codenumber: $codenumber, code: $code"; 
// Result: line: 26301, dep: df 30, codenumber: 01, code: cdef 
Смежные вопросы