March 16
Gli effetti di un trasferimento del contenuto di server Web da file system piatte in banche dati sono varie e dipendono dalle dimensioni e dal tipo di dati che vengono memorizzati. Convertire i file pagina web in un database utilizzando MySQL e PHP.
1 Creare una tabella di database. La tabella ha bisogno di un "nome" e il campo "Dati". Utilizzare il tipo di "blob" per i dati, come il contenuto del file devono essere conservati in formato binario.
CREATE TABLE web2db
(
name
varchar (255) NOT NULL,
data
blob NOT NULL,
PRIMARY KEY ( name
)
);
2 Creare un file PHP per memorizzare le pagine nel database. Questo esempio utilizza "convert.php."
3 Creare una funzione nel file PHP per la connessione al database MySQL. Utilizzare i valori per il percorso del server, il nome utente e la password al posto dei seguenti sostitutivi.
funzione Collega database () {
return mysql_connect(DB_SERV,DB_USER,DB_PASS);
}
4 Creare una funzione che memorizza i dati da una pagina web nel database. Utilizzare il nome del database al posto del segnaposto per mysql_select_db.
Funzione dbWrite ($ nome, $ data) {
$dbs = dbConnect();
$ Name = mysql_real_escape_string ($ name);
$ Data = mysql_real_escape_string ($ data);
mysql_select_db (DB_NAME);
mysql_query ( "INSERT INTO web2db (nome, dati) VALORI ( '$ name', '$ data')");
mysql_close ($ db);
}
5 Creare una funzione che cercherà la directory corrente per i file e aggiungerli al database. L'esempio ricerca solo HTML nella directory corrente, ma può essere facilmente modificato per la ricerca di altri tipi di file e di sottodirectory di ricerca.
FindFiles function () {
$dirStream = opendir(".");
while ($ nextfile = readdir ($ dirStream)) $ dirArray [] = $ nextfile;
closedir ($ dirStream);
foreach ($ dirArray da $ thisFile) {
if (substr ($ thisFile, -4) == && substr ($ thisFile, -5) ==! "htm."! "html".) continua;
$ data = file_get_contents ($ thisFile);
dbWrite ($ thisFile, $ data);
}
}
6 Chiamare la funzione FindFiles alla fine del file PHP. L'intero contenuto del codice di esempio per la pagina sono riportati di seguito.
<?
funzione Collega database () {
return mysql_connect(DB_SERV,DB_USER,DB_PASS);
}
Funzione dbWrite ($ nome, $ data) {
$dbs = dbConnect();
$ Name = mysql_real_escape_string ($ name);
$ Data = mysql_real_escape_string ($ data);
mysql_select_db (DB_NAME);
mysql_query ( "INSERT INTO web2db (nome, dati) VALORI ( '$ name', '$ data')");
mysql_close ($ db);
}
FindFiles function () {
$dirStream = opendir(".");
while ($ nextfile = readdir ($ dirStream)) $ dirArray [] = $ nextfile;
closedir ($ dirStream);
foreach ($ dirArray da $ thisFile) {
if (substr ($ thisFile, -4) == && substr ($ thisFile, -5) ==! "htm."! "html".) continua;
$ data = file_get_contents ($ thisFile);
dbWrite ($ thisFile, $ data);
}
}
FindFiles ();
?>
7 Passare al file PHP in un browser Web per eseguire lo script. Controllare i contenuti del database per assicurarsi che ha funzionato.
8 Creare un altro file PHP per visualizzare le pagine memorizzate nel database. Si può semplicemente chiamare "index.php".
9 Verificare se una variabile "pagina" è stato passato allo script, che è come si dirà allo script quale file per recuperare dal database. In caso contrario, impostarlo su un valore predefinito. L'esempio utilizza "index.html".
$ Page = (isset ($ _ GET [ 'pagina']) $ _GET [ 'pagina']:? "Index.html");
10 Utilizzare la stessa funzione dal file PHP per la connessione al database.
funzione Collega database () {
return mysql_connect(DB_SERV,DB_USER,DB_PASS);
}
11 Scrivere una funzione che leggerà i dati dal database e restituirlo. La funzione restituisce false se la pagina non può essere trovata. Ricordatevi di cambiare mysql_select_db di utilizzare il nome del database corretto.
funzionare dbRead ($ name) {
$dbs = dbConnect();
$ Name = mysql_real_escape_string ($ name);
mysql_select_db (DB_NAME);
$ Risultato = mysql_query ( "SELECT dati da web2db WHERE name = '$ name'");
if (! $ risultato) {mysql_close ($ db); return false; }
if (mysql_num_rows ($ risultato) == 0) {mysql_close ($ db); return false; }
$ Risultato = mysql_result ($ risultato, 0);
mysql_close ($ db);
return $ risultato;
}
12 Utilizzare la funzione dbRead per andare a prendere la pagina dal database.
$ PageData = dbRead ($ page);
13 Verificare se la funzione dbRead restituito dati della pagina. Se è così, visualizzare il contenuto della pagina. In caso contrario, visualizza un messaggio di errore. L'intero contenuto di index.php sono al di sotto.
<?
$ Page = (isset ($ _ GET [ 'pagina']) $ _GET [ 'pagina']:? "Index.html");
funzione Collega database () {
return mysql_connect(DB_SERV,DB_USER,DB_PASS);
}
funzionare dbRead ($ name) {
$dbs = dbConnect();
$ Name = mysql_real_escape_string ($ name);
mysql_select_db (DB_NAME);
$ Risultato = mysql_query ( "SELECT dati da web2db WHERE name = '$ name'");
if (! $ risultato) {mysql_close ($ db); return false; }
if (mysql_num_rows ($ risultato) == 0) {mysql_close ($ db); return false; }
$ Risultato = mysql_result ($ risultato, 0);
mysql_close ($ db);
return $ risultato;
}
$ PageData = dbRead ($ page);
echo (? $ pageData $ pageData: ". Pagina non trovata");
?>
14 Accedere a index.php in un browser Web per assicurarsi che si carichi correttamente. Se si desidera recuperare il contenuto del example.php, si dovrebbe passare a:? Page = convert.php example.php.