Come convertire pagine Web a un database

March 16

Come convertire pagine Web a un database


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.

istruzione

Conversione di pagine su Database

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.

Mostra delle pagine web

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.

Consigli e avvertenze

  • In generale, le pagine web più grandi sarà più efficiente come un database mentre le pagine più piccoli avranno più tempo per leggere che se fossero memorizzati come file.