|
|
|
|
не работает count когда я подставляю count($matches) в цыкл for($p=0; $p<count($matches);$p++)
то оно не хочет выводить то что выводится когда я пишу напрямую $p<30
А когда я пишу на прямую тогда все нормально ,
но мне надо что-бы цыкл проходил полностью , ровно столько раз сколько элементов в масиве .
Вот пример :
{code]
<html>
<head>
<title></title>
</head>
<body>
<?php
$j=5;
$filename = "http://mu.ru/mlists/";
$fi=$filename.$j.".shtml";
$buffer = file_get_contents($fi);
//=============================================
$pattern = '#<a href="[^"]+">(.*?)</a><BR>#is';
preg_match_all($pattern, $buffer, $matches);
//================================================
for ($p=0; $p<30;$p++)
{
//=================================================
// $document на выходе должен содержать HTML-документ.
// Необходимо удалить все HTML-теги, секции javascript,
// пробельные символы. Также необходимо заменить некоторые
// HTML-сущности на их эквивалент.
$search = array ("'<script[^>]*?>.*?</script>'si", // Вырезает javaScript
"'<[\/\!]*?[^<>]*?>'si", // Вырезает HTML-теги
"'([\r\n])[\s]+'", // Вырезает пробельные символы
"'&(quot|#34);'i", // Заменяет HTML-сущности
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&#(\d+);'e"); // интерпретировать как php-код
$replace = array (" ",
"",
"\\1",
"\"",
"&",
"<",
">",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
"chr(\\1)");
$text = preg_replace($search, $replace, $matches[1][$p]);
print $text."<br>";
}
?>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: dima2207
(08.03.2007 в 03:22)
| | Ну короче , все более менее понятно , но почему когда я ставлю count($matches) то счет идет до 2 , хотя в массиве $matches[1][$p] Порядка 40 эллементов !!!!!
ну короче , подскажите как задать выражение что-бы цыкл проходил полностью от count($matches[1][0]) до count($matches[1][40])
причем кол-во элементов может быть разное !!!!!! | |
|
|
|
|
|
|
|
для: dima2207
(08.03.2007 в 03:39)
| | Короче , все бесполезно , я перепробовал все функции работы с массивами , не одна из не работает !!! люди , подскажите !!!!!! | |
|
|
|
|
|
|
|
для: dima2207
(08.03.2007 в 06:21)
| | Возможно стоит подумать о правильности рег.выражения...
Ты уверен, что оно вытаскивает ВСЕ ссылки со страницы? | |
|
|
|
|
|
|
|
для: dima2207
(08.03.2007 в 03:39)
| | $matches - двумерный массив, count определяет размер текущей размерности, т.е. если вы хотите получить 40, следует обращаться к count($matches[1])
<?php
echo count($matches[1]);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(08.03.2007 в 13:17)
| | Блин, точно! ;-)) | |
|
|
|
|
|
|
|
для: ddhvvn
(08.03.2007 в 13:33)
| | ото-ж!!! | |
|
|
|