Dic. 18
Hace unos post publique post de como organizar y visualizar los vídeos FLV almacenados en nuestro server; en esta ocasión veremos como organizar mp3.
Básicamente el código es el mismo, pero con unas modificaciones.
$contenido = '<?xml version="1.0" encoding="utf-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
<trackList>';
while($file=readdir($dp))
{
$extension=getExtension($file);
if($extension=="mp3")
{
$filenames[]=$file;
}
}
sort($filenames);
for($i=0;$i<count($filenames);$i++)
{
$ruta=$referer."/".$filenames[$i];
$rolaname=substr($filenames[$i],0,-4);
$se=sepcade($rolaname);
$contenido.='
<track>
<title>'.$se.'</title>
<creator></creator>
<location>'.$ruta.'</location>
</track>';
}
Otro cambio que hice fue en la parte en que se escribe el archivo el XML, ya que aun cambiando los permisos del archivo (mod 777) no se escribía el valor de contenido en el archivo, pero con el sig. código se soluciono.
if (is_writable($archivo))
{
// En nuestro ejemplo estamos abriendo $nombre_archivo en modo de adición.
// El apuntador de archivo se encuentra al final del archivo, asi que
// alli es donde ira $contenido cuando llamemos fwrite().
if (!$gestor = fopen($archivo, 'wb'))
{
echo "No se puede abrir el archivo ($archivo)";
exit;
}
// Escribir $contenido a nuestro arcivo abierto.
if (fwrite($gestor, $contenido) === FALSE)
{
echo "No se puede escribir al archivo ($archivo)";
exit;
}
fclose($gestor);
}
El resultado lo puedes ver en esta página y el código completo aquí
Sep. 06
Si tu eres desarrollador de aplicaciones en php y se te complica hacer la sección de identificación y logeo, phpsp es tu solución
Phpsp es una serie de scripts escritas en php que de manera fácil y sencilla crean un sistema de logeo e identificación para una aplicación php. Características
- Seguridad fácil para las páginas
- Crear diferentes grupos de usuarios cada con sus propios permisos
- Puede usarse con o sin base de datos
- Manejo de sesiones
- Soporte multilenguaje
- Interfaz personalizable
- Trabaja con php3, php4, php5
· Instalación
- 1. Descomprimir phpSecurePages en la aplicación o en servidor
- 2. Configurar el archivo secure.php
Ejecutar el sig. script si vas a usar BD
CREATE TABLE phpSP_users (
primary_key MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
user VARCHAR(50) NOT NULL,
password VARCHAR(32) NOT NULL,
userlevel TINYINT(3),
PRIMARY KEY (primary_key),
KEY (user)
);
· Configuración
Editar el archivo secure.php y modificar los siguientes parámetros
- $cfgIndexpag: página inicial del sitio
- $languageFile: lenguaje de phpsp
- $useDatabase: en true, para usar BD
Más info de la configuración aqui
· Uso
Poner el siguiente código al inicio de tus páginas
<?PHP
$cfgProgDir = 'phpSecurePages/';
include($cfgProgDir . "secure.php");
?>
Ejemplo de phpsp
Ago. 19
Cuando escribo post muy largos en mi blog, no me gusta que estos ocupen una gran parte del blog; así que decidí investigar la manera de ocultar o mostrar parte del contenido.
Para word press hay muchos plugins que hacen esto, pero al probarlos no me gustaron ya que muchos de ellos recargan la pagina para mostrar el contenido restante de un post. Así que mejor decidí implementar algo por mi cuenta.
1. Empecemos por el css incluyendo el siguiente código.
.show
{
position:relative;
display:none;
}
.hide
{
position:relative;
display:block;
}
2. Con javascript usaremos el siguiente script y el código.
function oculta3(id)
{
var elemento = document.getElementById(id);
var state1="status1-"+id;
var state2="status2-"+id;
if (elemento.className == "show")
{
elemento.className = "hide";
xDisplay(state1,'none')
xDisplay(state2,'block')
}
else
{
elemento.className = "show";
xDisplay(state1,'block')
xDisplay(state2,'none')
}
}
3. En el html lo siguiente
<div id="status1-nombre">
<a href="javascript:oculta3('nombre');">mostrar</a>
</div>
<div id="status2-nombre" class="show" >
<a href="javascript:oculta3('nombre');">ocultar</a>
</div>
<div id="nombre" class="show">Contenido oculto</div>
El primer div indica el mensaje que se mostrara cuando el contenido este oculto, el segundo div muestra lo contrario y el tercer div es donde estará el contenido a ocultar. Donde ‘nombre’ lo cambiaremos por el identificador del div que vayamos a usar.
Jul. 26
Para este ejemplo vamos a crear un XML de la forma
<?xml version="1.0" encoding="utf-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
<trackList>
<track>
<title></title>
<creator></creator>
<location></location>
</track>
</trackList>
- 1.Creamos una variable que contenga las primeras tres líneas del XML
$contenido='<?xml version="1.0" encoding="utf-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
<trackList>';
- 2.Mediante un for llenamos los datos del xml: tile, creator y location.
for($i=0;$i<count($filenames);$i++){
$contenido.='
<track>
<title>'.$se.'</title>
<creator></creator>
<location>'.$ruta.'</location>
</track>';
}
- 3.Agregar a la variable las ultimas líneas después del for
$contenido.='
</trackList>
</playlist>';
- 4.Por último para guardar el el valor de $contenido, lo hacemos con las siguientes funciones de archivo.
$file3=$dir."/archivo.xml";
$archivo=fopen($file,"w");
fwrite($archivo,utf8_encode($contenido));
fclose($archivo);
Para ver con más detalle el código aquí y el xml generado aquí
Jul. 24
Como ya tengo varios vídeos (formato FLV) en mi hosting, me vi en la necesidad de crear algún método para administrarlos y no estar entrando al ftp, cada vez que quiera ver la url del un vídeo, entonces recordé que hace tiempo Ivan karam publico un explorador de archivos hecho en php en la page de tuxteno. El cual tome y le hice las siguientes modificaciones para poder administrar los vídeos
•Con getcwd obtengo el directorio actual donde se ejecuta el script y con la variable predefinida $_SERVER obtengo varios datos del servidor
if(!isset($referer))
{
$referer="http://".$_SERVER['SERVER_NAME']."/videos/vids";
}
• Con esta función obtengo la extensión de un archivo, para este caso .flv
function getExtension($archivo)
{
$a=explode(".",$archivo);
return $a[count($a)-1];
}
Como mis archivos los tengo nombrados con guión bajo, algo así un_archivo_1.flv, entonces uso esta función para cambiar esos guiones por espacios y mandarlos a imprimir
function sepcade($cadena)
$cade3="";
$cade2=explode( "_", $cadena );
for($j=0;$j<count($cade2);$j++)
{
$cade3.=$cade2[$j]." ";
}
return $cade3;
}
• Para reproducir los vídeos creo una función java script usando swfobject y xlibrary, para evitar que se recargue la página cada vez que se cambia de vídeo.
function playmovie(file)
{
var video = new SWFObject("http://erufenix.codesys.org/media/flvplayer.swf", "mymovie", "640", "480", "8", "#336699");
var sep_file=file.split("/");
var sep2_file=sep_file[5].split(".");
var sep3_file=sep_file[5].split("_");
video.addVariable("file",file);
video.addVariable("autostart","true");
video.addParam("wmode", "transparent");
video.write("videos");
var sej=cadesep(sep3_file);
xInnerHtml('title2', "Estas viendo: " + "<a href='" + file + "'>" + sej + "<\/a>")
document.title = ":: Videos de erufenix :: - "+sej;
}
Puedes ver el el script funcionando en http://erufenix.codesys.org/videos/ y el código completo aqui