Foros del Web » Programando para Internet » PHP »

Ordenar Alfabeticamente en PHP

Estas en el tema de Ordenar Alfabeticamente en PHP en el foro de PHP en Foros del Web. Tengo el Siguiente PHP @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php   header ( "Content-type: text/xml" ) ; $directorio = opendir ( "mp3/Vallenatos/" ) ; ...
  #1 (permalink)  
Antiguo 09/01/2012, 16:48
 
Fecha de Ingreso: enero-2012
Mensajes: 4
Antigüedad: 9 años, 10 meses
Puntos: 0
De acuerdo Ordenar Alfabeticamente en PHP

Tengo el Siguiente PHP

Código PHP:
Ver original
  1. <?php
  2.  
  3. header("Content-type: text/xml");
  4. $directorio = opendir("mp3/Vallenatos/");
  5.  
  6. echo '<?xml version="1.0" encoding="UTF-8"?>'. "\n";
  7. echo '<player showDisplay="yes" showPlaylist="yes" autoStart="yes">';
  8.  
  9. while($files = readdir($directorio)){
  10. $archivo = explode('.', $files);
  11. if(!empty($archivo[0]) && $archivo[1] == 'mp3'){
  12. echo "<song path='mp3/Vallenatos/$files' title='$archivo[0]'/>";
  13. }  
  14. }
  15. echo '</player>';
  16. closedir($directorio);
  17.  
  18. ?>

Que me Genera el Siguiente XML

Código XML:
Ver original
  1. <player showDisplay="yes" showPlaylist="yes" autoStart="yes">
  2. <song path="mp3/Vallenatos/Cuatro rosas.mp3" title="Cuatro rosas"/>
  3. <song path="mp3/Vallenatos/Busca un Confidente.mp3" title="Busca un Confidente"/>
  4. <song path="mp3/Vallenatos/Me vas a extranar.mp3" title="Me vas a extranar"/>
  5. <song path="mp3/Vallenatos/Tres palabras.mp3" title="Tres palabras"/>
  6. <song path="Vallenatos/Tanto amor.mp3" title="Tanto amor"/>
  7. </player>

Me genera un XML con la URL y el nombre sin el .mp3

como puedo ordenar alfabeticamente esto ?
  #2 (permalink)  
Antiguo 09/01/2012, 16:53
 
Fecha de Ingreso: noviembre-2007
Ubicación: Etzatlan, Jalisco
Mensajes: 50
Antigüedad: 14 años
Puntos: 18
Respuesta: Ordenar Alfabeticamente en PHP

Existen varios métodos de ordenamiento:

Burbuja
Burbuja Mejorada
Inserción
Shell
Ordenamiento rapido - Quick Sort
entre otros.

Tu decides cual implementar.

Última edición por anarkes; 09/01/2012 a las 16:59
  #3 (permalink)  
Antiguo 09/01/2012, 17:28
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 10 años, 4 meses
Puntos: 793
Respuesta: Ordenar Alfabeticamente en PHP

Tienes que usar las funciones para ordenar arrays, algo así:

Código PHP:
Ver original
  1. <?php
  2. header("Content-type: text/xml");
  3. $directorio = glob('mp3/Vallenatos/*.mp3');
  4. sort($directorio);
  5.  
  6. echo '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL;
  7. echo '<player showDisplay="yes" showPlaylist="yes" autoStart="yes">';
  8.  
  9. foreach ($directorio as $archivo) {
  10.     $file = explode('.', $archivo);
  11.     echo '<song path="mp3/Vallenatos/' . $archivo. '" title="' .$file[0] . '" />' . PHP_EOL;
  12. }
  13.  
  14. echo '</player>';

http://php.net/manual/es/ref.array.php

No me fijé en la sintaxis XML. Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 09/01/2012, 17:54
 
Fecha de Ingreso: enero-2012
Mensajes: 4
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Ordenar Alfabeticamente en PHP

Cita:
Iniciado por andresdzphp Ver Mensaje
Tienes que usar las funciones para ordenar arrays, algo así:

Código PHP:
Ver original
  1. <?php
  2. header("Content-type: text/xml");
  3. $directorio = glob('mp3/Vallenatos/*.mp3');
  4. sort($directorio);
  5.  
  6. echo '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL;
  7. echo '<player showDisplay="yes" showPlaylist="yes" autoStart="yes">';
  8.  
  9. foreach ($directorio as $archivo) {
  10.     $file = explode('.', $archivo);
  11.     echo '<song path="mp3/Vallenatos/' . $archivo. '" title="' .$file[0] . '" />' . PHP_EOL;
  12. }
  13.  
  14. echo '</player>';

[url]http://php.net/manual/es/ref.array.php[/url]

No me fijé en la sintaxis XML. Saludos.


Me imprime Ordenadamente !
pero en el .$file[0] . no me imrpime el Titulo sin la extension !
  #5 (permalink)  
Antiguo 09/01/2012, 17:57
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 10 años, 4 meses
Puntos: 793
Respuesta: Ordenar Alfabeticamente en PHP

Te falta reemplazar el directorio, no tuve en cuenta eso. Ya no es nada.

Cambia

Código PHP:
Ver original
  1. $file = explode('.', $archivo);

por

Código PHP:
Ver original
  1. $file = explode('.', basename($archivo));

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 09/01/2012 a las 18:04
  #6 (permalink)  
Antiguo 09/01/2012, 18:06
 
Fecha de Ingreso: enero-2012
Mensajes: 4
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Ordenar Alfabeticamente en PHP

Cita:
Iniciado por andresdzphp Ver Mensaje
Te falta reemplazar el directorio, no tuve en cuenta eso. Ya no es nada.

Saludos.


en local host me sale. pero cuando lo subo a un hostng me sale en blanco

será que se puede hace ya el $archivo que sea sin extension ?
y así hacer

Código PHP:
Ver original
  1. echo '<song path="' . $archivo . '.mp3" title="' .$archivo . '" />'
  #7 (permalink)  
Antiguo 09/01/2012, 18:09
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 10 años, 4 meses
Puntos: 793
Respuesta: Ordenar Alfabeticamente en PHP

Pruebalo asi:

Código PHP:
Ver original
  1. <?php
  2. header("Content-type: text/xml");
  3. $directorio = glob('mp3/Vallenatos/*.mp3');
  4. sort($directorio);
  5.  
  6. echo '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL;
  7. echo '<player showDisplay="yes" showPlaylist="yes" autoStart="yes">';
  8.  
  9. foreach ($directorio as $archivo) {
  10.     $file = explode('.', basename($archivo));
  11.     echo '<song path="' . $archivo. '" title="' . $file[0] . '" />' . PHP_EOL;
  12. }
  13.  
  14. echo '</player>';
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #8 (permalink)  
Antiguo 09/01/2012, 18:26
 
Fecha de Ingreso: enero-2012
Mensajes: 4
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Ordenar Alfabeticamente en PHP

Muchas Gracias andresdzphp ! ese Cod me sirvió !

Etiquetas: generador, xml
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 04:46.