Почему я не могу взорвать ‹ul›‹/ul› в php?

Я пытаюсь взорвать «ul», чтобы получить текст. Код ниже, помогите, оцените.

<?php
$html="<ul id='get_user' class='get_user'>1,2,3,4</ul>";
$first_explode=("<ul id='get_user' class='get_user'>",$html);
$second_explode=("</ul>", first_explode[1]);
$thrid_explode=(",", $second_explode[0]);
echo $thrid_explode[1]; //expecting 2
?>


person kenny    schedule 26.02.2015    source источник
comment
это вся настоящая строка?   -  person    schedule 26.02.2015
comment
Вы слышали об этой новой вещи, называемой регулярными выражениями?   -  person Achrome    schedule 26.02.2015
comment
что такое регулярные выражения?   -  person kenny    schedule 26.02.2015
comment
если все так, как показано выше, все, что вам нужно, это php.net/strip_tags.   -  person    schedule 26.02.2015


Ответы (2)


только с этим.

<?php
    $html ="<ul id='get_user' class='get_user'>1,2,3,4</ul>";
    $arrayUL = explode(",", strip_tags($html));
    print_r($arrayUL);
?>

Руководство по полосе_tags

person check    schedule 26.02.2015
comment
не могу представить, откуда у вас появилась эта идея. - person ; 26.02.2015
comment
Я просто хочу помочь решить. - person check; 26.02.2015
comment
Спасибо за вашу помощь. Вы решаете мой вопрос. но, к сожалению, я не могу решить свою проблему. Потому что я использую .ajax, чтобы вернуть текст в ‹ul›, так что это не работает. Спасибо, в любом случае. - person kenny; 26.02.2015
comment
в чем проблема..? Вы можете использовать json в .ajax, чтобы получить возвращаемые данные из формы php. - person check; 26.02.2015
comment
Я не знаю, в чем проблема. Я могу повторить ‹ul›‹/u› с помощью ajax $(#get_user).text(data); , но когда я использую strip_tags, он ничего не выводит, если я помещаю текст между ‹ul›‹/ul›, он будет повторять этот текст. Я не понимаю. - person kenny; 26.02.2015

Посмотрите этот ответ Stackoverflow: RegEx для извлечения текста между тегом HTML

Регулярное выражение "/<([A-Za-z][A-Za-z0-9]*)\b[^>]*>(.*?)<\/\1>/" будет извлекать текст внутри тегов HTML. Вы можете использовать preg_match php: http://php.net/manual/en/function.preg-match.php

Вот так:

$regex = '/<([A-Za-z][A-Za-z0-9]*)\b[^>]*>(.*?)<\/\1>/';
$string = '<div class="some-class" style="display:block;">Hello</div>';
preg_match($regex, $string, $matches);
print_r($matches);

Таким образом, вы хотите использовать регулярные выражения для анализа чего-либо более сложного, чем простые разделители символов. Вот удобный онлайн-тестер регулярных выражений: https://regex101.com/#pcre.

person mjwunderlich    schedule 26.02.2015
comment
вы никогда не должны использовать регулярные выражения для разбора html. Заголовок stackoverflow.com/questions/6751105/ - person ; 26.02.2015
comment
Спасибо за ваше время. Но я копирую и вставляю ваш код именно для проверки. Это не работает. Вы что-то пропустили или, возможно, я не знаю, как его использовать. - person kenny; 26.02.2015
comment
@Dagon, это вопрос использования - если вам нужно проанализировать одну строку HTML, она работает довольно хорошо. Очевидно, что для больших усилий используйте анализатор XML DOM. stackoverflow.com/a/6752487/1000437 - person mjwunderlich; 26.02.2015