Mattepuffo.com
Estrapolare immagini da HTML con PHP
Dettagli- Dettagli
- Categoria principale: Programmazione & Co.
- Ultima modifica il Venerdì, 01 Marzo 2013 12:01
- Pubblicato Venerdì, 01 Marzo 2013 11:57
Una cosa che mi è servita molto in questi giorni: estrapolare immagini da un pezzo di HTML.
Questo perchè nel mio db ho un campo dove i dati vengono salvati in HTML; da questo campo ho dovuto estrapolare le immagini per poi passarle ad altre funzioni.
Vediamo qui due esempi; in entrambi i casi useremo DOMDocument e XPath, con i quali possiamo estrapolare facilmente pezzi di contenuto HTML.
Primo esempio:
$doc = new DOMDocument();
$doc->loadHTML($html);
$xPath = new DOMXPath($doc);
$nodo = $xPath->query('//img[@src]');
foreach ($nodo as $nodo) {
$imgsrc = $nodo->getAttribute('src');
echo '<img src="' . $imgsrc . '">';
}
In molti casi questo già può bastare.
Alla funzione loadHtml passiamo il testo in HTML.
Sotto cerchiamo tutti i tag <img> e nel foreach cerchiamo l'attributo src.
Il problema può nascere nel caso in cui l'immagine sia salvata in base64: se dovete rappresentarla su una pagina nessun problema, ma se dovete passarla ad una libreria esterna (come TCPDF nel mio caso) allora posso sorgere problemi.
Abilitare i MIME Type in IIS 6
Dettagli- Dettagli
- Ultima modifica il Giovedì, 28 Febbraio 2013 12:27
- Pubblicato Giovedì, 28 Febbraio 2013 12:26
Ho un sito in PHP che gira su Windows Server 2003 con IIS 6.
Il problema è che la configurazione di base non riconosce alcuni tipi di file; ad esempio quelli di Office 2007 e successivi (.docx, .xlsx, .pptx,.....).
In sostanza succede che se clicchi su un un link che rimanda ad un file con queste estensioni, esce fuori un errore di pagina non trovata.
HTTPRequest con Python
Dettagli- Dettagli
- Categoria principale: Programmazione & Co.
- Ultima modifica il Lunedì, 04 Marzo 2013 13:50
- Pubblicato Mercoledì, 27 Febbraio 2013 13:32
Quello che vedremo oggi è come effettuare una richiesta HTTP a un file remoto tramite Python.
Abbiamo due modi distinti per farlo:
- usando il modulo httplib
- usando urllib2
Io uso la prima opzione; qui trovate la doc.
Notate subito che la libreria ha cambiato nome nella versione 3 di Python; noi in questo caso ci riferiamo alla versione 2.7.
Esportare una JList in Java
Dettagli- Dettagli
- Categoria principale: Programmazione & Co.
- Ultima modifica il Martedì, 26 Febbraio 2013 13:04
- Pubblicato Martedì, 26 Febbraio 2013 13:04
JList è un componente SWING che rappresenta una serie di oggetti sotto forma di lista.
Qui avevo spiegato come caricare una JLlist da una file XML per esempio.
Oggi vediamo come esportarli in formato TXT.
Inoltre integreremo utto con il solit JFileChooser per decidere dove salvare il file.
Prima di tutto nel vostro JFrame preparate l'evento che poi richiamerà il JFC (ad esempio un menu o un bottone).
Poi preparate il JFC; tipo questo:
import java.io.File;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;public class FileChooserTxt {
private static File f = null;
public static String salva() throws IOException {
JFileChooser fc = new JFileChooser();
fc.setDialogTitle("Save TXT");
fc.setApproveButtonText("Save");
fc.setApproveButtonToolTipText("Approve file");FileFilter txtFilter = new GenericFileFilter("File *.txt", "txt");
fc.setFileFilter(txtFilter);int returnVal = fc.showSaveDialog(fc);
if (returnVal == JFileChooser.APPROVE_OPTION) {
f = fc.getSelectedFile();
FileFilter selectedFilter = fc.getFileFilter();
if (f.getName().indexOf('.') == -1) {
f = new File(f.getPath() + ".txt");
}
}
return f.toString();
}
}
Qui ho messo un solo filtro perchè l'esportazione la faccio solo in TXT.
Parsing JSON in C++ con Rapidjson
Dettagli- Dettagli
- Categoria principale: Programmazione & Co.
- Ultima modifica il Domenica, 24 Febbraio 2013 13:32
- Pubblicato Domenica, 24 Febbraio 2013 13:32
Per fare il parsing di una struttra JSON in C++ ci stanno molte librerie; io mi sono buttato su Rapidjson.
La documentazione sul sito ufficiale non è proprio il massimo, ma nel complesso è abbastanza semplice da implementare e includere nel nostro progetto.
Scaricate la libreria e aggiungete la cartella rapidjson al progetto; dentro ci stanno diversi file .h.
Quello che faremo è usare CURL per prendere i dati da remoto, fare il cast di CURLcode in string, e infine parsare i dati JSON.
Cominciamo come al solito dal file di intestazione:
#ifndef READ_H
#define READ_H#include <iostream>
#include <curl/curl.h>
#include <iomanip>
#include "rapidjson/document.h"
#include "rapidjson/rapidjson.h"using namespace std;
using namespace rapidjson;extern "C" int readCurlHelper(char *data, size_t size, size_t nmemb, string *buffer);
class Read {
public:
Read();
virtual ~Read();
void read(string file);
size_t curlToString(char *data, size_t size, size_t nmemb, string *buffer);
private:
string response;
string url;
CURL *curl;
CURLcode res;
struct curl_slist *headers;
Document document;
};#endif
Rispetto all'ultimo articolo, abbiamo aggiunto le librerie rapidjson e un oggetto Document.
Scorciatoia da tastiera su Frame in wxPython
Dettagli- Dettagli
- Categoria principale: Programmazione & Co.
- Ultima modifica il Venerdì, 22 Febbraio 2013 13:01
- Pubblicato Venerdì, 22 Febbraio 2013 13:01
Oggi vediamo come impostare un evento da tastiera su Frame in wxPython.
Quello che vogliamo ottenere è la chiusura del programma premendo i classici Ctrl+Q.
Per fare questo dobbiamo usare l'oggetto AcceleratorTable, che ci permette appunto di specificare una scorciatoia da tastiera per un menu o per un comando.
Libri di informatica gratuiti
Dettagli- Dettagli
- Ultima modifica il Giovedì, 21 Febbraio 2013 14:49
- Pubblicato Giovedì, 21 Febbraio 2013 14:49
Ho trovato un sito interessante, in cui è possibile scaricare tantissimi libri di informatica gratuiti, e sopratutto in maniere legale!
Gli argomenti sono moltissimi, e soprattutto di programmazione e affini.
Ovviamente non si tratta di libri nuovissimi; io ne ho scaricati due sul C++ risalenti al 2010 e al 2009 (o giù di li).
Ma possono comunque risultare utili.
Altri libri, invece, sono liberamente scaricabili per un dato periodo di tempo, e quindi conviene tenerlo d'occhio.
Tab order in Qt
Dettagli- Dettagli
- Categoria principale: Programmazione & Co.
- Ultima modifica il Martedì, 19 Febbraio 2013 12:22
- Pubblicato Martedì, 19 Febbraio 2013 12:22
Piccolo trick sulle Qt.
Nella mia finestra principale avevo una QLineEdit e un QButton.
Poi ho aggiunto una QPlainTextEdit e mi è successo che dalla QLineEdit, premendo il tasto TAB, andavo a finire sulla QPlainTextEdit, e non sul QButton.
Per come era fatta questa piccola app non andava bene.
Per cambiare questo comportamento si può usare la funzione setTabOrder di QWidget.
Controllo esistenza file con Qt in C++
Dettagli- Dettagli
- Categoria principale: Programmazione & Co.
- Ultima modifica il Lunedì, 18 Febbraio 2013 19:23
- Pubblicato Lunedì, 18 Febbraio 2013 19:23
Oggi vediamo una piccola clase con una funzione per controllare l'esistenza di un file.
Il file lo cercheremo in più directory tanto per complicare un pò le cose.
Cominciamo con il file .h:
#ifndef CONTROLFILE_H
#define CONTROLFILE_H#include <QFile>
#include <QStringList>class ControlFile
{
public:
ControlFile();
virtual ~ControlFile();
bool checkFile(QString file);
};#endif // CONTROLFILE_H
Per i nostri scopi abbiamo importato i moduli QFile, che rappresenta i file, e QStringList che ci serve per costruire una lista di stringhe.
Da CURLcode a string in C++
Dettagli- Dettagli
- Categoria principale: Programmazione & Co.
- Ultima modifica il Domenica, 17 Febbraio 2013 17:33
- Pubblicato Domenica, 17 Febbraio 2013 17:33
In questo articolo abbiamo introdotto l'uso di CURL in C++ facendo un esempio di base.
In genere però é più probabile dover trasformare la risposta che ci arriva come oggetto CURLcode, ad esempio in string perchè poi processata.
Ad esempio se ci arriva in JSON (come nel mio caso).
Quindi dobbiamo convertire CURLcode in string.
Per farlo dobbiamo apportare un pò di modifiche; cominciamo dal file .h:
#ifndef READ_H
#define READ_H#include <iostream>
#include <curl/curl.h>using namespace std;
extern "C" int readCurlHelper(char *data, size_t size, size_t nmemb, string *buffer);
class Read {
public:
Read();
virtual ~Read();
void read(string file);
size_t curlToString(char *data, size_t size, size_t nmemb, string *buffer);
private:
string response;
string url;
CURL *curl;
CURLcode res;
struct curl_slist *headers;
};#endif
Abbiamo aggiunto due funzioni, una interna che si occupa di costruire la stringa, e una esterna che si occupa della conversione.
Identificare i gruppi dell'utente in Linkedin con Javascript
Dettagli- Dettagli
- Categoria principale: Programmazione & Co.
- Ultima modifica il Venerdì, 15 Febbraio 2013 12:17
- Pubblicato Venerdì, 15 Febbraio 2013 12:11
Nel precedente articolo avevamo visto come autenticarsi su Linkedin tramite Javascript.
A quelle funzioni la adesso aggiungiamo anche la lista di tutti i gruppi a cui è iscritto l'utente.
Partiremo dal contenuto di questo articolo e aggiungeremo nuove funzioni.
Ricordo che tutto ciò lo facciamo sempre tramite Javascript.


