Как сгенерировать HTML-страницу динамически с помощью PHP?

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

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

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

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

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

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

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

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

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

На всякий случай кто-то хочет создать / создать фактический 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); 

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

В соответствии с вашим требованием вам не нужно генерировать динамическую страницу 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, просто изменив расширение в имени файла

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

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

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

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

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

 <?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"); в <?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"); в <?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"); 

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

создание-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'); ?> 

Надеюсь, этот файл может помочь и работать как ссылка на запуск и продвижение вашего проекта.

Это выглядит забавно, но это работает.

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