Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] problem z preg_replace
marcinek37
post
Post #1





Grupa: Zarejestrowani
Postów: 239
Pomógł: 0
Dołączył: 2.06.2011

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


Mam kod:
  1. <?
  2. $links = '
  3. <a href="link" class="prev">PREV</a>
  4. <a href="link">2</a>
  5. <a href="link">3</a>
  6. <a href="link" class="next">NEXT</a>
  7. ';
  8.  
  9. $links = preg_replace('#<a href="(.*?)"(.*?)>(.*?)</a>#si', '<li><a href="\\1"\\2>\\3</a></li>', $links);
  10. $links = preg_replace('#<li><a href="(.*?)" class="next">NEXT</a></li>#si', '<li class="next"><a href="\\1">NEXT</a></li>', $links);
  11.  
  12. echo $links;
  13. ?>


Wynik jest taki:
<li class="next"><a href="link" class="prev">PREV</a></li>
<li><a href="link">2</a></li>
<li><a href="link">3</a></li>
<li><a href="link">NEXT</a></li>

A powinien być taki:
<li><a href="link" class="prev">PREV</a></li>
<li><a href="link">2</a></li>
<li><a href="link">3</a></li>
<li class="next"><a href="link">NEXT</a></li>

Z uwagi na złożoność tego, co chcę osiągnąć dodam tylko, że koniecznie najpierw każdy link musi być otoczony <li>, a dopiero potem ten konkretny link ma mieć usuniętą klasę na rzecz <li>.
Nie mogę też zastąpić (.*?) ciągiem typu [0-9a-z]

Ten post edytował marcinek37 30.03.2013, 01:06:58
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 21.08.2025 - 19:13