Archivio mensile:novembre 2013

[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