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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Функция с preg_match()

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Проблема с составлением функции.
XelaNimed
Отправлено: 13 Января, 2010 - 16:30:02
Post Id


Частый гость


Покинул форум
Сообщений всего: 136
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




Всем доброго и продуктивного времени суток.
Имеется HTML-страница:
CODE (html):
скопировать код в буфер обмена
  1. ...
  2. <td style="width:25%;"><small>(… Wo.)</small></td>
  3. <td style="width:15%;"></td>
  4. </tr>
  5. <tr style="background-color:#F3F3F3;">
  6. <td style="width:5%; background-color:white;"> </td>
  7. <td style="width:10%; font-size:95%;">S</td>
  8. <td style="width:15%; font-size:95%; font-weight: bold; text-align:center;">2</td>
  9. <td style="width:30%;"><small>xx.xx.xxxx</small></td>
  10. <td style="width:25%;"><small>(… Wo.)</small></td>
  11. <td style="width:15%;"></td>
  12. </tr>
  13. </table>
  14. </div>
  15. <p><span style="display:none"><sup id="cite_ref-DeSingles_0-32" class="reference"><a href="#cite_note-DeSingles-0">[1]</a></sup></span></p>
  16. <p><b>Roxette</b> ist ein von <a href="/wiki/Per_Gessle" title="Per Gessle">Per Gessle</a> und <a href="/wiki/Marie_Fredriksson" title="Marie Fredriksson">Marie Fredriksson</a> gegrьndetes englischsprachiges <a href="/wiki/Popmusik" title="Popmusik">Pop</a>-Duo aus <a href="/wiki/Schweden" title="Schweden">Schweden</a>. Der Name „Roxette“ spielt auf eine Single von „<a href="/wiki/Dr._Feelgood" title="Dr. Feelgood">Dr. Feelgood</a>“ an.</p>
  17. <table id="toc" class="toc">
  18. <tr>
  19. <td>
  20. <div id="toctitle">
  21. <h2>Inhaltsverzeichnis</h2>
  22. </div>
  23. <ul>
  24. <li class="toclevel-1 tocsection-1"><a href="#Karriere_als_Roxette"><span class="tocnumber">1</span> <span class="toctext">Karriere als Roxette</span></a>
  25. <ul>
  26. <li class="toclevel-2 tocsection-2"><a href="#Zeit_vor_Roxette"><span class="tocnumber">1.1</span> <span class="toctext">Zeit vor Roxette</span></a></li>
  27. <li class="toclevel-2 tocsection-3"><a href="#Durchbruch"><span class="tocnumber">1.2</span> <span class="toctext">Durchbruch</span></a></li>
  28. <li class="toc  ...


Имеется массив с регулярными выражениями:

CODE (text):
скопировать код в буфер обмена
  1. $wg['headline']['preg_match']['mt'] = '/(<table class="prettytable float-right infobox"(?:.*?)<\/table>)/s';
  2. $wg['headline']['preg_match']['sb'] = '/<div class="sideBox"[^>]*>(.*?)<\/div>/is';
  3. $wg['headline']['preg_match']['pg'] = '/^[\s]*<p>([^<]*<b>(?:.*?))<\/p>[\s]*/im';
  4.  

имеется функция, которая должна выдёргивать первый абзатц из кода:
PHP:
скопировать код в буфер обмена
  1. function headline($value,$target){
  2.  
  3.                         $preg_match = $wg['headline']['preg_match'][$target];
  4.                
  5.         if(preg_match($preg_match,$value,$res_array)){
  6.                 $result = $res_array[1];
  7.         }
  8.         else{
  9.                 $result = false;
  10.         }
  11.         return $result;
  12. }

но при обращении к ней она не срабатывает:
PHP:
скопировать код в буфер обмена
  1. $paragraph = headline($current_wiki,'pg');

ничего не срабатывает, хотя если прописать в функции руками регулярное выражение, то всё работает. Мне кажется, что проблема имменно в том, что выражения берутся из массива, но более конкретно понять не могу. Подскажите, пожалуйста, в каком направлении копать.
Заранее признателен всем откликнувшимся.

(Отредактировано автором: 13 Января, 2010 - 16:33:10)

 
 Top
EuGen Администратор
Отправлено: 13 Января, 2010 - 16:38:56
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Добавьте первой строчкой внутри функции это:
global $wg;


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
XelaNimed
Отправлено: 13 Января, 2010 - 16:52:14
Post Id


Частый гость


Покинул форум
Сообщений всего: 136
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




Огромное спасибо EuGen! Моё невежество ещё раз доказывает, что с самыми основами у меня туго. Учиться, учиться и ещё раз учиться. Спасибо Вам большое!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB