|
|
|
| Возникла такая проблема, нужно из HTML страницы удалить все теги, но при этом получить массив данных.
Допустим
<?
$page=file_get_contents("http://send/arry.html");
$page=preg_replace("/(\\n| |\\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]. Как-то так. | |
|
|
|
|
|
|
|
для: 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, -1, 1);
print_r($array);
?>
|
| |
|
|
|
|
|
|
|
для: 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:45)
| | Вот еще вопрос, preg_match() работает только по строкам, Регулярное выражение проверяется только в строке? Но ни как к нескольким строкам одновременно. В книге(PHP5 на примерах) на этом не особо внимание обращается. | |
|
|
|