Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: darkvidhack en 18 Agosto 2011, 12:39 pm



Título: Pregunta sobre código
Publicado por: darkvidhack en 18 Agosto 2011, 12:39 pm
Hola!! tengo un problemilla con este código:

Código
  1. <?
  2.  
  3. function saca (&$message,$cadena,&$caracter,&$caracter2){
  4. $cadena;
  5. $i=strpos($message,$caracter2)+3-strpos($message,$caracter);
  6. $b=strpos($message,$caracter);
  7. $a=0;
  8.    for($a;$a<=$i;$a++,$b++){
  9.    $cadena[$a]=$message[$b];
  10.    }
  11.    return $cadena;
  12. }
  13.  
  14. ?>

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
  1. echo saca($message,$cadena,$caracter,$caracter2);
  2.  

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 ;)


Título: Re: Pregunta sobre código
Publicado por: EFEX en 18 Agosto 2011, 13:58 pm
Si te imprime ARRAY, por que el valor devuelto es un array, para mostrar un array basta con:

Código
  1. print_r($array);

Explicaciòn Arrays en PHP (http://php.net/manual/es/language.types.array.php)


Título: Re: Pregunta sobre código
Publicado por: darkvidhack en 18 Agosto 2011, 14:50 pm
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


Título: Re: Pregunta sobre código
Publicado por: #!drvy en 18 Agosto 2011, 17:36 pm
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


Título: Re: Pregunta sobre código
Publicado por: darkvidhack en 19 Agosto 2011, 00:49 am
Hola! encontré algo que me sirve, pero no con este método, sino extrayendo una subcadena con la función substr()

Muchas gracias!!


Saludos ;)