| |
|
|
| | люди , подскажите в чем дело ? есть скрипт , он извлекает из текста имена файлов и ссылки к ним , так вот проблемма в том что когда я обращаюсь к массиву в самом конце скрипта , то ничего не выводится т.е когда я пишу print $text[3][222] в теле цыкла $p тогда все нормально , а вот когда в конце скрипта то ничего не выводится !!! почему , переменная вроде-бы живая , или я могу ошибатся !!!
пример :
<?
for ($j=1 ; $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";
}
//============================================================
?>
|
| |
| |
|
|
| |
|
|
| |
для: dima2207
(10.03.2007 в 00:27)
| | | // Необходимо удалить все HTML-теги, секции javascript,
Пользуйтесь strip_tags() | |
| |
|
|
| |
|
|
| |
для: Unkind
(10.03.2007 в 01:03)
| | | Да нет не с этом дело , я же описал в чем проблемма !!! | |
| |
|
|
| |
|
|
| |
для: dima2207
(10.03.2007 в 01:17)
| | | Это просто совет. Вы постоянно так пишете, не подозревая, похоже, что есть встроенная функция удаления тегов. | |
| |
|
|
| |
|
|
| |
для: Unkind
(10.03.2007 в 01:29)
| | | о каких тегах идет речь ??? | |
| |
|
|
| |
|
|
| |
для: dima2207
(10.03.2007 в 03:17)
| | | у меня с тегами пока-что нет никаких проблем ! у меня проблемма в другом , массив не хочет выводится !!! | |
| |
|
|
| |
|
|
| |
для: dima2207
(10.03.2007 в 03:21)
| | | что , неужели никто не может подсказать в чем тут дело ? | |
| |
|
|
| |
|
|
| |
для: dima2207
(10.03.2007 в 14:48)
| | | и что самое интересное ,так это то что когда вардамп ставлю в теле цыкла $p , тогда все нормально , а вот в конце скрипта , не получается.Почему? | |
| |
|
|
| |
|
|
| |
для: dima2207
(10.03.2007 в 15:16)
| | | И вот так тоже не получается :
//создаёшь новый массив и сохраняешь в нем получаемый на каждой итерации текст
$text_arr[] = "------".$j.$text[$j][$p].$p."<br>";
|
| |
| |
|
|
| |
|
|
| |
для: dima2207
(10.03.2007 в 00:27)
| | | Попробуйте инициализировать переменную $text ДО цикла. | |
| |
|
|
| |
|
|
| |
для: Киналь
(10.03.2007 в 16:04)
| | | пробовал , все бесполезно , да и к тому-же когда я ставлю в цыкле просто вывод print "-----" ; прямо перед концом скрипта ?>, то нифига не видно , как такое вообше может быть ? такое впечатление что интерпретатор ту да вообще не доходит !!! почему ??? | |
| |
|
|