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

Форум Регулярные Выражения

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

 

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

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

тема: Удаление тегов и тостроение массива из оставшихся данных
 
 автор: Master-Quest   (16.05.2008 в 18:51)   письмо автору
 
 

Возникла такая проблема, нужно из HTML страницы удалить все теги, но при этом получить массив данных.
Допустим
<?
$page=file_get_contents("http://send/arry.html");
$page=preg_replace("/(\\n|&nbsp;|\\r|\\t| {2,})/", "", $page);
preg_match("#<.*>(.*)<.*>#",$page,$opisanie);
print_r ($opisanie);
?>
В теории должно вывестись только то что не заключено в тегах, только данные.(Простой текст).

К примеру <td class=headerform>
<p class="nameaction">Новая тема</p>
</td>
</tr>
<tr valign="top"><td class=bodyform><p class=linkbackbig><a href=# onClick='history.back()'>Вернуться</a></p> <form enctype='multipart/form-data' name='form' method=post>
<input type=hidden name=sid_add_theme value=''>
<table border="0" width="100%"><tr valign="top"><td>
<table border="0" >
<tr valign="top">
<td><p class="fieldname">Имя:</td>
<td><input size=25 class=input type=text name=author size=61 maxlength=100 value=''></td></tr>

Должно вывестись только==== arry Новая тема[0], Вернуться[1], Имя:[2]. Как-то так.

   
 
 автор: xx77   (17.05.2008 в 00:08)   письмо автору
 
   для: Master-Quest   (16.05.2008 в 18:51)
 

чтото такое
<?php

$text
= <<<TEXT
<td class=headerform>
<p class="nameaction">Новая тема</p> 
</td>
</tr> 
<tr valign="top"><td class=bodyform><p class=linkbackbig><a href=# onClick='history.back()'>Вернуться</a></p> <form enctype='multipart/form-data' name='form' method=post>
<input type=hidden name=sid_add_theme value=''>
<table border="0" width="100%"><tr valign="top"><td>
<table border="0" >
<tr valign="top">
<td><p class="fieldname">Имя:</td>
<td><input size=25 class=input type=text name=author size=61 maxlength=100 value=''></td></tr>
TEXT;
$array preg_split('#(\s*<[^>]+>\s*)+#s'$text, -11);
print_r($array);
?>

   
 
 автор: Master-Quest   (18.05.2008 в 15:45)   письмо автору
 
   для: xx77   (17.05.2008 в 00:08)
 

Спасибо но там ошибка, почему-то не работает, я так сделал, по в прицепи это не важно,


<?php

$text="
<td class=headerform>
<p class=\"nameaction\">Новая тема</p>
</td>
</tr>
<tr valign=\"top\"><td class=bodyform><p class=linkbackbig><a href=# onClick='history.back()'>Вернуться</a></p> <form enctype='multipart/form-data' name='form' method=post>
<input type=hidden name=sid_add_theme value=''>
<table border=\"0\" width=\"100%\"><tr valign=\"top\"><td>
<table border=\"0\" >
<tr valign=\"top\">
<td><p class=\"fieldname\">Имя:</td>
<td><input size=25 class=input type=text name=author size=61 maxlength=100 value=''></td></tr>
";
$array = preg_split('#(\s*<[^>]+>\s*)+#s', $text, -1, 1);
print_r($array);
?>

Спасибо

   
 
 автор: Master-Quest   (18.05.2008 в 15:54)   письмо автору
 
   для: Master-Quest   (18.05.2008 в 15:45)
 

Вот еще вопрос, preg_match() работает только по строкам, Регулярное выражение проверяется только в строке? Но ни как к нескольким строкам одновременно. В книге(PHP5 на примерах) на этом не особо внимание обращается.

   
Rambler's Top100
вверх

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