|
|
|
| есть некая страница на удалённом сервере (http://сайт.ru/)
её содержимое:
<table border="0" align=center size=5>
<tr>
<td align=left><b>Ник</b></td>
<td align=center><b>Уровень</b></td>
<td colspan="2" align=center><b>Класс</b></td>
<td align=right><b>PvP<b></b></b></td>
</tr>
<tr>
<td style="color:#8080FF">xLamoS*</td>
<td align=center>76
</td>
<td colspan="2" align=center></td>
<td align=right>303
/
10
</td>
</tr>
<tr>
<td style="color:#8080FF">Ishid*</td>
<td align=center>76
</td>
<td colspan="2" align=center></td>
<td align=right>5
/
0
</td>
</tr>
<tr>
<td style="color:#FF8080">Dol*</td>
<td align=center>75
</td>
<td colspan="2" align=center></td>
<td align=right>0
/
0
</td>
</tr>
</table>
|
вот скрипт:
<?
echo "<table border=\"0\" align=center>\n";
preg_match("/(<td style=)([^<]*)/i", file_get_contents("http://сайт.ru/"), $arr);
echo "<td style=".$arr[2];
echo "</td></tr> \n";
echo "</table>\n";
?>
|
он достаёт ивыводит вот эту часть color:#8080FF">xLamoS*
но мне надо что бы он доставал и вывлдил помимо первой части все остальные:
color:#8080FF">xLamoS*
color:#8080FF">Ishid*
color:#FF8080">Dol*
как мне это сделать? | |
|
|
|
|
|
|
|
для: BunK3R_r
(04.11.2006 в 01:55)
| | Это в категорию по Рег. Выражениям :)... а вообще вопрос интересный, жаль незнаю ответа :( | |
|
|
|
|
|
|
|
для: BunK3R_r
(04.11.2006 в 01:55)
| | Используй preg_match_all() - их отличие как раз в том, что preg_match() прекращает работу после того как нашел первое совпадение с шаблоном.
[поправлено модератором] | |
|
|
|
|
|
|
|
для: BunK3R_r
(04.11.2006 в 01:55)
| | помогите плз примером... | |
|
|
|
|
|
|
|
для: BunK3R_r
(05.11.2006 в 15:20)
| | Вы можете поступить следующим образом
<?
echo "<table border=\"0\" align=center>\n";
preg_match_all("/(<td style=)([^<]*)/i", file_get_contents("http://сайт.ru/"), $arr);
for($i = 0; $i < count($arr[2]); $i++)
{
echo "<td style=".$arr[2][$i];
echo "</td></tr> \n";
echo "</table>\n";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(05.11.2006 в 15:29)
| | а можно сделать что б скрипт искал от:
color:#8080FF">xLamoS*
и до тэга:
</tr>
вот так вот:
style="color:#8080FF">xLamoS*</td>
<td align=center>76
</td>
<td colspan="2" align=center></td>
<td align=right>303
/
10 | |
|
|
|
|
|
|
|
для: BunK3R_r
(05.11.2006 в 15:56)
| | Да, для этого скрипт следует исправить следующим образом
<?
echo "<table border=\"0\" align=center>\n";
preg_match_all("/(<td style=)(.*?)</tr>/i", file_get_contents("http://сайт.ru/"), $arr);
for($i = 0; $i < count($arr[2]); $i++)
{
echo "<td style=".$arr[2][$i];
echo "</td></tr> \n";
echo "</table>\n";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(05.11.2006 в 21:48)
| | вы уверены что так? =)
/(<td style=)(.*?)</tr>/i
может
/(<td style=)(.*?)<\/tr>/i
хотя в обоих случаях результата 0 =(( | |
|
|
|
|
|
|
|
для: BunK3R_r
(06.11.2006 в 02:29)
| | Попробуйте добавить модификатор " s "
/(<td style=)(.*?)<\/tr>/is
|
| |
|
|
|
|
|
|
|
для: BunK3R_r
(06.11.2006 в 02:29)
| | Кстати говоря да, действительно, без модификатора s не должно работать
<?
echo "<table border=\"0\" align=center>\n";
preg_match_all("/(<td style=)(.*?)</tr>/is", file_get_contents("http://сайт.ru/"), $arr);
for($i = 0; $i < count($arr[2]); $i++)
{
echo "<td style=".$arr[2][$i];
echo "</td></tr> \n";
echo "</table>\n";
}
?>
|
| |
|
|
|