En informática un operador ternario (a veces incorrectamente llamado operador terciario) es un operador que toma tres argumentos. Los argumentos y el resultado puede ser de diferentes tipos. Su sintaxis sería así.
resultado = condición ? valor_si_cierto : valor_si_falso
Esta operador está presente en muchos de los lenguajes de programación modernos y muchos otros bastante menos modernos. El lenguaje C, y casi todos los lenguajes que han derivado de él la han heredado (C++, C#, Java, PHP...) Aunque muchos otros lenguajes no disponen de ella, que yo sepa... por ejemplo, todos los derivados de Pascal (Delphi, Modula, Oberon...). No es ni mucho menos una construcción imprescindible, aunque suele venir muy bien.
Veamos un ejemplo cásico, el mayor de dos números, usando código PHP:
Con el operador binario > (mayor-menor) sería así:
if ($a > $b)
$max=$a;
else
$max=$b;
echo $max; //mostramos el máximo
Con el operador ternario:
$max = ($a > $b) ? $a : $b;
echo $max;
o incluso:
echo ($a > $b) ? $a : $b;
Mostrando entradas con la etiqueta php. Mostrar todas las entradas
Mostrando entradas con la etiqueta php. Mostrar todas las entradas
jueves, 24 de febrero de 2011
martes, 14 de diciembre de 2010
Descargar todas las imágenes de una web con php
Hoy quiero mostraros un script que he hecho en php el cual dada una url (que pide primero), descarga todas las imágenes (públicas) de esa página a nuestro servidor (que si lo probamos desde localhost obviamente lo descarga en nuestro PC).
El script, básicamente consiste en 2 funciones:
La 1ª almacena en un path todas las imágenes (cogiendo la etiqueta img de html).
Y la segunda crea una copia para cada imagen en nuestra máquina local, dentro de la carpeta images.
Sin más dilación os dejo el código:
El script, básicamente consiste en 2 funciones:
La 1ª almacena en un path todas las imágenes (cogiendo la etiqueta img de html).
Y la segunda crea una copia para cada imagen en nuestra máquina local, dentro de la carpeta images.
Sin más dilación os dejo el código:
<?phpfunction imagenesHTML($url, $norepetidos = true)
{
$contenido = @file($url);
$contenido = array_map("trim", $contenido);
$contenido = implode(" ", $contenido);
if ( preg_match_all('/<img([^<>]+)>/i', $contenido, $match) ) {
foreach($match[1] as $atributos) {
if ( preg_match('/src="([^"]+)"/i', $atributos, $matchpaths) ) {
$pathimgs[] = $matchpaths[1];
} elseif ( preg_match('/src=([^ ]+)/i', $atributos, $matchpaths) ) {
$pathimgs[] = $matchpaths[1];
}
unset($matchpaths);
}
}
if ( !empty($pathimgs) ) {
if ($norepetidos) {
return array_unique($pathimgs);
} else {
return $pathimgs;
}
} else {
return false;
}
}
function guarda_imagen ($img, $nombre){
$size =@getimagesize ($img);
if($size!=''){
$ancho = $size[0];
$alto = $size[1];
$thumbnail = ImageCreateTrueColor( $ancho, $alto );
switch ($size['mime']){
case 'image/jpeg':
$tipo=".jpg";
$src_img = ImageCreateFromJPEG( $img );
ImageCopyResampled( $thumbnail, $src_img, 0, 0, 0, 0, $ancho, $alto, $size[0], $size[1] );
ImageJPEG( $thumbnail, "images/".$nombre.".jpg" );
break;
case 'image/png':
$tipo=".png";
$src_img = imagecreatefrompng( $img );
ImageCopyResampled( $thumbnail, $src_img, 0, 0, 0, 0, $ancho, $alto, $size[0], $size[1] );
imagepng ( $thumbnail, "images/".$nombre.".png" );
break;
case 'image/gif':
$tipo=".gif";
$src_img = imagecreatefromgif ( $img );
ImageCopyResampled( $thumbnail, $src_img, 0, 0, 0, 0, $ancho, $alto, $size[0], $size[1] );
imagegif ( $thumbnail, "images/".$nombre.".gif" );
break;
default:
ImageDestroy( $thumbnail );
return false;
}
ImageDestroy( $thumbnail );
return $tipo;
}
else
return false;
}?> <html>
<head>
<title>Captura Imagenes de una URL</title>
</head>
<body>
<h1>Capturador de Imagenes</h1>
<form action=" <?php echo $_SERVER['PHP_SELF']; ?>" method="post">
URL: <input type="text" name="url" value=""/>
<input type="submit" name="BOTON" value="Capturar" />
</form> <?php
if ($_POST['BOTON']=='Capturar'){
$imagenes = @imagenesHTML($_POST['url']);
if ($imagenes!=''){
if (!is_dir('./images')) mkdir("images");
$i=0;
foreach ($imagenes as $imagen){
$img = split ('/', $imagen);
if (count($img)<=1){
$url= split('/', $_POST['url']);
$ori=$imagen;
$imagen='';
$tope=count($url)-1;
for ($j=0; $j<$tope; $j++)
$imagen.=$url[$j].'/';
$imagen.=$ori;
}
$ok = guarda_imagen ($imagen, 'imagen_'.$i);
if ($ok==false) echo 'no se ha podido descargar la imagen: '.$imagen.'<br/>';
else{
echo '<img src="images/imagen_'.$i.$ok.'"/><br/>';
$i++;
}
}
}
}
?> </body>
</html>
domingo, 17 de octubre de 2010
PHP en Android
La empresa Bilbaina Irontec, utilizando la aplicación ASE (aplicación para Android desarrollada por Google gracias a la cual es posible editar y ejecutar scripts en tu terminal móvil) y añadiendo scripts propios, han desarrollado PFA (Php For Android).Toda la información la tenéis en la página de la empresa y la documentación de la librería (scripts, manuales, etc) en la web www.phpforandroid.net.
Personalmente aún no poseo ningún terminal con Android, pero poco a poco me va convenciendo más y al final acabaré picando...
martes, 21 de septiembre de 2010
PDFs dinámicos con php
Buenas a todos, este es mi primera entrada en soy_informático y espero que les guste o al menos le sirva a alguien. Lo primero agradecer a geek que me deje participar en su blog, espero que no se arrepienta...
Para generar PDFs dinámicos en PHPhay 2 formas (si alguien conoce más formas serán bienvenidas):
1ª Usando la extensión PHP PDF Lib que es de pago y requiere instalación (y si no eres el administrador de tu servidor hosting ya puedes esperar).
2º Utilizando la librería class.ezpdf.php y alguna de sus extensiones como class.backgroundpdf.php, que son gratuitas y no requieren instalación (solo hay que descargarse las librerías y subirlas al servidor).
La segunda opción tarda un poco mas de procesar los pdfs, pero es muchísimo más sencilla de utilizar y ponerla a punto. Para muestra un botón.
PDF dinámico con imagen de logo corporativo en el centro:
Edito: buscando me he dado cuenta que hay bastantes librerías más para generar pdf con php aquí os dejo una lista.
FPDF
TCPDF
FPDI
domPDF
Para generar PDFs dinámicos en PHP
1ª Usando la extensión PHP PDF Lib que es de pago y requiere instalación (y si no eres el administrador de tu servidor hosting ya puedes esperar).
2º Utilizando la librería class.ezpdf.php y alguna de sus extensiones como class.backgroundpdf.php, que son gratuitas y no requieren instalación (solo hay que descargarse las librerías y subirlas al servidor).
La segunda opción tarda un poco mas de procesar los pdfs, pero es muchísimo más sencilla de utilizar y ponerla a punto. Para muestra un botón.
PDF dinámico con imagen de logo corporativo en el centro:
1
<?php
2 include('class.ezpdf.php');
3 include('class.backgroundpdf.php');
4
5 $pdf = new backgroundPDF('a4', 'portrait', 'image', array('img'=>'logo.jpg', 'width'=>560, 'height'=>420, 'xpos'=>0, 'ypos'=>200));
6 $pdf->selectFont('./fonts/Helvetica.afm');
7 $pdf->ezText('PDF generado dinámicamente', 50);
8 $pdf->ezText('', 12);
9 $pdf->ezText('Ejemplo de PDF utilizando una imagen como Fondo.', 12);
10 $pdf->ezNewPage();
11 $pdf->ezText('Pagina 2', 50);
12 $pdf->ezStream();
13 ?>
Edito: buscando me he dado cuenta que hay bastantes librerías más para generar pdf con php aquí os dejo una lista.
FPDF
TCPDF
FPDI
domPDF
Suscribirse a:
Entradas (Atom)