ugrás a tartalomhoz

Szervernév kinyerése URL-ből regexszel

eaposztrof · 2008. Feb. 22. (P), 07.17
a problema:
  1. $url="http://eaposztrof.com/drupal";  
  2. preg_replace( '/(.*:\/\/)?([^ \/]*)([^ >"]*)/''$2'$url )  
  3. // eaposztrof.com // jo!  
  4.   
  5. $url="http://eaposztrof.com/?q=drupal";  
  6. preg_replace( '/(.*:\/\/)?([^ \/]*)([^ >"]*)/''$2'$url )  
  7. // eaposztrof.com?q=drupal // rossz!  
es megoldva.
  1. $url="http://eaposztrof.com/drupal";  
  2. preg_replace( '/(.*:\/\/)?([^ \/\?]*)([^ >"]*)/''$2'$url )  
  3. // eaposztrof.com // jo!   
  4.   
  5. $url="http://eaposztrof.com/?q=drupal";  
  6. preg_replace( '/(.*:\/\/)?([^ \/\?]*)([^ >"]*)/''$2'$url )  
  7. // eaposztrof.com // jo!   
mar nem tudtam mit kezdeni vele amikor csak ugy kiprobaltam, es voala.
DE! nem ertem hogy miert kepes leforditani a "..com/drupal"-t is ha ott a "\?" kapcsolo
ez bug? vagy csak en nem ertem mi tortenik?
 
1

php?

randomly · 2008. Feb. 22. (P), 10.55
Szia!

Ha PHP akkor $_SERVER['SERVER_NAME'], nem tudom ez gyorsabb-e, de gondolom igen.

rand
2

Nálam jól működik

Török Gábor · 2008. Feb. 22. (P), 12.23
Biztos, hogy az idézett kódod futott nálad is rosszul? Nálam mind a négy példa helyes eredményt ad. Amúgy ha olyan reguláris kifejezést írsz, amiben a határolókaraktert is használod, akkor a felesleges escape-elgetések helyett egyszerűen válts egy másik határolókarakterre, pl. %-ra.
  1. %(.*://)?([^ /]*)([^ >"]*)%