Expressions regulieres

Expressions regulieres - PHP - Programmation

Marsh Posté le 10-04-2003 à 02:02:05    

Salut à tous,
 
Je cherche à nettoyer une URL.
Je m'explike


http://forum.hardware.fr/message.php3?cat=10 => message.php3

 
juske là pas de pb spa dur.
 
La ou ca ce corse, c'est kan y'a un repertoire.


http://forum.hardware.fr/repertoire/message.php3?cat=10 => repertoire/message.php3

 
arf :/
La je commence à galerer.
Pour l'instant je fais ca.

Code :
  1. if ( isset( $_POST['submit'] ) && !empty( $_POST['url'] ) )
  2. {
  3.     $url = trim( strtolower( $_POST['url'] ) ) ;
  4.    
  5.    
  6.     $url = eregi_replace("^(.)*(.(fr|org|com|net)/)", "", $url);
  7.     echo '1 : ' . $url . '<br/>' ;
  8.     $url = eregi_replace("[?](.)*$", "", $url);
  9.     echo '2 : ' . $url . '<br/>' ;
  10. }

 
 
Comme vous pouvez le voir c'est un peu relou de se tapper toute les extensions :/
 
Donc ma question :
 
Comment faire pour nettoyer jusk'au premier "/" et garder ce k'il y'a derriere ?
 
 :jap:


---------------
:D
Reply

Marsh Posté le 10-04-2003 à 02:02:05   

Reply

Marsh Posté le 10-04-2003 à 15:31:20    

Je me demande si ça n'irait pas plus vite avec un substring ;)
 
:)

Reply

Marsh Posté le 10-04-2003 à 16:06:47    

qwix a écrit :

Je me demande si ça n'irait pas plus vite avec un substring ;)
 
:)


ou pathinfo  :whistle:  
 
 

Citation :

pathinfo
(PHP 4 >= 4.0.3)
 
pathinfo -- Retourne des informations sur un chemin système
Description
array pathinfo ( string path)
 
 
pathinfo() retourne un tableau associatif, contenant les informations sur le chemin path. Les éléments suivants sont retournés : dirname, basename et extension.  
 
Exemple 1. Exemple avec pathinfo()
 
<?php
  $path_parts = pathinfo("/www/htdocs/index.html" );
  echo $path_parts["dirname"] . "\n";
  echo $path_parts["basename"] . "\n";
  echo $path_parts["extension"] . "\n";
?>
 
 
 
 
Va afficher :  
 
 
/www/htdocs
index.html
html


 


---------------
Suri.morkitu.org : Balades au coeur de la ville...
Reply

Marsh Posté le 10-04-2003 à 16:08:33    

ha ben oui c'est vrai je l'avait oublié celui là  :sleep:  
 
:)

Reply

Marsh Posté le 11-04-2003 à 21:15:21    

:jap:  
 
Mais avec des expressions regulieres vous auriez pas une idée ?

Reply

Marsh Posté le 12-04-2003 à 01:39:52    

un truc du style
 

Code :
  1. $url = trim($url);
  2. $url = eregi_replace("^(http|ftp)(://)([a-z._-]+)(/)", "", $url);


 
et eregi_replace est case independant si je me plante pas


Message édité par VisualC++ le 12-04-2003 à 01:48:21
Reply

Marsh Posté le 12-04-2003 à 02:36:50    

Suri a écrit :


ou pathinfo  :whistle:  
 


ou basename (à vérifier)


---------------
...oups kernel error...
Reply

Marsh Posté le 12-04-2003 à 13:02:03    

Merci à tous  :jap:

Reply

Marsh Posté le 12-04-2003 à 14:58:01    

Reply

Marsh Posté le 12-04-2003 à 19:50:55    


 
non pathinfo c mieux.. :na:
ds parse url t'es obligé de viré le slash devant le nom du fichier :d


---------------
Suri.morkitu.org : Balades au coeur de la ville...
Reply

Marsh Posté le 12-04-2003 à 19:50:55   

Reply

Marsh Posté le 12-04-2003 à 19:59:15    

Suri a écrit :


 
non pathinfo c mieux.. :na:
ds parse url t'es obligé de viré le slash devant le nom du fichier :d
 


 
Merci encore une fois :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed