Phpbb3 y un array incomprensible

Necesito hacer un registro estadístico de las páginas que más usan los usuarios para enlazar fotos. Esto aplicado en un foro Phpbb3
La idea es esta: tener una base de datos de sitios
www.sitio1.com
www.sitioxy.net
www.otrositio.com
www.massitios.com
etc...
Lo primero que se me ocurrió fue en el archivo includes/bbcode.php hacer esto:
$MiArreglo = array('$1');
$ElURL = $MiArreglo['$1'];
 
// Hasta aquí ya tengo todo el URL www.sitio.com/blabla/blabla/foto.jpg
Pero cuando quiero extraer "con cualquier" función solo www.sitio.com
No sé porque, pero no puedo deshacer esa cadena, sin importar que tipo de función use.
Hice esto también:
foreach($MiArreglo as $val){
	$ElURL = $val;
	}
 
Pero ni aún así pude obtener la cadena, parece que es un tipo de variable alienígena (me refiero al arreglo con el parámetro $1)
Use la función strlen para saber cuantos caracteres (longitud) tiene y el resultado fue: 1
$LongitudDelURL = strlen($ElURL);// longitud=1 Valor=www.sitio.com/blabla/foto.jpg
 
use la función explode, force la varible a ser cadena con (string) $ElURL, etc, etc, etc, y nada
Si imprimo la variable $ElURL dice: www.sito.com/blabla/imagen.jpg
Yo sólo quiero www.sitio.com en una variable para luego enviarla a una tabla.
¿Alguien en este planeta sabe como puedo obtenerlo?
Nota: A como dije, todo esto lo intenté en la linea 420 (aprox) de bbcode.php para extrer el url de la imagen que se va a publicar (postear).

1 respuesta

Respuesta
1
No dispongo del phpbb3, i por tanto no tengo acceso ahora mismo al fichero bbcode.php del que hablas. Pero te diré que el arreglo que haces es más bien extraño:
Para empezar creas un array llamado $MiArreglo que siempre va a tener un sólo elemento, puesto que lo creas siempre con el valor del parámetro $1. Si lo que quieres es ir añadiendo url a la matriz, creo que deberías hacer algo como lo siguiente:
$MiArreglo[] = "$1";
Para encontrar el dominio de la cadena, puedes usar:
$url = split("/", $EIURL);
echo $url[0];
El foreach que propones tampoco sirve: lo único que hace es asignar el último valor de la matriz $MiArreglo a la variable $EIURL.
Hola amigo,
Este es el código original del array de Phpbb3 es este
$bbcode_hardtpl = array(
 'b_open' => '<span style="font-weight: bold">',
'b_close' => '</span>',
'i_open' => '<span style="font-style: italic">',
'i_close' => '</span>',
'u_open' => '<span style="text-decoration: underline">',
'u_close' => '</span>',
'img' => '<img src="$1" alt="' . $user->lang['IMAGE'] . '" />',
'size' => '<span style="font-size: $1%; line-height: normal">$2</span>',
'color' => '<span style="color: $1">$2</span>',
'email' => '<a href="mailto:$1">$2</a>'
);
Antes de ese código yo cree un array
$Dato = $MiArreglo['$1'];
foreach($Dato as $val){
$URL= $val;
}
Si yo imprimo echo $URL me aparece http://www.sitio.com/blabla/foto.jpg
Pero NO SE porqué, pero no puedo manipularla como una cadena de caracteres.
Si aplico la strlen() a $URL me dice que tiene la longitud de 1
No importa que función le aplique, siempre me dice que es 1
¿Será algún tipo de arreglo especial?
Yo lo único que quiero es almacenar la parte de www.sitio.com, pero no puedo cortar ni substraer nada de esa cadena (si es que se le puede llamar cadena)
Por otro lado, me parece extraño una "variable" que comienza con número ($1), tengo entendido que tiene que empezar con una carácter.
¿Me puedes ayudar con esto tan incomprensible?
(Nota: Si notas algo mal en el código primero del arreglo, es porque este edito de todoexpertos.com no tiene ningún tipo de y ya he pegado dos veces el código y me aparece distorsionado.
Te sugiero que pruebes con:
$URL = "$1";
Sin usar $Datos ni $MiArreglo, que no entiendo para qué lo usas.
A ver si así funciona.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas