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

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

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

 

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

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

тема: Количество элементо в двумерном массиве - count()
 
 автор: dima2207   (08.03.2007 в 03:22)   письмо автору
 
 

 не работает 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:39)   письмо автору
 
   для: 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 в 06:21)   письмо автору
 
   для: dima2207   (08.03.2007 в 03:39)
 

Короче , все бесполезно , я перепробовал все функции работы с массивами , не одна из не работает !!! люди , подскажите !!!!!!

   
 
 автор: ddhvvn   (08.03.2007 в 10:07)   письмо автору
 
   для: dima2207   (08.03.2007 в 06:21)
 

Возможно стоит подумать о правильности рег.выражения...
Ты уверен, что оно вытаскивает ВСЕ ссылки со страницы?

   
 
 автор: cheops   (08.03.2007 в 13:17)   письмо автору
 
   для: dima2207   (08.03.2007 в 03:39)
 

$matches - двумерный массив, count определяет размер текущей размерности, т.е. если вы хотите получить 40, следует обращаться к count($matches[1])
<?php
  
echo count($matches[1]);
?>

   
 
 автор: ddhvvn   (08.03.2007 в 13:33)   письмо автору
 
   для: cheops   (08.03.2007 в 13:17)
 

Блин, точно! ;-))

   
 
 автор: dima2207   (08.03.2007 в 13:42)   письмо автору
 
   для: ddhvvn   (08.03.2007 в 13:33)
 

ото-ж!!!

   
Rambler's Top100
вверх

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