2013-02-14 21 views
10

Ho una pagina che mostra informazioni su una proprietà, basata sull'ID univoco dall'URL, cercando nel database mysql quell'ID, ottenendo tutte le informazioni da quella riga ecc., Abbastanza standard in realtà.Come generare una pagina HTML in modo dinamico usando PHP?

Mi chiedevo se/come posso 'creare' una pagina html per ogni riga del database, come presumo che sarebbe meglio per il SEO? Avere più pagine con parole chiave su piuttosto che una pagina dinamica?

Le mie proprietà vengono aggiunte al database da un sistema di form/upload sul sito, stavo pensando di creare la pagina in upload potrebbe essere più semplice, ma sono aperto ai suggerimenti!

+0

suona come avete bisogno di un CMS, invece –

+3

im tentativo di (quasi) creare il mio, di più per l'apprendimento di ogni altra cosa – rpsep2

+0

quale lingua stai usando per programmare le pagine web? – Pete

risposta

17

mi chiedevo se/come posso ' creare 'una pagina html per ogni riga di database?

Hai solo bisogno di creare un file php che generi un modello html, ciò che cambia è il contenuto basato su testo su quella pagina. In questa pagina è possibile ottenere un parametro (ad esempio ID riga) tramite POST o GET e quindi ottenere le informazioni dal database.

Suppongo che sarebbe meglio per il SEO?

motore di ricerca come Google interpretare che example.php?id=33 e example.php?id=44 sono diverse pagine, e si, in questo modo è meglio di pagina elenco unico dal punto di vista SEO, in modo che solo bisogno di due file PHP almeno (listing.php e single.php), perché è meglio collegare queste pagine dallo listing.php.

consiglio Extra:

example.php?id=33 è davvero brutto e non molto SEO friendly, forse avete bisogno di qualche url riscrivere il codice. Qualcosa come example/properties/property-name è meglio;)

+1

accettato questo dato che fornisce alcune informazioni extra che è utile, grazie, provate un po 'di questo quando arrivo a casa – rpsep2

7

Secondo le vostre esigenze non è necessario generare una pagina html dinamicamente. Può essere fatto con il file .htaccess .

Comunque questo è il codice di esempio per generare pagina HTML

<?php 

$filename = 'test.html'; 
header("Cache-Control: public"); 
header("Content-Description: File Transfer"); 
header("Content-Disposition: attachment; filename=$filename"); 
header("Content-Type: application/octet-stream; "); 
header("Content-Transfer-Encoding: binary"); 
?> 

è possibile creare qualsiasi html, file di .php basta cambiare estensione nel nome del file

3

Non è necessario generare alcuna pagina HTML dinamica, basta usare il file .htaccess e riscrivere l'URL.

13

in caso qualcuno vuole generare/creare file effettivo HTML ...

$myFile = "filename.html"; // or .php 
$fh = fopen($myFile, 'w'); // or die("error"); 
$stringData = "your html code php code goes here"; 
fwrite($fh, $stringData); 
fclose($fh); 

Enjoy!

+0

Ho un documento dove stamperà un documento 'html'. Insieme al documento 'html' vengono fornite variabili dal documento principale' php'. Come posso stampare variabili dal documento php principale al documento 'html' creato dinamicamente? –

1

Ti suggerisco di utilizzare la modalità di riscrittura URL è sufficiente per il tuo problema, ho lo stesso problema ma utilizzo la mod di riscrittura degli URL e ottenere una buona risposta SEO. Posso darti un piccolo esempio. L'esempio è che consideri WordPress, qui i dati sono archiviati nel database ma usando la riscrittura degli URL di molti siti web di WordPress ottenendo buone risposte da Google e ottenuto anche il rango.

Esempio: wordpress url senza url riscrittura mod - domain.com/?p=123 dopo la modalità di riscrittura degli URL - dominio.com/{titolo dell'articolo} come domain.com/seo-url-rewrite-mod

penso che tu abbia capito quello che voglio dire che

0

mi limiterò a aggiornare il codice per contenere le modifiche, e commento a modo che si può vedere cosa sta succedendo in modo chiaro ...

<?php 
include("templates/header.htm"); 

// Set the default name 
$action = 'index'; 
// Specify some disallowed paths 
$disallowed_paths = array('header', 'footer'); 
if (!empty($_GET['action'])) { 
    $tmp_action = basename($_GET['action']); 
    // If it's not a disallowed path, and if the file exists, update $action 
    if (!in_array($tmp_action, $disallowed_paths) && file_exists("templates/{$tmp_action}.htm")) 
     $action = $tmp_action; 
} 
// Include $action 
include("templates/$action.htm"); 

include("templates/footer.htm"); 
0

ho lavorato sorta di simile a questo e ho qualche codice che potrebbe aiutare. L'esempio dal vivo è here e sotto, è il codice che sto usando per averlo come riferimento.

creare-page.php

<?php 

// Session is started. 
session_start(); 

// Name of the template file. 
$template_file = 'couples-template.php'; 

// Root folder if working in subdirectory. Name is up to you ut must match with server's folder. 
$base_path = '/couple/'; 

// Path to the directory where you store the "couples-template.php" file. 
$template_path = '../template/'; 

// Path to the directory where php will store the auto-generated couple's pages. 
$couples_path = '../couples/'; 

// Posted data. 
$data['groom-name'] = str_replace(' ', '', $_POST['groom-name']); 
$data['bride-name'] = str_replace(' ', '', $_POST['bride-name']); 
// $data['groom-surname'] = $_POST['groom-surname']; 
// $data['bride-surname'] = $_POST['bride-surname']; 
$data['wedding-date'] = $_POST['wedding-date']; 
$data['email'] = $_POST['email']; 
$data['code'] = str_replace(array('/', '-', ' '), '', $_POST['wedding-date']).strtoupper(substr($data['groom-name'], 0, 1)).urlencode('&').strtoupper(substr($data['bride-name'], 0, 1)); 

// Data array (Should match with data above's order). 
$placeholders = array('{groom-name}', '{bride-name}', '{wedding-date}', '{email}', '{code}'); 

// Get the couples-template.php as a string. 
$template = file_get_contents($template_path.$template_file); 

// Fills the template. 
$new_file = str_replace($placeholders, $data, $template); 

// Generates couple's URL and makes it frendly and lowercase. 
$couples_url = str_replace(' ', '', strtolower($data['groom-name'].'-'.$data['bride-name'].'.php')); 

// Save file into couples directory. 
$fp = fopen($couples_path.$couples_url, 'w'); 
fwrite($fp, $new_file); 
fclose($fp); 

// Set the variables to pass them to success page. 
$_SESSION['couples_url'] = $couples_url; 
// If working in root directory. 
$_SESSION['couples_path'] = str_replace('.', '', $couples_path); 
// If working in a sub directory. 
//$_SESSION['couples_path'] = substr_replace($base_path, '', -1).str_replace('.', '',$couples_path); 

header('Location: success.php'); 

?> 

Spero che questo file può aiutare e lavorare come riferimento per avviare e amplificare il vostro progetto.

0

Sembra divertente ma funziona.

<?php 
$file = 'newpage.html'; 
// Open the file to get existing content 
$current = file_get_contents($file); 
// Append a new person to the file 
$current .= "<!doctype html><html> 
<head><meta charset='utf-8'> 
<title>new file</title> 
</head><body><h3>New HTML file</h3> 
</body></html> 
"; 
// Write the contents back to the file 
file_put_contents($file, $current); 
?> 
Problemi correlati