Pregunta sobre código

Iniciado por darkvidhack, 18 Agosto 2011, 12:39 PM

0 Miembros y 1 Visitante están viendo este tema.

darkvidhack

Hola!! tengo un problemilla con este código:

Código (php) [Seleccionar]
<?

function saca (&$message,$cadena,&$caracter,&$caracter2){
$cadena;
$i=strpos($message,$caracter2)+3-strpos($message,$caracter);
$b=strpos($message,$caracter);
$a=0;
    for($a;$a<=$i;$a++,$b++){
    $cadena[$a]=$message[$b];
    }
    return $cadena;
}

?>


Explico un poco:
$message  -->  Cadena formada por el cuerpo de un mail
$caracter  -->  Cadena "http://"
$caracter2   -->  Cadena ".com"

$i= numero de caracteres que hay entre 'h' de http y 'm' de .com
$b=posicion de la cadena $message donde empieza la subcadena 'http://......com"

strpos() devuelve un entero con la posición de una subcadena dentro de otra cadena, en el primer caso, la posición de la subcadena $caracter2 en la cadena $message.

La cuestión es que al hacer:

Código (php) [Seleccionar]

echo saca($message,$cadena,$caracter,$caracter2);


me muestra ARRAY , sin embargo, haciendo un bucle que recorra todo el string y me muestre caracter por caracter me lo hace bien, no se porqué así no me la muestra, quizás me estoy pasando algo xD.

Podrían ayudarme?

Muchas gracias de antemano ;)
live and let die

la duda es la base de todo conocimiento

EFEX

Si te imprime ARRAY, por que el valor devuelto es un array, para mostrar un array basta con:

Código (php) [Seleccionar]
print_r($array);

Explicaciòn Arrays en PHP
GITHUB 

darkvidhack

Pues sigue sin funcionar xD, es más, para imprimir una cadena, creo que es igual de válido el 'print' que el 'echo', si no me equivoco xD, lo extraño es que imprimer lo mismo que si se pusiera:

$cadena=Array();
echo $cadena;

No tengo la menor idea de qué puede ser :S
live and let die

la duda es la base de todo conocimiento

#!drvy

Pues si te he entendido bien, no me lo explico xD


Haces un for, en ese for agregas a $cadena(al que automaticamente conviertes en array al introducir [$a]) el mensaje y luego lo retornas.

No veo el problema. Te deberia de sacar Array sin mas. Estas haciendo un array y lo retornas como tal ¬¬.

Si quieres que te devuelva una cadena usa implode antes del retorno.


Saludos

darkvidhack

Hola! encontré algo que me sirve, pero no con este método, sino extrayendo una subcadena con la función substr()

Muchas gracias!!


Saludos ;)
live and let die

la duda es la base de todo conocimiento