17 ene
The Awkard moment: Developer
The awkward moment when you see a old source code and says who do that!
11 ene
PHP: funcion list
Al igual que array(), no es realmente una función, es un constructor del mismo lenguaje, la función list() se utiliza para asignar una lista de variables en una sola operación.
Veamos algunos ejemplos:
<?php
$usuario = array('juan', 'perez', 'programador'); // Listando todas las variables
list($nombre, $apellido, $profesion) = $usuario; // Necesitamos imprimir la cadena lo cual genera: El usuario juan perez tiene la profesión de programador 'lo cual lo hace especial'.
echo "El usuario $nombre $apellido tiene la profesión de $profesion'lo cual lo hace especial'.\n"; // es posible saltar indices que no necesitamos list($nombre, , $profesion) = $usuario; // esta string genera lo siguiente: El usuario juan es programador.
echo "El usuario $nombre es $profesion.\n";
?><?php
list($bar) = "abcde"; // El resultado es NULL
var_dump($bar);
?> 8 nov
PHP – Generar passwords Ramdom
Esta es la funcion que utilizo generalmente para realizar contraseñas aleatorias:
function _createRandomPassword($length = null)
{
$chars = “abdefghjmnpqrstuvwxyz23456789″;
srand((double)microtime()*1000000);
$i = 0;
$pass = ” ;
$length = ($length!=null) ? intval($length) : 7;
while ($i <= $length )
{
$num = rand() % 29;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
3 nov
PHP-Programación : Sumar Dígitos de un Número
Lei esta pregunta que realizo el usuario: Jonathan Terrada en el grupo de programación “PHP-Programacion” php—programacion@googlegroups.com el cual recomiendo auqnue yo no poseto mucho alli me entretiene las preguntas que hacen algunas personas y hoy me he animado a contestar una de ellas el problema es el siguiente: “Alguien sabe si existe una función, que sume todos los dígitos de un número y llegue como resultado a un solo dígito ? * Es decir, por ej. tengo el número 4861 -> 4+8+6+1=19 -> 1+9=10 ->1+0= 1* Mí número sería el 1. “ luego el usuario del mismo foro Camello Ar trajo una solución bastante fácil y entendible, ahora yo como me me complico la vida pensé que pasaría si el usuario en ves de sumar quisiera restar o multiplicar? en anexo adjunto las 2 funciones.
<?php
/**
* PHP-Programación : Sumar Dígitos de un Número.
* @Pregunta: Alguien sabe si existe una función, que sume todos los dígitos de un número y llegue como resultado a un solo dígito ?
* Es decir, por ej. tengo el número 4861 -> 4+8+6+1=19 -> 1+9=10 ->1+0= 1Mí número sería el 1.
* @Respuesta: decidi hacerla un mas extendida para poder (si en algun caso es necesario) cambiar el operdor por (multiplicacion, suma o resta) segun se necesite.
*
* @Author: KaMeKuN
* @Param: int
* @Return void
**/
function justOneDigit($digit) {
$digit = str_split($digit);
$sum = 0;
for($i = 0; $i<count($digit); $i++) {
$sum += $digit[$i];
}
if(count(str_split($sum))<2)
return $sum;
else
justOneDigit($sum);
}
echo justOneDigit(4861);
/**
* PHP-Programación : Sumar Dígitos de un Número.
* @Respuesta
or ahora no encontré nada directo pero puedes usar una iteracción (un while $numero <=9) con
* @Author: Camello Ar
* @mod: Rio-Abajo
**/
function justOneDigit2($digit) {
while($digit>9) {
$digit = (int) array_sum(str_split( (string) $digit ));
}
return $digit;
}
echo justOneDigit2(4861);
?>
3 jun
PHP: Pregunta de Certificación Arrays
Navegando en busca de preguntas de certificación, preparando los casos y test encontré esta pregunta que puede salir en la certificacióny que es simple pero a la vez un poco compleja ya que se debe conocer sobre el uso interno del array y la asignación de indices. He dejado la pregunta en ingles como las siguientes que pondré porque si tomamos el examen en ingles es bueno para ir acordándonos de algunos términos.
Consider the following PHP script What should you write here to print the value ‘Web development’?:
<?php
$a = array(
1 => ‘php’,
‘Hypertext’,
‘Preprocessor’,
‘widely used’ => array(
‘general’ => ‘purpose’,
‘scripting’ => ‘language’,
‘that’ => ‘was’,
‘originally’ => array(
5 => ‘designed’,
9 => ‘for’,
‘Web development’,
4 => ‘purpose’,)));
//write code here
?>
Lo primero que debemos saber es que nos están dando el arreglo sin tabular algo un poco tosco para entender, así que debemos estar seguro de que elegir, para ello debemos estudiar el array y ver que posee un array anidado dentro de otro asi que debemos ir llenandolo a medida que encontramos los indices, si vemos el array comienza simple asignando el indice 1 al arreglo y valor php; al asignarle ya este numero le estamos diciendo que el arreglo numérico comienza en 1, pero en el 4to nodo se asigna un indice asociativo de tipo string, y se convierte en un array asociativo o mixto. necesitamos imprimir web development asi que comenzamos con $a['widely used'] el segundo array comienza en originally, este es simple porque todos los indices dentro de este array es asociativo asi que le agregamos originally de subindice $a['widely used']['originally'] ya el tercer subindice de array es un poco mas complicado… y aqui es donde esta el truco de la pregunta porque nos dan un arreglo de indices enteros, luego web development no se asigna valor pero si vemos el indice comienza en la posición 4, entonces ordenado seria (4,5, 9, web development) simplemente porque el ultimo indice asignado es el 9 entonces el nuestro seria el 10 $a['widely used']['originally'][10]
Nota: Esto no quiere decir que si el valor purpose se le asigna un 11, el valor web development cambiara de ID, puesto que PHP solo toma como referencia el ultimo valor numérico asignado, y en este caso seria el 9.
Pregunta: Estuve leyendo que en el examen de certificación se debe asignar la respuesta (en la que son de campo de texto para llenar) tal cual ellos lo han realizado, por lo que supongo que si pongo $a['widely used']['originally'][10] o anexo la siguiente respuesta $a['widely used']['originally']['10'] con las comillas simple en ambos resultados PHP trae el valor web development, cual seria la respuesta? ambas? o una u otra?; en un demo de un simulador en una pregunta sobre cookies, me la dio negativa simplemente porque puse setCookie y era setcookie cual seria el valor en este caso? no estoy seguro si el valor de las respuestas en “case sensitve” o era solo el simulador que probé. asun así para tener presente todas las funciones php están en minúsculas al menos en el api de php.net
La función array_slice se debe tener en cuenta que es una función que extrae una parte del arreglo y que por default re ordena los indices a menos que se se le pase el parámetro preserve_keys a true array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys = false ]] ), algo curioso de esta función es que si el offset que se le pasa por parámetro es positivo hay es donde comenzara a cotar, pero si es negativo es desde la ultima posición del array a la primera es decir que si tenemos lo siguiente:
<?php
$array1 = array (“a”, “b”, “c”, “d”, “e”, “f”);
$array2 = array_slice($array1, -3);
foreach ( $array2 as $val ) {
print “$val “;
}
?>
Esta función nos traerá como resultado d e f ya que el valor del offset es negativo, seria lo mismo si se lo paso positivo el offset (3) ya que son 6 posiciones, me tope con esto que puede confundirnos.
2 jun
PHP: Directiva cgi.force_redirect
Siguiendo mi preparación, iré colocando en el blog algunas preguntas o funciones que encuentre interesantes o posibles para el examen para tener de repaso y como nota. Comenzare con esta simple para tener el modelo que usare mas adelante.
La directiva cgi.force_redirect es necesario para ofrecer seguridad cuando PHP es ejecutado como CGI bajo la mayoría de servidores web. Si no es definido, PHP habilita este parámetro por defecto. Es posible deshabilitarlo bajo su propio riesgo. En pocas palabras cuando se tiene http://any.host/cgi-bin/php/secretdir/script.php scripts php que no queremos que accedan directamente se activa esta directiva en el php.ini
Fuente: http://www.php-es.com/ini.core.html


