Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wyrazenia regularne
Marr
post
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 1
Dołączył: 19.08.2008
Skąd: Warszawa

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


Witam, mam pytanie:
jak sprytnie zamienic w danej zmiennej ciag typu [cos,cos,cos] na takie cos: http://jakisprefix/cos/cos/cos.html ? probowalem z preg_replace z tym ze nie wiem ile bedzie tych cosow w nawiasach kwadratowych:

  1. $output = preg_replace('/\[([^,]+)(,([^,]+))*\]/', 'http://costam/${1}/${2}/${3}.html', $output);


mozna jakos to fajnie rozwiazac? bede wdzieczny za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zegarek84
post
Post #2





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


przerób sobie jak to tylko chcesz -możesz wyciągnąć tak samo preg_match w nawiasie kwadratowym a potem użyć str_replace

tutaj gotowiec inaczej ;p:
  1. class parsuj{
  2. private $reg='/\[([^\]]*)\]/u';
  3. public function fixURL($input){
  4. return preg_replace_callback($this->reg, array($this,'getVariables'), $input);}
  5.  
  6. private function getVariables($input){
  7. return 'http://tamojastala/'.str_replace(',', '/', $input[1]).'.html';}
  8. }
  9.  
  10. $fix=new parsuj();
  11.  
  12. $link='<a href="[cos,cos,cos]">nazwalinku</a>';
  13. $link2='<a href="[jakies_to_jest,mrawe,nie,ruszawe,i_wogole]">nazwalinku</a>';
  14. $link=$fix->fixURL($link);
  15. $link2=$fix->fixURL($link2);
  16. echo $link.'<br />'.$link2;
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 16.10.2025 - 06:04