Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Нахождение тега с содержимым в файле
Форумы портала PHP.SU » PHP » Регулярные выражения » Нахождение тега с содержимым в файле

Страниц (1): [1]
 

1. Evgen8 - 25 Декабря, 2012 - 19:34:59 - перейти к сообщению
Вот исходник:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $news_name = $_POST['news_name'];
  4. $news_text = $_POST['news_text'];
  5. $news_name_for_del = $_POST['news_name_for_del'];
  6. if($news_name || $news_text != NULL){
  7. $past = file_get_contents('**********');
  8. $fp = fopen('****************', 'w+');
  9. $dt=date('Y-m-d H:i');
  10. $write_to = "[title]{$news_name}[/title]
  11. [text]
  12. {$news_text}
  13. [/text]
  14. <br><font color=\"yellow\"> - Добавлено {$dt} , Evgen8.</font>
  15. <hr>
  16. {$past}";
  17. $test = fwrite($fp, $write_to);
  18. fclose($fp);} //Отсюда начинается нужная часть....
  19. elseif($news_name_for_del != NULL){
  20. $past = file_get_contents('*******************');
  21. $reg = "!\[title\]{$news_name_for_del}\[\/title\]!is";
  22. $found = preg_match_all($reg, $past ,$result);
  23. echo "{$found}<br>";
  24. echo "{$news_name_for_del}<br>";
  25. echo "{$reg}<br><br>";
  26. echo "{$past}";
  27. }
  28. else {
  29. }
  30. ?>
  31.  

Пока нужно найти строчку [title]$text[/title] . В принципе , он ее находит. Но вот если содержимое переменной $text - русское , то он ее не находит. Суть вопроса: почему?
http://mc-diamond[dot]ru/launch_serv[dot][dot][dot]dd_to_launch.php
Поле "name news fo del". Думаю говорить вам ,что внизу отображается нет смысла Подмигивание
2. Evgen8 - 26 Декабря, 2012 - 16:03:04 - перейти к сообщению
Ну хоть намекните.... Хм
3. DlTA - 26 Декабря, 2012 - 16:07:43 - перейти к сообщению
намекаю, проверьте что у вас в переменных
$news_name_for_del

и почему у вас регулярка отделяется "!", кстати а фильтр стоит на них?
4. Мелкий - 26 Декабря, 2012 - 16:08:33 - перейти к сообщению
Намекаю: phpfaq.ru/debug
5. Evgen8 - 26 Декабря, 2012 - 16:10:38 - перейти к сообщению
DlTA пишет:
намекаю, проверьте что у вас в переменных
$news_name_for_del

и почему у вас регулярка отделяется "!", кстати а фильтр стоит на них?

Если бы вы перешли по ссылке , то увидели ,что все переменные отображаются рядом с результатом. "!" - где-то вычитал на просторах инета ,что нужны некие разделители. Кстати , без него выдается ошибка выполнения скрипта. Фильтр? Без понятие - что это? зачем это? как это сделать?
(Добавление)
Мелкий пишет:
Намекаю: phpfaq.ru/debug

Ок. Нашел один баг , исправил. Но все-такие отлично не пашит.
Например если ввести поиск "тест тест" -найдет ,а просто "тест" - нет. Это "Конец тех.работ" - тоже найдет. Почему так? Это еще не понятно. Однако

-------------------------------- -------------
Понял! Иногда вместо "букв" записывается вот это....
Что это? В браузере отображает просто слово "тест".
CODE (htmlphp):
скопировать код в буфер обмена
  1. &#1090;&#1077;&#1089;&#1090;

,а в самом файле вот такой вот бред. И главное , некоторые обычными словами ,некоторые вот так. Те ,которые обычными находятся ,а такие - нет.
6. Evgen8 - 26 Декабря, 2012 - 22:55:37 - перейти к сообщению
Ну как-бы опять намекните.... Однако
7. Panoptik - 26 Декабря, 2012 - 23:07:16 - перейти к сообщению
юникодовый модификатор не помешал бы "u"
PHP:
скопировать код в буфер обмена
  1. $reg = "!\[title\]{$news_name_for_del}\[\/title\]!isu";
8. LIME - 26 Декабря, 2012 - 23:47:36 - перейти к сообщению
намекаю

http://php.net/manual/ru/functio...ntity-decode.php
9. Evgen8 - 27 Декабря, 2012 - 19:50:10 - перейти к сообщению
Проблема решилась. Появилась другая. Скрипт иногда не находит строку с первого раза. С чем это может быть связано?
10. Evgen8 - 28 Декабря, 2012 - 22:48:59 - перейти к сообщению
Намекните как-бы опять....

 

Powered by ExBB FM 1.0 RC1