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

Форум PHP

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

 

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

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

тема: Разбивка текста по тэгу </title>
 
 автор: Shorr Kan   (25.07.2005 в 18:00)   письмо автору
 
 

Строка представляет собой неизвестно что, но зато там есть много "</title>"

Я хочу по ним разбить строку на строки.


function CheckFiles2 ($file,$text){
$text=str_replace("</title>","#",$text[0]);
$text=explode("#",$text);

for($i=0;$i<count($text);$i++){
print htmlspecialchars($text[$i])."<HR>";
}


Это не работает. Выводит ВСЮ строку... единственную. Она не откспложена. count($text) после эксплода дает единичку... а должен не менее 70 дать...

Пробую дальше:



function CheckFiles2 ($file,$text){
print $file."<BR>";
$text=str_replace("</title>","#",$text[0]);

print htmlspecialchars($text)."<HR>";
}


Выводит то же, что и раньше. Хашей не появилось - </title> на месте.

Что ж такое?? Это я не... или он?

p.s. Приходящий $text в функцию - "многострочный" массив, состоящий из одной строки...


================================
Вопрос снят. Функция str_replace не сказала, что ей регистр важен...

   
 
 автор: cheops   (25.07.2005 в 22:46)   письмо автору
 
   для: Shorr Kan   (25.07.2005 в 18:00)
 

Но ведь $text - не массив, почему используется код
<?php
$text
=str_replace("</title>","#",$text[0]);
?>

count не может давать больше 1, так как этот код звучит следующим образом: "взять первый символ строки $text и произвести в нём замену". $text[0] - всегда даст первый символ строки, длина которого равна 1.

   
 
 автор: Shorr Kan   (26.07.2005 в 11:20)   письмо автору
 
   для: cheops   (25.07.2005 в 22:46)
 

Почему? Я ведь в p.s. написал, что $text - это массив.

   
 
 автор: [CHOL]Scorpion   (26.07.2005 в 12:49)   письмо автору
 
   для: Shorr Kan   (26.07.2005 в 11:20)
 

Ты хоть понял что сделал ???



$text=str_replace("</title>","#",$text[0]); 


Тем самым на первом же шаге зарубил массив.

Далее, зачем заменять один символ на другой
str_replace("</title>","#",$text[0]); 


Чтобы потом новый символ использовать в explode ???

Если я тебя правильно понял, у тебя есть массив строк который ты хочешь превратить в массив с ещё большим количеством строк.
вот так будет правильно:


function CheckFiles2 ($file,$text){ 
         for ($i=0; $i<count(text); $i++){ //обходим переданный массив
              $tmpArr[$i]=explode("</title>",$text[$i]); //разбиваем каждый элемент массива по </title> на подмассив

              for($j=0;$j<count($tmpArr[$i]);$j++){         // обходим подмассив
                  $tmpArr[$i] = htmlspecialchars($tmpArr[$i]);         //делаем преобразование
              }
              $newArr = array_merge ($newArr,$tmpArr[$i]); // собираем массив обратно
         }
         unset($text); //нефига оперативу забивать мусором

         return $newArr;         


$text = CheckFiles2 ($file,$text); // почищеный массив, пользуйтесь

   
 
 автор: Shorr Kan   (26.07.2005 в 15:21)   письмо автору
 
   для: [CHOL]Scorpion   (26.07.2005 в 12:49)
 

Угу...

   
 
 автор: [CHOL]Scorpion   (26.07.2005 в 22:28)   письмо автору
 
   для: Shorr Kan   (26.07.2005 в 15:21)
 

А где спасибо и пиво ???

   
Rambler's Top100
вверх

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