login  Naam:   Wachtwoord: 
Registreer je!
 Forum

url splitsen

Offline compudoc - 05/04/2008 09:37
Avatar van compudocPHP beginner hoe kan ik een url splitsen?

dus als dit de url is: http://www.sitemasters.be/forum/nieuw/1
dan moet er gesplitst worden in 2 delen, deel 1: www.sitemasters.be en het 2e deel: /forum/nieuw/1
(http:// moet gewoon 'verdwijnen')

hoe kan ik dit doen?
ik zat zelf te denken aan reguliere expressies maar dit is niet helemaal gelukt.

Alvast bedankt.

7 antwoorden

Gesponsorde links
Offline cloudstrife - 05/04/2008 09:45
Avatar van cloudstrife PHP beginner Vrij simpel, verwijder eerst je http:// via str_replace() of zo en doe dan een explode op / zo krijg je een array met alle stukjes van je array.

Er zijn nog andere manieren ook door bv de string te splitsen op de eerste / of idd reguliere expressies gebruiken.
Offline tomie94 - 05/04/2008 09:45
Avatar van tomie94 PHP interesse door middel van een regex:
  1. preg_replace("#http://(.*?)\.(.*?){1,6}/(.*?)#", "\\2", $url);
Offline compudoc - 05/04/2008 09:54
Avatar van compudoc PHP beginner @tomie94, ik gebruik nu jou code, maar een probleem.
hoe kan ik nou het eerste gedeelte en laatste gedeelte aanroepen?
Offline tomie94 - 05/04/2008 09:57
Avatar van tomie94 PHP interesse
  1. <?php
  2. $eerste = preg_replace("#http://(.*?)\.(.*?){1,6}/(.*?)#", "\\1", $url);
  3. $tweede = preg_replace("#http://(.*?)\.(.*?){1,6}/(.*?)#", "\\2", $url);
  4. echo 'Het eerste deel is:'.$eerste.' en het 2e deel is '.$tweede;
  5. ?>
Offline compudoc - 05/04/2008 10:08
Avatar van compudoc PHP beginner oke, ik gebruik nu deze code:
  1. $url = 'http://www.sitemasters.be/forum/nieuw/1';
  2. $eerste = preg_replace("#http://(.*?)\.(.*?){1,6}/(.*?)#", "\\1", $url);
  3. $tweede = preg_replace("#http://(.*?)\.(.*?){1,6}/(.*?)#", "\\2", $url);
  4. echo 'Het eerste deel is:'.$eerste.' en het 2e deel is '.$tweede;


nou krijg ik echter de volgende output:
Citaat:
Het eerste deel is:wwwforum/nieuw/1 en het 2e deel is sitemasters.beforum/nieuw/1


ik heb de sitemasters url als voorbeeld genomen maar ook met andere werkt het niet helemaal...

ligt dit aan mij (doe ik iets fout) of moet ik waat aanpassen in de regex?
Offline Grayen - 05/04/2008 11:17
Avatar van Grayen PHP ver gevorderde Waarvoor heb je dit nodig? want als je dat wil toepassen op de URL van je eigen site, dan kan je net zo goed gebruik maken van $_SERVER['PATH_INFO']; (ligt eraan hoe je .htacces is in gesteld natuurlijk, maar meestal werkt met met PATH_INFO).

Als dat niet het geval is dan werkt dit:

  1. <?php
  2. $sUrl = 'http://www.sitemasters.be/forum/nieuw/1';
  3. preg_match("#^((?:https?\://)(?:www\.)(?:.*?)\.(?:.*?){1,6})(?:/(.*?))$#", $sUrl, $aMatches);
  4. '<pre>'.print_r($aMatches, true).'</pre>';
  5. ?>
Offline compudoc - 05/04/2008 11:23 (laatste wijziging 05/04/2008 11:24)
Avatar van compudoc PHP beginner @Grayen, Heel erg bedankt!!!
het is niet voor de url van mijn eigen site maar het werkt wel...

Edit: de rest trouwens ook heel erg bedankt voor het meedenken!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.196s