Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenia Regularne
Forum PHP.pl > Forum > PHP
Riklaunim
mam skrypcik przepisujący linki php na HTML wg. podanych reguł (mod_rewrite wykorzystany) wszystko działa..ło smile.gif bo autor cms zmienił linki z href="link" na href='link' dając pojedyncze cudzysłowy... To jest odpowiedzialne za łapanie linków
Kod
return preg_replace_callback('/(href|src|action)\s*=\s*"[^"]+"/', 'rewrite_url_filter', $string);

Jak dodać mu łapanie linków z pojedynczymi ' ' ?

Cały rewriter:
  1. <?php
  2.  
  3. function rewrite_url_filter($data) {
  4.  $link = $data[0];
  5.  $link = ereg_replace('\"$', '', $link);
  6.  $link = explode('=\"', $link);
  7.  $_link = $link[0];
  8.  $link = $link[1];
  9.  
  10.  
  11.  $link = preg_replace('#downloads.php?cat_id=([0-9]*)&download_id=([0-9]*)#si', 'download1-2.html', $link);
  12. $link = preg_replace('#viewforum.php??forum_id=([0-9]*)&forum_cat=([0-9]*)#si', 'forum1-2.html', $link);
  13. $link = preg_replace('#viewthread.php?forum_id=([0-9]*)&forum_cat=([0-9]*)&thread_id=([0-9]*)#si', 'post1-2-3.html', $link);
  14. $link = preg_replace('#weblinks.php?cat_id=([0-9]*)&weblink_id=([0-9]*)#si', 'link1-2.html', $link);
  15.  
  16.  $link = preg_replace('#index.php?logout=yes#si', 'logout.html', $link);
  17.  $link = preg_replace('#articles.php?cat_id=([0-9]*)#si', 'articlescat1.html', $link);
  18.  $link = preg_replace('#readarticle.php?article_id=([0-9]*)#si', 'article1.html', $link);
  19.  $link = preg_replace('#downloads.php?cat_id=([0-9]*)#si', 'downloadcat1.html', $link);
  20.  $link = preg_replace('#weblinks.php?cat_id=([0-9]*)#si', 'links1.html', $link);
  21.  $link = preg_replace('#profile.php?lookup=([0-9]*)#si', 'user1.html', $link);
  22.  
  23.  #Prosta zamiana
  24.  $link = preg_replace('#(index|articles|downloads|guestbook|contact|weblinks|submit_link|submit_news
    |
  25. ubmit_article|editprofile|messages|members).php$#si', '1.html', $link);
  26.  
  27.  $link = $_link.'=\"'.$link.'\"';
  28.  return $link;
  29. }
  30.  
  31. function rewrite_ob_filter($string) {
  32.  return preg_replace_callback('/(href|src|action)s*=s*\"[^\"]+\"/', 'rewrite_url_filter', $string);
  33. }
  34.  
  35. ob_start('rewrite_ob_filter');
  36. ?>
FiDO
Kod
/(href|src|action)\s*=\s*(\'|")[^\2]+\2/U

Zlapie to zarowno linki zamkniete w apostrofach jak i cudzyslowach.

Sama funkcja callback wywolywana przy zamienianiu tez bedzie wymagala kosmetycznej zmiany.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.