2013-02-14 4 views
10

У меня есть страница, которая отображает информацию об объекте, основанном на уникальном идентификаторе от url, ищем базу данных mysql для этого идентификатора, получая всю информацию из этой строки и т. Д., Довольно стандартно.Как сгенерировать HTML-страницу динамически с помощью PHP?

Мне было интересно, если/как я могу «создать» страницу html для каждой строки базы данных, так как я предполагаю, что это будет лучше для SEO? Наличие нескольких страниц с ключевыми словами вместо одной динамической страницы?

Мои свойства добавляются в базу данных по форме/системе загрузки на сайте, я думал, что создание страницы при загрузке может быть проще всего, но я открыт для предложений!

+0

звучит, как вам нужно CMS вместо –

+3

им попытки (вроде) создать свою собственную, больше для изучения, чем что-либо – rpsep2

+0

, какой язык вы используете для программирования веб-страниц? – Pete

ответ

17

мне было интересно, если/как я могу " создать 'страницу html для каждой строки базы данных?

Вам просто нужно создать файл php, который генерирует шаблон html, какие изменения будут текстовым контентом на этой странице. На этой странице вы можете получить параметр (например, идентификатор строки) через POST или GET, а затем получить информацию из базы данных.

Я предполагаю, что это было бы лучше для SEO?

Search Engine в Google истолковать, что example.php?id=33 и example.php?id=44 разные страницы, и да, этот путь лучше, чем одной страницы листинга с точкой SEO зрения, так что вам просто нужны два PHP файлов, по крайней мере (listing.php и single.php), потому что лучше связывать эти страницы с listing.php.

Дополнительный совет:

example.php?id=33 действительно некрасиво и не очень SEO Friendly, возможно, вам понадобится URL переписывания кода. Что-то вроде example/properties/property-name лучше;)

+1

принял это, поскольку он дает дополнительную информацию, которая полезна, спасибо, плохо попробуйте что-то из этого, когда я вернусь домой – rpsep2

7

В соответствии с вашим требованием вам не нужно генерировать динамическую страницу html. Это можно сделать с помощью файла .htaccess.

Тем не менее, этот пример кода для генерации 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"); 
?> 

вы можете создать любое .html, .php файл просто изменить расширение, в имени файла

3

Вам не нужно создавать какую-либо динамическую страницу html, просто используйте файл .htaccess и перепишите URL-адрес.

13

Только в случае, если кто-то хочет создать/создать реально 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); 

Наслаждайтесь!

+0

У меня есть документ, где он напечатает документ 'html'. Наряду с документом 'html' в него входят переменные из основного документа' php'. Как распечатать переменные из основного документа php в динамически созданный документ 'html'? –

1

Я предлагаю вам использовать URL-код перезаписи, достаточный для вашей проблемы, у меня такая же проблема, но с использованием мода перезаписи URL и получения хорошего ответа от SEO. Я могу привести небольшой пример. Пример состоит в том, что вы рассматриваете WordPress, здесь данные хранятся в базе данных, но с использованием URL rewrite mod многие веб-сайты WordPress получают хорошие ответы от Google и получают звание.

Пример: wordpress url с отсутствующим URL-адресом переписать mod - domain.com/?p=123 после перезаписи URL-адреса - домена.ком/{название статьи} как domain.com/seo-url-rewrite-mod

я думаю, вы поняли, что я хочу сказать вам

0

Я просто обновить код, чтобы содержать изменения, и комментировать его, так что вы можете увидеть, что происходит ясно ...

<?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

я работаю вид похож на это и у меня есть некоторый код, который может помочь вам. Живой пример: here и ниже, это код, который я использую для вас, чтобы иметь его в качестве ссылки.

создать-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'); 

?> 

Хоуп этот файл может помочь и работать в качестве ссылки, чтобы начать и увеличить свой проект.

0

Это выглядит смешно, но оно работает.

<?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); 
?> 
Смежные вопросы