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

Форум PHP

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

 

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

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

тема: Не выводятся элементы массива
 
 автор: dima2207   (10.03.2007 в 00:27)   письмо автору
 
 

люди , подскажите в чем дело ? есть скрипт , он извлекает из текста имена файлов и ссылки к ним , так вот проблемма в том что когда я обращаюсь к массиву в самом конце скрипта , то ничего не выводится т.е когда я пишу print $text[3][222] в теле цыкла $p тогда все нормально , а вот когда в конце скрипта то ничего не выводится !!! почему , переменная вроде-бы живая , или я могу ошибатся !!!
пример :

<?
for ($j=$j 23 $j++)
{
 
$filename "http://mu.ru/mp3_lists/";
 
$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<count($matches[1]);$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[$j][$p] = preg_replace($search$replace$matches[1][$p]);
//print "------".$j.$text[$j][$p].$p."<br>";  //если раскоментить эту строку , тогда все работает 
     
}                                                               //но мне надо обратится к массиву в конце скрипта  
     
}                                                                //Подскажите как это сделать ???

$LinkRegEx "#<a[^>]*href=['\"]?([^\"'\s>]+)['\"]?[^>]*>#is";
    
preg_match_all($LinkRegEx$buffer$matches1);
    
$size sizeof($matches1[1]);
    if( empty(
$size) )
        return 
false;
    for(
$i 0$i $size$i++)
    {
print 
$matches1[1][$i]."<br>";
     }
//===========================================================
$co=1;                                                                      // Вот этот блок не работает 
   
for($z 0$z count($text[$co]); $z++)
     {
 
$var$text[$co][$z].";".$matches1[1][$z]."\r\n";
         }
//============================================================

?>



   
 
 автор: Unkind   (10.03.2007 в 01:03)   письмо автору
 
   для: dima2207   (10.03.2007 в 00:27)
 

// Необходимо удалить все HTML-теги, секции javascript,
Пользуйтесь strip_tags()

   
 
 автор: dima2207   (10.03.2007 в 01:17)   письмо автору
 
   для: Unkind   (10.03.2007 в 01:03)
 

Да нет не с этом дело , я же описал в чем проблемма !!!

   
 
 автор: Unkind   (10.03.2007 в 01:29)   письмо автору
 
   для: dima2207   (10.03.2007 в 01:17)
 

Это просто совет. Вы постоянно так пишете, не подозревая, похоже, что есть встроенная функция удаления тегов.

   
 
 автор: dima2207   (10.03.2007 в 03:17)   письмо автору
 
   для: Unkind   (10.03.2007 в 01:29)
 

о каких тегах идет речь ???

   
 
 автор: dima2207   (10.03.2007 в 03:21)   письмо автору
 
   для: dima2207   (10.03.2007 в 03:17)
 

у меня с тегами пока-что нет никаких проблем ! у меня проблемма в другом , массив не хочет выводится !!!

   
 
 автор: dima2207   (10.03.2007 в 14:48)   письмо автору
 
   для: dima2207   (10.03.2007 в 03:21)
 

что , неужели никто не может подсказать в чем тут дело ?

   
 
 автор: dima2207   (10.03.2007 в 15:16)   письмо автору
 
   для: dima2207   (10.03.2007 в 14:48)
 

и что самое интересное ,так это то что когда вардамп ставлю в теле цыкла $p , тогда все нормально , а вот в конце скрипта , не получается.Почему?

   
 
 автор: dima2207   (10.03.2007 в 15:19)   письмо автору
 
   для: dima2207   (10.03.2007 в 15:16)
 

И вот так тоже не получается :

//создаёшь новый массив и сохраняешь в нем получаемый на каждой итерации текст
$text_arr[] =  "------".$j.$text[$j][$p].$p."<br>";  

   
 
 автор: Киналь   (10.03.2007 в 16:04)   письмо автору
 
   для: dima2207   (10.03.2007 в 00:27)
 

Попробуйте инициализировать переменную $text ДО цикла.

   
 
 автор: dima2207   (10.03.2007 в 16:19)   письмо автору
 
   для: Киналь   (10.03.2007 в 16:04)
 

пробовал , все бесполезно , да и к тому-же когда я ставлю в цыкле просто вывод print "-----" ; прямо перед концом скрипта ?>, то нифига не видно , как такое вообше может быть ? такое впечатление что интерпретатор ту да вообще не доходит !!! почему ???

   
Rambler's Top100
вверх

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