Я создаю веб-сайт для продуктов. Мне интересно: лучше ли использовать одну динамическую страницу с помощью PHP или создавать HTML-страницу для каждого продукта, обновляя страницы из файла шаблона php в задании cron? Большинство материалов на странице (например, информация о базовых продуктах) со временем не изменятся, но другие части страницы будут созданы из поиска базы данных (инвентаризация, обзоры и т.д.).
Я слышал, как некоторые люди утверждают, что лучше использовать статический URL (например, category/product1.html) вместо динамических (например, product.php? id = 1234) для целей SEO. Проблема, которую я обнаружил с помощью прежнего метода, заключается в том, что неудобно выполнять поиск базы данных с HTML-страницы. Способ, которым я его реализовал, - использовать javascript- > php:
<script type="text/javascript" src="http://localhost/inv_lookup.php?UPC=<?php echo $UPC; ?>"></script>
Но тогда в файле PHP вам нужно напечатать текст в формате javascript:
echo "document.write(\"" . $field . " : <b>" . $row[$i] . "</b> <br/> \")";
Этот вид поиска в БД кажется мне неаккуратным. Любые предложения?
Предложения:
В качестве окончательного предложения: я бы заглянул в то, какие основные платформы, решения CMS и eCommerce реализованы как кеш, есть много ошибок, которые вы можете сделать, и большинство из них уже решены.
1) Не обновляйте статические html-страницы cron и php. Это просто безумный разговор.
2) Используйте синтаксис heredoc, если вы хотите, чтобы более простая интерполяция переменных:
echo <<<EOF
this is a {$row['0']} and a "$varable" for you. oh yeah don't forget the '
EOF;
Нет причин, по которым вы не можете сделать это как один .php файл. С помощью соответствующих правил mod_rewrite вы можете динамически переназначить example.com/products/1234
в example.com/product.php?id=1234
URL внутри.
И если вы действительно ненавидите публикацию PHP, вы всегда можете настроить веб-сервер для обработки файлов .html как PHP-скриптов (AddHandler php5-script .html
).
Что касается печати "текста в формате javascript", проще использовать JSON для "форматирования" для вас:
<?php
$product = array('name' => 'Deluxe Widget', 'id' => 1234);
?>
<script type="text/javascript">
var product = <?php echo json_encode($product) ?>;
document.write(product.name + ': <b>' + product.id + '</b><br />');
</script>