¡Esta es una revisión vieja del documento!
Programación
Notas generales de programación
Actualizacion a PHP 5.3.2
split() reemplazarla por explode()
How to fix ‘Function eregi() is deprecated’ in PHP 5.3.0
I used to use eregi for validating email address input that matches to the regular expression.
<?php if(!eregi("^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$", $str)) { $msg = 'email is not valid'; } else { $valid = true; } ?>
That would return true if given email address is matches to username@domain.ext pattern. Unfortunately, after upgrading PHP to the earlier version (5.3.0), it wont work properly. This is because eregi is one of several functions that are deprecated in the new version of PHP.
Solution: Use preg_match with the 'i' modifier instead. i means that regular expression is case insensitive. So the code become like this:
<?php if(!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $str)) { $msg = 'email is not valid'; } else { $valid = true; } ?>
http://takien.com/513/how-to-fix-function-eregi-is-deprecated-in-php-5-3-0.php
Obtener el usuario segun su UID
En este caso queremos obtener el usuario que corresponde al UID 506
#include <stdio.h> #include <pwd.h> #include <sys/types.h> int main() { struct passwd *pw; pw = getpwuid(506); if (pw == NULL) { printf("NULL!\n"); } else { printf("name: %s\n", pw->pw_name); } }
Parsear el contenido de un tag XML con sed
A veces necesitamos extraer el contenido de un tag XML dentro de un script, aca un ejemplo simple
<state can_be_paused="0">running</state>
sed 's/<[^>]*[>]//g'
Salida:
running
Agregar texto al final de una linea que matchea con cierto patrón
Ejemplo en la linea que se refiere al kernel en el archivo menu.lst quiero cambiar la opción de memoria para el dominio 0.
Entonces necesito cambiar de algo asi:
kernel /xen.gz-2.6.18-164.10.1.el5
A algo asi:
kernel /xen.gz-2.6.18-194.8.1.el5 dom0_mem=96
Ejecuto esto:
sed -e 's/kernel.*/& dom0_mem=96/g' menu.lst
Redondear un numero en BASH
echo "tmp=$variable; tmp /= 1;tmp" | bc