Общие данные нескольких сайтов - PullRequest
0 голосов
/ 25 марта 2009

Недавно я занял должность веб-разработчика php в крупной фирме. У них есть несколько сайтов, которые разделяют большую часть одного и того же контента (в основном, новостные статьи). Несмотря на то, что все сайты написаны на PHP, их содержимое статично и редактируется вручную на всех сайтах при добавлении новостной статьи или изменении другой информации. «Старший программист» против использования по какой-то причине cms, против обновления до php 5, против установки mod_rewrite, в основном мне приходится работать с очень маленьким параметром.

Первые 3 недели я потратил на написание целого ряда уроков, чтобы привести в порядок какой-то здравый смысл, но мне нужно найти способ легко воспроизвести эти данные. Я думаю, что-то без необходимости базы данных (руководитель не хочет децентрализовать данные, поэтому базы данных в любом месте, кроме интрасети, нет-нет), я просто хочу централизованный файл XML или что-то, даже если мне нужно вручную редактировать это ... какие-либо идеи ???

Ответы [ 5 ]

1 голос
/ 25 марта 2009

Рассматривайте PHP как шаблонизатор, и все основные страницы извлекают статьи с пометкой html (или xml) из ленты RSS с одного сайта.

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

Нет необходимости задействовать «настоящие» cms, базу данных или что-либо еще.

-Adam

0 голосов
/ 25 марта 2009

Если старший программист против стандартных отраслевых инструментов, таких как CMS, PHP5 (по крайней мере, если рассматривать PHP3 / PHP4 - нет необходимости в священной языковой войне), mod_rewrite и т. Д., Пришло время задействовать управление. Такое отношение недопустимо.

0 голосов
/ 25 марта 2009

Иметь один мастер-сайт, на котором создается и редактируется оригинальный контент.

Во всех остальных случаях используйте обработчик Apache ErrorDocument в .htaccess для маршрутизации ошибок 404 в новый скрипт php.

ErrorDocument 404 /syndicate.php

В syndicate.php возьмите uri (из $ _SERVER ['REQUEST_URI']), извлеките содержимое из исходного домена и выведите его с заголовком 200 / OK (поэтому он не отображается как 404). *

$master_domain = 'http://master.com';

$master_html = file_get_contents($master_domain . $_SERVER['REQUEST_URI']);

if($master_html != '') {
header("HTTP/1.0 200 OK");
echo $master_html;
} else {
header("HTTP/1.0 404 Not Found");
}

Дубликат будет по-прежнему находиться под запрошенным URL.

0 голосов
/ 25 марта 2009

Вы можете использовать CURL для доступа к тому, что вам нужно через HTTP. Установив для параметра CURLOPT_RETURNTRANSFER значение 1, вы сможете получить любой контент, который вам нравится. XML, HTTP и т. Д.

0 голосов
/ 25 марта 2009

Пользовательская папка для всех документов, которые используют ваши сайты.

...