Skip to content

Instantly share code, notes, and snippets.

@CarlosLongarela
Created March 16, 2017 00:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CarlosLongarela/49a2c06bd1d7ca48ca21cb567c7fc077 to your computer and use it in GitHub Desktop.
Save CarlosLongarela/49a2c06bd1d7ca48ca21cb567c7fc077 to your computer and use it in GitHub Desktop.
Optimizar las imágenes con el programa de sistema jpegoptim desde PHP
/**
* Optimizar las imágenes con el programa de sistema jpegoptim
*
* @param array $array_imgs Array con los nombres de las fotos.
* @param string $ruta_fotos Ruta donde están las fotos.
* @param boolean $no_exec Si se ejecuta o sólo ver el resultado sin ejecutar.
*
* @return string|array Devuelve una cadena con el fallo o un array con los resultados.
*/
function optimiza_img( $array_imgs, $ruta_fotos = '', $no_exec = true ) {
$programa = '/usr/bin/jpegoptim';
$array_result = array();
$cmd_exec = '';
if ( ! file_exists( $programa ) ) {
$res = 'No se encuentra el ejecutable "' . $programa . '"';
return $res;
}
if ( ! is_array( $array_imgs ) ) {
$res = 'No se ha indicado un array de imágenes';
return $res;
}
if ( empty( $ruta_fotos ) ) {
$res = 'No se ha indicado una carpeta para las fotos';
return $res;
}
if ( ! file_exists( $ruta_fotos ) ) {
$res = 'No existe la carpeta "' . $ruta_fotos . '"';
return $res;
}
if ( true === $no_exec ) {
$params = ' --noaction';
} else {
$params = null;
}
$params .= ' -p -m70 --strip-all ';
foreach ( $array_imgs as $foto ) {
$cmd_exec = $programa . $params . $ruta_fotos . basename( $foto );
$res2 = exec( $cmd_exec, $array_result );
}
return $array_result;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment