elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:41  


Tema destacado: [AIO elhacker.NET] Compilación herramientas análisis y desinfección malware

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Problema al concatenar cadenas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al concatenar cadenas  (Leído 1,180 veces)
Feedeex

Desconectado Desconectado

Mensajes: 172


Ver Perfil
Problema al concatenar cadenas
« en: 13 Mayo 2011, 03:46 »

Hola a todos, voy al grano. Tenía un code que es el menú de una página web, algo así:

Código:
<li class="current_page_item"><a href="#">Inicio</a></li>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="index2.php">¿Quiénes somos?</a></li>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="index3.php">Trabajo comunitario</a></li>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="index4.php">¿Por qué reciclar?</a></li>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="index6.php">Campaña</a></li>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="index7.php">&iexcl;Comente!</a></li>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="index5.php">¡H&aacute;gase cliente!</a></li>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="#">Contacto</a></li>

Entonces, para no repetirlo en cada index y hacerlo más dinámico se me ocurrió automatizarlo de la siguiente forma:

1. Crear un archivo config.php donde indico la cantidad de secciones totales, el nombre y link de cada sección. Y además, una función que hice para obtener solo el nombre de la pag. actual:

Código:
<?php
$web_habilitada = "1";
//Secciones
$total_secciones = "7";
$seccion1 = "Inicio";
$seccion1_link = "index.php";
$seccion2 = "¿Quiénes somos?";
$seccion2_link = "index2.php";
$seccion3 = "Trabajo comunitario";
$seccion3_link = "index3.php";
$seccion4 = "¿Por qué reciclar?";
$seccion4_link = "index4.php";
$seccion5 = "Campaña";
$seccion5_link = "index5.php";
$seccion6 = "Repartos";
$seccion6_link = "index6.php";
$seccion7 = "¡Hágase cliente!";
$seccion7_link = "index7.php";
//Funciones
function pagina_actual() {
  $pagina = $_SERVER['REQUEST_URI'];
  $pagina_actual = str_replace("/", " ", $pagina);
  echo trim($pagina_actual);
  }
?>

2. En cada index, fijo un for en 1, y me fijo si es menor que la cantidad de secciones totales que indica config.php. A su vez, me fijo si la página actual es igual a la sección que voy a escribir (porque utilizo un estilo de css diferente cuando estamos en una página, es decir, en la sección aparece en verde el nombre de la página actual):

Código:
<?php
for($a = 1; $a < $total_secciones; $a++) {
    $pag = pagina_actual();
if($pag == $sección.$a) {
?>
<li class="current_page_item"><a href="<?php echo $sección.$a_link; ?>"><?php echo $sección.$a; ?></a></li>
<?php
} else {
?>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="<?php echo $sección.$a_link; ?>"><?php echo $sección.$a; ?></a></li>
<?php
}
}
?>

Entonces, la idea sería que imprima las cosas bien como lo indica el config.php. Pero me imprime:


Y si lo pienso, lo que no puede hacer es unir $sección con la variable $a del for y crear una única sección, por ejemplo seccion1. No se me ocurre como hacer... ¿Alguien me puede dar una ayuda?.

Gracias!


En línea
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: Problema al concatenar cadenas
« Respuesta #1 en: 13 Mayo 2011, 04:55 »

Es mejor una matriz, así:
Código
	$sPoC[0] = array("Inicio", "index.php");
$sPoC[1] = array("¿Quiénes somos?", "quienes_somos.php");
$sPoC[2] = array("Trabajo comunitario", "trabajo_comunitario.php");
$sPoC[3] = array("¿Por qué reciclar?", "porque_reciclar.php");
 
for( $i = 0; $i < count( $sPoC ); $i++ ){
print "Nombre:  ".$sPoC[$i][0]."\n";
print "Archivo: ".$sPoC[$i][1]."\n\n";
}

Salida:
Código
shellroot@alex:~/Escritorio$ php PoC.php
Nombre:  Inicio
Archivo: index.php
 
Nombre:  ¿Quiénes somos?
Archivo: quienes_somos.php
 
Nombre:  Trabajo comunitario
Archivo: trabajo_comunitario.php
 
Nombre:  ¿Por qué reciclar?
Archivo: porque_reciclar.php


En línea

---
Feedeex

Desconectado Desconectado

Mensajes: 172


Ver Perfil
Re: Problema al concatenar cadenas
« Respuesta #2 en: 13 Mayo 2011, 05:19 »

Muchas gracias!. Por ese lado, ya está solucionado. Ahora tengo otro problema:

• NO me funciona la parte que verifica si es la página actual, así se le indica otro estilo de css.
• Me muestra un separador antes que la primera sección.

Código:
<?php
for($a = 0; $a < count($sección); $a++) {
    $pag = pagina_actual();
if($pag == $sección[$a][1]) {
?>
<li class="current_page_item"><a href="<?php echo $sección[$a][1]; ?>"><?php echo $sección[$a][0]; ?></a></li>
<?php
} else {
?>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="<?php echo $sección[$a][1]; ?>"><?php echo $sección[$a][0]; ?></a></li>
<?php
}
}
?>

No entiendo por qué. Si $pag me devuelve correctamente "index.php", ¿cuál es el problema por el que no puedo verificar si $pag es igual a $sección[$a][1]?. Y por otro lado, no entiendo lo del separador al principio, pero debe ser por eso mismo.
En línea
bomba1990


Desconectado Desconectado

Mensajes: 383



Ver Perfil WWW
Re: Problema al concatenar cadenas
« Respuesta #3 en: 13 Mayo 2011, 06:32 »

bueno si la funcion pagina actual es la misma que tienes en el primer post, pues por suspuestoq ue no va a funcionar porque tienes que usar return no echo.
En línea

"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve
Feedeex

Desconectado Desconectado

Mensajes: 172


Ver Perfil
Re: Problema al concatenar cadenas
« Respuesta #4 en: 13 Mayo 2011, 12:49 »

Es verdad, tenía que usar un return. Disculpen mi ignorancia en algunas cosas y muchas gracias por ayudarme :D
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al comparar cadenas MD5
Desarrollo Web
{_The_Alwar_} 4 862 Último mensaje 17 Diciembre 2005, 23:48
por {_The_Alwar_}
problema al unir cadenas
Programación C/C++
_teiki 8 1,331 Último mensaje 27 Junio 2007, 21:01
por _teiki
Crear String a partir de una Lista de caracteres son concatenar(problema)
Java
er_rafael_rafi 5 3,290 Último mensaje 24 Junio 2009, 17:38
por juancho77
Problema con comparación de cadenas
Java
Debci 6 2,110 Último mensaje 25 Agosto 2009, 21:46
por juancho77
[PROBLEMA] Concatenar variables. [SOLUCIONADO]
Programación C/C++
Siquillote 8 2,259 Último mensaje 27 Diciembre 2010, 14:12
por Siquillote
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines