Foros del Web » Programando para Internet » PHP »

[-> Orden alfabetico con php

Estas en el tema de [-> Orden alfabetico con php en el foro de PHP en Foros del Web. Hola amigos de Foros del web , espero que me ayuden on este gravisimo problema. pues tengo un archivo en .PHP ue recoge variables de ...
  #1 (permalink)  
Antiguo 26/05/2006, 17:29
 
Fecha de Ingreso: mayo-2006
Ubicación: lima - peru
Mensajes: 287
Antigüedad: 11 años, 6 meses
Puntos: 4
Sonrisa [-> Orden alfabetico con php

Hola amigos de Foros del web , espero que me ayuden on este gravisimo problema.

pues tengo un archivo en .PHP ue recoge variables de un archivo en texto (BASE.TXT) y los imprime en modo de javascript osea con la variable DOCUMENT WHITE .
Pues mi problema es el siguiente :
quisiera saber como hago para que la impresion se haga en orden alfabetico pues solamente lo hace en el orden en el que figura en el archivo BASE.TXT
Aqui les dejo el codigo php de el archivo del que les hablo:

Código PHP:
<?php

include($path."cfg.php");

$VARS["TDIR"] = $path."./template";

function 
fparse($file, &$tpl) {
  global 
$VARS;

  
$fh = @fopen($VARS[TDIR]."/".$file"r");
  while([email protected]
feof($fh))
    
$line .= @fgets($fh4096);  
  @
fclose($fh);
  
  
// Replace all known template values
  
while(list($key$val) = each($tpl)) {
    
$val  stripslashes($val);
    
$line str_replace("#%".$key."%#"$val$line);
   }
  
// Delete any leftover template values
  
$line ereg_replace"#%([^%]+)%#"""$line );

  
reset($tpl);
  return 
$line;
 }

if(isset(
$HTTP_GET_VARS["sort"])) $sort $HTTP_GET_VARS["sort"];
if(isset(
$HTTP_GET_VARS["num"]))  $num  $HTTP_GET_VARS["num"];
if(isset(
$HTTP_GET_VARS["type"])) $type $HTTP_GET_VARS["type"];
if(isset(
$HTTP_GET_VARS["gr"]))   $gr   $HTTP_GET_VARS["gr"];
if(isset(
$HTTP_GET_VARS["js"]))   $js   $HTTP_GET_VARS["js"];

if(!isset(
$num)) $num 10;
if(!isset(
$sort) || ($sort != "dec" && $sort != "inc")) $sort "dec";
if(!isset(
$type) || ($type != "total" && $sort != "today")) $type "total";
if(!isset(
$gr)) $gr = -1;

unset(
$counter);
unset(
$rows);

$base = @file($path.$datafile); $cnt=sizeof($base);

$row 0;
$counter = array();

for(
$i=1;$i<$cnt;$i++) {
  list(
$agr,$id,$count,$url,$name)=explode("|"$base[$i]);
  if(
$agr == $gr || $gr == -1)
   {
    
$counter[$base[$i]] = $count;
    
$row++;
   }
 }

if (
$sort == "inc"asort($counter);
else 
arsort($counter);

reset($counter);
$tpl = array();
$tpl2 = array();
if(
$row $num$row $num;
for(
$i=0;$i<$row;$i++) {
  
$key key($counter);
  list(
$tpl["GR"],$tpl["ID"],$tpl["COUNT"],$tpl["URL"],$tpl["NAME"])=explode("|"$key);
  
$tpl2["ROWS"] .= fparse("top_row.html"$tpl);
  
$tpl = array();
  
next($counter);
 }

$output fparse("top.html"$tpl2);
if(
$js) {
  
$output str_replace("\r"""$output);
  
$output str_replace("\\""\\\\"$output);
  
$output str_replace("\n""\\\n"$output);
  
$output str_replace("'""\\'"$output);
  
$output "document.write('".$output."');";
 }
echo 
$output;

?>
espero que no sea de mucha molestia pero estare muy agradecido .
  #2 (permalink)  
Antiguo 27/05/2006, 15:16
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 12 años, 5 meses
Puntos: 2
Hola, antes que nada yo creo que hubiese sido mejor que dejaras una muestra de tal archivo para poder analizarlo e indicarte como proceder para que tu mismo arregles tu problema... dando el código (en este caso en particular) es totalmente innecesario ya que tendría que perder mucho tiempo para poder entender en que formato llegan los datos.

Lo mejor aquí es dejar una pequea "muestra" así ayudamos, de todas formas tratare de adelantarme y decirte que si cada dato que traes esta en una linea diferente la función file() traería los datos y los podria en un array con lo cual solo bastaría apricarle un sort() (asor, ksort o compania) y se acomodaria el array en orden alfabetico.
Si los datos estubieran delimitados con algun caracter (un guion, una coma o derivados) lo que te serviría es la función explode() para separar los datos y tratarlo dentro de un array (y aplicarle alguna función que te dije antes). Tal vez también tengas que hacer una convinación entre fila() y explode() o alguna cosa rara, pero eso depende de como esten guardados los datos.

Saludos y espero que te sirva de algo lo que dije.
  #3 (permalink)  
Antiguo 28/05/2006, 14:59
 
Fecha de Ingreso: mayo-2006
Ubicación: lima - peru
Mensajes: 287
Antigüedad: 11 años, 6 meses
Puntos: 4
Gracias por responder pero todavia tengo dudas

Hola mis estimados amigos de FOROSDEL WEB , bueno he leido previamente la respuesta que has dado a mi proble y todavia siguo sin entender mucho acerca de domo puedo darle un arreglo para que la impresion de mi archivo se haga en orden ALFABETICO , por tal motivo he pensado mejor enviarles el ARCHIVO que contiene todos los archivos php que hacen que este funcione y asi de una mejor manera haber si me pueden ayudar.

el archivo sera enviado ha
Código:
DarioDario.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:59.