jueves, 19 de septiembre de 2019
Actualizar caracteres extraños en mysql con un solo query
Para actualizar un campo de una tabla en mysql en su totalidad se utiliza este solo query:
UPDATE [tabla] SET [campo] = CONVERT(BINARY CONVERT([campo] USING latin1) USING utf8);
Ejemplo:
UPDATE wallpaper SET titulo = CONVERT(BINARY CONVERT(titulo USING latin1) USING utf8);
Nota importante:
Por motivos de seguridad de los datos es vital sacar un backup de los datos a actualizar.
Etiquetas:
actualizar,
caracteres,
extraños,
mysql,
query,
único
martes, 17 de septiembre de 2019
Crear log en archivos PHP y recuperar la información
Con este método podemos gestionar de forma fácil cualquier log en archivo que deseemos almacenar:
function saveLOG($nombre, $info) {
$file = fopen($nombre . '_' . date('Y-m-d') . '.txt', 'a');
fwrite($file, $info . PHP_EOL);
fclose($file);
}
$nombre es el nombre del archivo. El método le agregaría la fecha actual y le pondría la extensión txt.
$info es la información que deseamos guardar.
Ejemplo de uso:
$info = "$dato1|$dato2|$dato3|$dato4|$dato5|$dato6";
saveLOG('noti_susc.txt', $info);
Aquí hemos separado por el carácter | (pipe) los datos que se encuentras en las variables. También podemos guardar texto literal, o cualquier otro dato tipo texto.
Para leerlo simplemente usamos la función de php fopen:
$f = fopen('noti_susc.txt_2019-09-17.txt', 'r'); // Aquí colocamos el nombre del archivo en el cual guardamos el log o cualquier otro log legible.
while ($l = fgets($f)) {
if (feof($f)) { // Truco no muy bonito pero efectivo, que al llegar al fin de archivo salga del bucle
break;
}
$aux = explode('|', $l); // Guardamos los datos separados por el carácter | y los separamos
// Uso de los datos separados
echo $aux[0] . $aux[1] . $aux[2] . $aux[3] . $aux[4] . $aux[5] . $aux[6]; // Etc. cantidad de variables
}
domingo, 14 de julio de 2019
Activar o desactivar hibernación Windows 10
Para desactivar hibernación en Windows 10 se debe ejecutar el comando en la consola:
powercfg.exe /h off
Para activar:
powercfg.exe /h on
Etiquetas:
activar,
desactivar,
hibernacion,
hibernar,
windows10
lunes, 17 de junio de 2019
Parsear variables de una cadena get con PHP
Para obtener la variables de una cadena get de forma simple se usa el método parse_str() de php.
Ejemplo:
$cadena = "id=1&ver=1.0&os=ios&name=verizon";
parse_str($cadena);
Uso de variables:
$id, $ver, $os, $name
miércoles, 10 de abril de 2019
viernes, 5 de abril de 2019
Métodos sumar y restar fechas en PHP
Método para sumar días a una fecha:
function sumar_fecha($fecha, $dias) {
$nuevafecha = strtotime("+$dias day", strtotime($fecha));
$nuevafecha = date('Y-m-d', $nuevafecha);
return $nuevafecha;
}
Uso:
sumar_fecha("2019-04-05", 7);
Resultado:
2019-04-12
Método para conocer cuantos días restan entre dos fechas:
function restar_fecha($start, $end) {
$start_ts = strtotime($start);
$end_ts = strtotime($end);
$diff = $end_ts - $start_ts;
return round($diff / 86400);
}
Uso:
restar_fecha("2019-04-01", "2019-04-05");
Resultado:
4
miércoles, 3 de abril de 2019
Optimizar Windows 10 sin programas externos
Es posible optimizar Windows 10 sin necesidad de programas de terceros para que este pueda permanecer siempre rápido.
Lamentablemente programas de terceros no pueden limpiar en su totalidad los problemas de Windows y por el contrario nos ocupan más espacio y pueden estar instalando otros programas no deseados.
La siguiente lista de comandos se debe ejecutar en su orden:
1. sfc /scannow
2. DISM /Online /Cleanup-Image /CheckHealth
3. DISM /Online /Cleanup-Image /RestoreHealth
lunes, 1 de abril de 2019
Cómo actualizar BIOS en un portátil sin batería y conectado directamente
Muchas veces nuestro laptop se le puede dañar la batería y nos toca quitarla para conectar el equipo directamente a la corriente.
Cuando intentamos actualizar la BIOS de dicho laptop, nos suele aparecer una advertencia que conectemos nuestra batería y que esta debe tener más del 20% de su carga.
En estos casos debemos ir a los archivos de la actualización de la BIOS que descargamos de la página oficial de nuestro laptop y buscar el archivo de configuración que por lo general tiene la extensión .ini
Buscar el parámetro BatteryCheck = 1 y cambiarlo por 0
Ejecutar CMD de Windows como Administrador y allí correr el archivo para actualizar la BIOS.
Normalmente debería permitir actualizar. De lo contrario se debe ejecutar el archivo de la actualización con el parámetro /forceit
Ejemplo: BIOS.EXE / forceit
NOTA IMPORTANTE: Si por alguna razón nuestro laptop se apaga ya sea por desconexión del cable o se interrumpe la energía, este puede sufrir daños irreparables en la BIOS. Usar este procedimiento baja su propia RESPONSABILIDAD.
jueves, 28 de marzo de 2019
Portátil ASUS no carga sistema operativo (inicia sólo en la BIOS)
Pasos para solucionar el problema de inicio sólo en la BIOS:
1. Ir al menú Security
2. Opción Boot Menu
3. Opción Secure Boot Control -> Disabled
4. Ir al menú Boot
5. Opción Launch CSM -> Enabled
6. Ir al menú Save & Exit
7. Opción Save Changes and Exit -> Enter
jueves, 14 de marzo de 2019
Smart TV LG 43 LJ550T dejó de reconocer redes wifi
El modelo LJ550T tiene una falla de diseño la cual puede afectar la tarjeta de Wi-Fi de forma intermitente o definitiva respecto a la conexión inalámbrica.
Esta falla consiste en que el módulo wifi esta en la parte inferior del Smart TV cerca a las ranuras externas del sonido, razón por la cual el polvo y partículas pueden ingresar y afectar los circuitos o aislarlos.
Sin embargo esto no impide que el Smart TV se pueda conectar por cable directamente hacia el módem pero esto en realidad es tener medio Smart TV.
La solución es destapar el Smart TV cuidadosamente y desconectar el módulo wifi. Limpiarlo y volver a conectar.
Esta falla consiste en que el módulo wifi esta en la parte inferior del Smart TV cerca a las ranuras externas del sonido, razón por la cual el polvo y partículas pueden ingresar y afectar los circuitos o aislarlos.
Sin embargo esto no impide que el Smart TV se pueda conectar por cable directamente hacia el módem pero esto en realidad es tener medio Smart TV.
La solución es destapar el Smart TV cuidadosamente y desconectar el módulo wifi. Limpiarlo y volver a conectar.
martes, 12 de marzo de 2019
Contraseña y acceso Modem Claro Hitron CGNV2
Probar con los siguientes:
Para acceder al módem Hitron CGNV2 se debe acceder mediante la puerta de enlace predeterminada. Esto se puede averiguar con el comando ipconfig en la consola de Windows.
Se debe utilizar un navegador como Microsoft Edge o Mozilla Firefox, pues de lo contrario no funcionaría. (Funciona con la versión de Google Chrome 74 y superiores)
Credenciales:
Nombre de Usuario: CLRadminLAN1
Clave: Uq-4GIt3M
Importante no realizar cambios sin conocimientos de experto. Preferiblemente sacar una copia en la configuración en WAN/LAN -> Guardar la configuración localmente
Otra contraseña sugerida por usuario:
Usuario: admin
Clave: ZP9Lw$fGyUD
¡NOTA IMPORTANTE!:
Si estas credenciales no funcionan, intenta probar con las del Modem Technicolor: https://mismemoriasinformaticas.blogspot.com/2020/09/contrasena-y-acceso-modem-tigo.html
miércoles, 6 de marzo de 2019
En Windows 10 no se apaga mi portátil
En multitud de portátiles, especialmente en ordenadores con tecnología Intel, el apagado del sistema no se realiza de forma correcta. El ordenador no se apaga totalmente ni desde los iconos del menú de inicio ni empleando los atajos del teclado. Tampoco se puede salir del modo de hibernación, salvo forzando el apagado del ordenador tras pulsar durante unos segundos la tecla de apagado. Este problema está ocasionado por controladores no compatibles con Windows 10. El propio sistema instala controladores para el sistema de energía del equipo pero éstos no son compatibles en Windows 10 o están desactualizados.
Si la máquina incluye tecnología Intel, es posible que un controlador no esté instalado, o se haya instalado una versión no compatible. El problema no es de Windows ni del laptop, sino de Intel. Parece ser que este problema en el semi-apagado de los portátiles está relacionado con el controlador INTEL MANAGEMENT ENGINE INTERFACE (Intel MEI) (sólo los notebooks que incluyan la tecnología Intel).
Estos pasos, en orden, pueden solucionar el problema:
1. Pulsa las teclas Windows + X y haz clic en Administrador de dispositivos.
2. Busca el controlador de sistema Management Engine Interface (es posible que tenga una señal amarilla de que algo no va bien)
4. Haz doble clic sobre el controlador. En la ventana de Propiedades, haz clic en la ficha Controlador. Clic sobre el botón Actualizar controlador.
5. Reinicia el sistema.
viernes, 11 de enero de 2019
API para conocer el tipo de dispositivo en JavaScript
<head>
<script type="text/javascript" src="https://wurfl.io/wurfl.js"></script>
<script>
if (WURFL.form_factor == 'Smartphone') {
if (WURFL.complete_device_name.indexOf("Apple iPhone") == 0) {
// iPhone
} else {
// Android
}
} else {
// Feature phone
}
</script>
</head>
Etiquetas:
android,
api,
conocer,
dispositivo,
feature,
iphone,
javascript,
movil,
phone,
tipo,
wurfl
API para obtener sistema operativo, navegador y versión del usuario en PHP
Request:
https://uploadbeta.com/api/parse-user-agent/?s=nUser-Agent:[USER AGENT]
Response:
{"platform":"Windows","browser":"Chrome","version":"71.0.3578.98"}
Método para retornar valores en array:
function infoUA($ua) {
$url = 'https://uploadbeta.com/api/parse-user-agent/?s=nUser-Agent:' . urlencode($ua);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
$array = json_decode($response, 1);
return array($array['platform'], $array['browser'], $array['version']);
}
API para obtener datos sobre el país según la IP en PHP
Request para recibir response en JSON:
http://api.ipaddress.com/iptocountry?format=json
Response:
{"ipaddress":"100.110.160.99","continent_code":"SA","continent_name":"South America","country_code":"AR","country_name":"Argentina"}
Request para recibir response en XML:
http://api.ipaddress.com/iptocountry?format=xml
Response
<?xml version="1.0"?><location><ipaddress>100.110.160.99</ipaddress><continent_code>SA</continent_code><continent_name>South America</continent_name><country_code>AR</country_code><country_name>Argentina</country_name></location>
Método PHP para obtener código del país y nombre del país:
function infoIP($ip) {
$url = 'http://api.ipaddress.com/iptocountry?format=json&ip=' . $ip;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
$array = json_decode($response, 1);
return array(strtolower($array['country_code']), $array['country_name']);
}
Método para retornar resultados en array MySQL en PHP
function consultar($sql) {
$link = new mysqli('[IP]', '[USER]', '[PASSWORD]', '[BASE DE DATOS]');
if ($link->connect_errno) {
die('Fallo al conectar a MySQL: ' . $link->connect_error);
}
$result = $link->query($sql);
if ($result->num_rows > 0) {
$rows = array();
while ($row = $result->fetch_assoc()) {
$rows[] = $row;
}
return $rows;
} else {
return FALSE;
}
}
USO:
$sql = "SELECT id FROM tabla";
$array = consultar($sql);
foreach ($array as $key => $value) {
echo $value['id'];
}
Comprimir código HTML con PHP
Para comprimir se coloca el siguiente código PHP al inicio del documento:
ob_start('ob_gzhandler');
ob_gzhandler(ob_start('compress_page'), 5);
function compress_page($buffer) {
$search = array('/\>[^\S ]+/s', '/[^\S ]+\</s', '/(\s)+/s');
$replace = array('>', '<', '\\1');
return preg_replace($search, $replace, $buffer);
}
Método para crear urls amigables en PHP
function urls_amigables($url)
{
// Tranformamos todo a minúsculas
$url = strtolower($url);
// Reemplazamos caracteres especiales latinos
$find = array('á', 'é', 'í', 'ó', 'ú', 'ñ', 'á', 'é', 'Ã', 'ó', 'ú');
$repl = array('a', 'e', 'i', 'o', 'u', 'n', 'a', 'e', 'i', 'o', 'u');
$url = str_replace($find, $repl, $url);
// Añadimos los guiones
$find = array(' ', '&', '\r\n', '\n', '+');
$url = str_replace($find, '-', $url);
// Eliminamos y reemplazamos los demás caracteres especiales
$find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
$repl = array('', '-', '');
return preg_replace($find, $repl, $url);
}
Método para ofuscar texto en PHP
function obfuscate($text) {
$length = strlen($text);
$scrambled = '';
for ($i = 0; $i < $length; ++$i) {
$scrambled .= '&#' . ord(substr($text, $i, 1)) . ';';
}
return $scrambled;
}
Obtener IP real de un usuario aunque este en un Proxy con PHP
Para obtener la IP real se utiliza:
$ip = filter_input(INPUT_SERVER, 'HTTP_X_FORWARDED_FOR') ?? filter_input(INPUT_SERVER, 'REMOTE_ADDR');
Guardar archivo y mini preview de una imagen en PHP
1. Leer variables del formulario:
$vars = get_defined_vars();
2. Obtener todos los campos FILE:
extract($vars['_FILES']);
3. Definir variables con el input a trabajar:
$file_name = $PREVIEW['name'];
$file_tmp_name = $PREVIEW['tmp_name'];
$file_error = $PREVIEW['error'];
4. Cargar archivo al servidor:
$path = '../game/image/' . $ID . 'b.jpg';
move_uploaded_file($file_tmp_name, $path);
5. Guardar mini preview:
list($width, $height) = getimagesize($path);
$new_width = 233;
$new_height = 146;
$prev = imagecreatetruecolor($new_width, $new_height);
$origen = imagecreatefromjpeg($path);
imagecopyresampled($prev, $origen, 0, 0, 0, 0, $new_width, $new_height, $new_width, $new_height);
imagejpeg($prev, '../game/thumbnail/' . $ID . 'm.jpg', 70);
jueves, 10 de enero de 2019
Descargar el CDN en App Engine de Google
Para descargar una copia del CDN de Google se utiliza el comando:
appcfg.py download_app -A [NOMBRE DE LA APP] -V 1 [UNIDAD + PATH DESCARGA]
Ejemplo:
appcfg.py download_app -A appengcdn -V 1 D:\appengcdn
URL thumbnail o miniatura para Youtube
Urls para la imagen del vídeo Youtube estandar y HD.
https://i1.ytimg.com/vi/[CODIGO VIDEO]/hqdefault.jpg
https://i.ytimg.com/vi/[CODIGO VIDEO]/maxresdefault.jpg
Ejemplo:
https://i1.ytimg.com/vi/ROOHPmzrQ9k/hqdefault.jpg
https://i.ytimg.com/vi/ROOHPmzrQ9k/maxresdefault.jpg
Codificación UTF-8 para Netbeans
Netbeans por defecto omite las tildes y caracteres especiales. Para solucionar:
1. Ir a la carpeta de instalación y buscar el directorio etc
C:\Archivos de programa\NetBeans x.x\etc
2. Editar el archivo netbeans.conf agregando "-J-Dfile.encoding=UTF-8" en la línea de opciones por default del NetBeans (netbeans_default_options). El resto de opciones permanecen igual.
3. Volver a abrir Netbeans.
Etiquetas:
codificacion,
netbeans,
utf-8
Buscar contenido en archivos de forma recursiva en Linux
Para buscar cualquier contenido dentro de un archivo y obtener la lista de archivos que coinciden se utiliza:
grep -lir "[TEXTO A BUSCAR]" "PATH"
Ejemplo:
grep -lir "8801202" "/html/apps"
Reemplazar contenido de varios archivos sin conocer el script en Linux
Si no se conoce el script pero se desea reemplazar el contenido de uno o varios archivos se utiliza el comando find de Linux
find PATH -name "*.php" -print | xargs perl -pi -e "s/[TEXTO A BUSCAR][TEXTO A REEMPLAZAR]/g"
PATH es la ruta en el servidor. Si en el texto a buscar y/o texto a reemplazar es una url se deben escapar los caracteres slash. Por ejemplo:
find PATH -name "*.php" -print | xargs perl -pi -e "s/http:\/\/getbootstrap.com\/dist\/css\/bootstrap.min.css/https:\/\/bootswatch.com\/4\/cerulean\/bootstrap.min.css/g"
Etiquetas:
archivos,
contenido,
linux,
reemplazar,
script
Cómo actualizar uno o varios caracteres en un campo mysql
Formato
UPDATE tabla SET campo = REPLACE(campo, "a", "e");
Ejemplo
Si tenemos una tabla llamada juegos y en ella un campo llamado pais, cuyo contenido deseamos cambiar en todos los registros, debemos utilizar la siguiente expresión sql:
UPDATE juegos SET pais = REPLACE(pais, "rd", "do");
UPDATE tabla SET campo = REPLACE(campo, "a", "e");
Ejemplo
Si tenemos una tabla llamada juegos y en ella un campo llamado pais, cuyo contenido deseamos cambiar en todos los registros, debemos utilizar la siguiente expresión sql:
UPDATE juegos SET pais = REPLACE(pais, "rd", "do");
Etiquetas:
actualizar,
campo,
caracteres,
mysql
Suscribirse a:
Entradas (Atom)