Есть ли способ использовать выражение preg для поиска строки и положить в массив? PHP - PullRequest
0 голосов
/ 25 октября 2011

Я пытался использовать preg_split, но он не очень хорошо работает, вот как я его использую:

$html_str = '<span class="spanClass" rel="rel span">Text Span</span>';

$arrTemp = preg_split('/\<span class=\"spanClass\" rel=\"(.+?)\"\>(.+?)\<\/span\>/', $html_str);

Так что я бы получил эти 2 '(.+?)' переменные в array(span rel and Text Span).

Вероятно, я не думаю об этом наилучшим образом, чтобы решить мою проблему, но дело в том, что моя строка будет иметь более одного <span>, смешанного с мусорным HTML, и мне нужно отделитьтолько содержимое <span> в массиве.Есть идеи получше?

1 Ответ

0 голосов
/ 25 октября 2011

Прежде всего preg_split - неправильная функция, вы действительно имели в виду preg_match из синтаксиса регулярных выражений, который вы, похоже, используете.

Правильное использование будет:

$html = '<span class="spanClass" rel="foo bar">Text Span</span>';
preg_match("/<span.*rel=[\"']([^\"']+)[\"'][^>]*>([^<]+)<\/span>/", $html, &$A);
print_r($A);

Это выводит:

Array
(
    [0] => <span class="spanClass" rel="foo bar">Text Span</span>
    [1] => foo bar
    [2] => Text Span
)

Так что выше используется preg_match; $ A [0] содержит всю строку $ A [1] rel = stuff и $ A [2] Text Span stuff.

...