Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrażenia Regularne, rewrite linków
Riklaunim
post 28.08.2004, 11:21:30
Post #1





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
Biblioteki: Skrypty, CMS | Kurs PHP | Python
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
FiDO
post 28.08.2004, 21:25:17
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


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.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 20:09