ccc

Leer fichero de excel

composer require phpoffice/phpspreadsheet 1.29 --ignore-platform-reqs
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Reader\Csv;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
require_once 'vendor/autoload.php';
$nomFichero = "pepe.xlsx";
$file_mimes = array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
$arr_file = explode('.',$nomFichero);
$extension = end($arr_file);
if ('csv' == $extension) {
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
} else {
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
}
$spreadsheet = $reader->load($nomFichero);
$worksheet = $spreadsheet->getActiveSheet();
$highestRow = $worksheet->getHighestRow();
$highestColumn = $worksheet->getHighestColumn();
$highestColumnIndex = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::columnIndexFromString($highestColumn);
// A partir de aquí ya recorrer el array

PHP: Detect si es mobile

$userAgent = $_SERVER['HTTP_USER_AGENT'];
$esMobile = false;
if (preg_match('/android|iphone|ipod|blackberry|iemobile|opera mobile|palmos|webos/i', $userAgent)) {
   $esMobile = true;
}

if (!$esMobile) {
...
}

Blogger: Mostrar un elemento del HTML en Mobile

Añadir al mobile='yes':
b:widget id='HTML3' locked='false' mobile='yes' title='xxx' type='HTML'>

En Blogger -> Temas -> Configuración para móviles:
a) Elegir móvil
b) Elegir tema para móviles: seleccionar Personalizado

CURL enviando parámetros por GET: HTTP request failed! HTTP/1.1 400 Bad Request

Si al mandar un CURL por GET da el error de HTTP request failed! HTTP/1.1 400 Bad Request mandar los datos de GET de la siguiente manera:
$ch = curl_init();
$url = "https://loquesea";
$dataArray = [
   'dir' => "",
   'phone' => 66666666,
   'cp' => '{"loquesea":"xxx"}'
];

$data = http_build_query($dataArray);
$getUrl = $url."?".$data;
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $getUrl);
curl_setopt($ch, CURLOPT_TIMEOUT, 80);
$response = curl_exec($ch);
if(curl_error($ch)){
   echo Request Error:' . curl_error($ch);
}else{
   echo $response;
}
curl_close($ch);

Sumar/restar horas, minutos o segundos a la fecha actual

$mifecha = new DateTime();
$mifecha->modify('-5 hours');
$mifecha->modify('+30 minute');
$mifecha->modify('-30 second');
echo $mifecha->format('d-m-Y H:i:s');

Detectar si el src de una imagen se ha cargado correctamente y sino cargar otra

<img id="imgAux" src="https://www.otroservidor.com/images/imagenNoExiste.jpg" onerror="javascript: document.getElementById('imgAux').src='https://www.otroservidor.com/images/imagenExiste.jpg'>