Comunidad de diseño web y desarrollo en internet online

Hola tengo problema con "/" ayuda con explode()!

Citar            
MensajeEscrito el 14 May 2009 06:03 pm
Hola bueno mirentengo un enlace que se genera automaticamwnte.

El problema es que dependiendo de como uses el sistema te genera "/" por lo que el enlace queda así:
Directorio/Imagenes//System/Win32///Files

y la idea es que quede solo así:
Directorio/Imagenes/System/Win32/Files

bueno se me ocurrió que podía hacer una función hiciera lo siguiente:



    ingresar el String.
    Contar numero de símbolos "/".
    Verificar que no estén juntos los 2 o mas símbolos "/"
    Si los símbolos "/" están juntos en dos o mas remplazarlos por un solo símbolo "/"
    devolver el String.


Bueno el problema es que no se como empezar, ya que la función se me hace mas complicada que lo normal.
Se me occurio usar esto:
$Array = explode('/', $enlaces );
$NArray = count($Array);



Código :

<?php
Function Sep ( $Enlaces ) {
$Array          = explode( '/' , $enlaces );
$NArray        = count( $Array  ); 

$ArrayTemp  = '';

for( $n=0; $n <  $NArray; $n++ ){ 
if($ArrayTemp  ==''){
$ArrayTemp  = $AddItemArray[$n];
}else{ 
$ArrayTemp   = $ArrayTemp .'/'. $Array [$n]; 
} 
return $ArrayTemp;
}

echo Sep ( 'Directorio/Imagenes//System/Win32///Files' );
?>


Como verán esta función no ayuda de mucho, por que solo logra separar las cosas, para luego unirlas nuevamente.
El problema es que no se como contar si existen uno o mas símbolos '/'.

Espero una ayuda.

Por nocrosis

65 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 14 May 2009 06:19 pm
Creo que sería un poco mas conveniente NO agregar los "/" en vez de quitar los que te sobran.

Te recomiendo usar la funcion "trim" para eliminar todas los posibles "/" que existan en los extremos de las variables que concatenas...

Algo así:

$cadena1= "/directorio/";
$cadena2= "/carpeta/";

$cadena= "/".trim($cadena1,"/").trim($cadena2,"/")."/";

Y con eso $cadena NO resultara en algo como /directorio//carpeta/ sino /directorio/carpeta/

Es eso lo que necesitas.?
Suerte.

Por mauril26

161 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 May 2009 06:44 pm
mas o menos.
Mira lo que necesito es solo que se pueda reconocer si existe dos o mas símbolos '/' juntos y si es así se remplase por uno así:

Código :

<?php
$Simbolo = 10;
if( $Simbolo > 1){
 $remplaso = str_replace( $Simbolo , '/' );
return $remplaso ;
}
?>


No se si se entiende.

Por nocrosis

65 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 14 May 2009 07:06 pm
Pues esta raro tu caso, no veo porque tener tantas diagonales, pero bueno, puedes resolverlo así:

$url = str_replace('//','/',$url);
$url = str_replace('///','/',$url);
$url = str_replace('////','/',$url);

O incluso con expresiones regulares podrías.

saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 14 May 2009 07:13 pm
ok gracias ya lo soluciones.
mira "mauril26" me dio la idea de utilizar la función TRIM().
y bueno me acorde de que existe otra que sera RTRIM() que elimina el ultimo carácter que yo exija.

Bueno gracias!!!

Por nocrosis

65 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.