Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Помогите ламеру в php
цитата
04/10/13 в 12:40
 densa
есть код который формирует рсс фид, в нем кусок, который на странице перед формированием фида, ищет и удаляет не нужные элементы, например скрипты

вот код поиска и замены
$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"
);

$replace = array ("",
                  "",
                  "\\1",
                  "\"",
                  "&",
                  "<",
                  ">",
                  " ",
                  chr(161),
                  chr(162),
                  chr(163),
                  chr(169)
);

у меня на странице есть текст который обрамляется спец кодом - <mycode>мой текст который не должен появляться в фиде</mycode>

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

$search = array ("'<script[^>]*?>.*?</script>'si",  // Вырезается javascript
                 "'<[\/\!]*?[^<>]*?>'si",           // Вырезаются html-тэги
                 "'([\r\n])[\s]+'",                 // Вырезается пустое пространство
                 "'&(quot|#34);'i",                 // Замещаются html-элементы
             "'<mycode>.*?</mycode>'i",  // Вырезается mycode
                 "'&(amp|#38);'i",
                 "'&(lt|#60);'i",
                 "'&(gt|#62);'i",
                 "'&(nbsp|#160);'i",
                 "'&(iexcl|#161);'i",
                 "'&(cent|#162);'i",
                 "'&(pound|#163);'i",
                 "'&(copy|#169);'i"
);

$replace = array ("",
                  "",
                  "",
                  "\\1",
                  "\"",
                  "&",
                  "<",
                  ">",
                  " ",
                  chr(161),
                  chr(162),
                  chr(163),
                  chr(169)
);

Последний раз редактировалось: densa (04/10/13 в 12:48), всего редактировалось 1 раз
цитата
04/10/13 в 12:47
 Nux
"'<mycode>.*<\/mycode>'si"
цитата
04/10/13 в 12:52
 densa
не работает
цитата
04/10/13 в 13:01
 Nux
попробуй без экранирования
Код:
"'<mycode>.*</mycode>'si"

* не забывай что после добавления этой строки надо добавить пустую строку в нижний массив замены.
* быть оно должно до кода замены html символов

а вобще покажи весь скрипт, это у тебя не код замены только патерны
цитата
04/10/13 в 18:01
 densa
тоже не получается

вот архив с плагином
http://yadi.sk/d/XnaywuCIAPW8k
цитата
04/10/13 в 18:15
 Nux
все работает, может быть просто, что твой mycode выглядит как
Код:
&lt;mycode&gt;
цитата
04/10/13 в 18:19
 densa
сейчас в личку напишу ссылку
цитата
06/10/13 в 03:34
 densa
Nux, спасибо большое за помощь smail54.gif


Эта страница в полной версии