Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: как разбить строку html на элементы
 
 автор: php_fx   (04.06.2007 в 03:12)   письмо автору
 
 

Подскажите как разбить строку html на элементы массива с php функциями
только без использования DOM

Понимаю что это связано с регулярными выражениями но я вних не очень разбираюсь

// как вот такую строку разбить на два элемента
// если есть возможность примерчик покажите


<div class="divtext" >  text
        <div class="..." > text2     </div>
</div>


   
 
 автор: kasmanaft   (04.06.2007 в 07:31)   письмо автору
 
   для: php_fx   (04.06.2007 в 03:12)
 

Что Вы имеете ввиду? не очень понятно...

<pre>
<?
$arr 
preg_split("#</?\w+[^>]*>#"$text);
print_r($arr);

   
 
 автор: php_fx   (05.06.2007 в 04:45)   письмо автору
 
   для: kasmanaft   (04.06.2007 в 07:31)
 

Мне надо чтоб строка html была разбита на элементы html
в этом случае на <div>

// к примеру взять строку

$strhtml = "<div class='divtext\' ...>  text    <div class='...'> text2  <cite> цитата  </cite> </div> </div>";

 arr =    ... 

//и разбить ее  вот так
arr[0]  = ""<div class='divtext' ...> text     </div>  ";
arr[1] = "<div class='...'   ... >    text  </div> ";
arr[2] = " <cite> цитата </cite> ";

   
 
 автор: bronenos   (05.06.2007 в 06:51)   письмо автору
 
   для: php_fx   (05.06.2007 в 04:45)
 

имхо тут надо работать с ДОМ

   
 
 автор: Disable   (05.06.2007 в 12:59)   письмо автору
 
   для: php_fx   (05.06.2007 в 04:45)
 

не совсем понятно из примера что в итоге надо..
можно вытащить все теги и их содержание, получятся вот такие массивы


<?php
$strhtml 
'<div class="divtext1">  text    <div class="divtext2"> text2  <cite> цитата  </cite> </div> </div>';

preg_match_all('|<[^>]+>|',$strhtml,$tag);
preg_match_all('|>([^<]+)<|',$strhtml,$content);
print_r($tag[0]);
print_r($content[1]);
?>


может вы сможете слепить из низ то, что хотите, раз уж так DOM не любите.

   
 
 автор: Trianon   (05.06.2007 в 10:00)   письмо автору
 
   для: php_fx   (04.06.2007 в 03:12)
 

неправильно понимаете.
Оно не связано с регулярными выражениями.
Регулярные выражения вообще не способны разбирать данные рекурсивной природы неограниченной вложенности.

Можно пробовать разобрать средствами разбора XML.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования