Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: parseUrl
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
kriqs
witam

potrzebowalem czegos takiego jak jest w wordpress wiec hmmm napisalem, nie twierdze ze nie da sie tego szybciej zrobic latwiej mniej kodu moze wyrazenia reg. jak ktos wie to moze napisac a nawet powinien smile.gif.

kod funkcji ( dzieki kubie sie troszke zmniejszyl smile.gif ) :
  1. <?php
  2. function parseUrl( $sUrl , $sPatern )
  3. {
  4. preg_match_all("/%([w.]+)%/i", $sPatern , $aStale, PREG_PATTERN_ORDER);
  5. $aStale = $aStale[1];
  6.  
  7. $aPat = array( '/%([w.]+)%/' , '/(.|/)/' );
  8. $aRep = array( '([ws.]*)' , '$1' );
  9.  
  10. $sPatern = preg_replace($aPat, $aRep, $sPatern);
  11.  
  12. $sPatern = '!'.$sPatern.'([wW.]*)!i';
  13.  
  14. preg_match_all( $sPatern , $sUrl , $aVars, PREG_PATTERN_ORDER);
  15.  
  16. foreach( $aStale as $index => $name )
  17. {
  18. $aWynik2[$name] = $aVars[($index+1)][0];
  19. }
  20.  
  21. $aWynik2['Other'] = array_pop( $aVars );
  22. $aWynik2['Other'] = $aWynik2['Other'][0];
  23.  
  24. return $aWynik2 ;
  25.  
  26. }
  27. ?>


przyklad:
  1. <?php
  2. $url = 'pl/act/mod/a/tu/sa/inne/rzeczy/ktore/nic/nie/znacza/albo/cos/jak/get' ;
  3. $patern = '/%lang%/%action%/%model%/';
  4. $aWynik = parseUrl( $url , $patern );
  5. var_dump( $aWynik );
  6.  
  7.  
  8.  
  9. $url = 'pl.act.mod.a.tu.sa.inne.rzeczy.ktore.nic.nie.znacza.albo.cos.jak.get' ;
  10. $patern = '/%lang%.%action%.%model%.';
  11. $aWynik = parseUrl( $url , $patern );
  12. var_dump( $aWynik );
  13. ?>


wszelkie rady mile widziane smile.gif
NuLL
Fajne nazewnictwo polskoangielskie - mozna sie usmiechnac smile.gif A pozatym przydalaby sie nauka wyrazen regularnych smile.gif
kriqs
szczerze powiedziawszy to nie wiedzialem jak nazwac te zmienna smile.gif i tak jakos sobie pomyslalem ze to i tak jest wewnatrz funkcji to przynajmniej zrobie tak zeby bylo fajnie smile.gif. A co do wyrazeni to by sie przydaly ale jakos nie potrafie znales przykladow zebym to latwo poja sad.gif, moze wiesz skad sie mozna nauczyc questionmark.gif
siemakuba
To ja może polecę http://bedkowski.pl/a/php_regex/.

pozdr.
kriqs
dzieki bardzo za linka oczywiscie sie przydal smile.gif a jak bardzo to mozna zobaczyc w pierwszym poscie smile.gif
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.