【问题标题】:Shared data multiple sites多个站点共享数据
【发布时间】:2009-03-25 17:18:25
【问题描述】:

我最近在一家大公司担任 php Web 开发人员的职位。他们有多个网站共享大部分相同的内容(主要是新闻文章)。尽管所有站点都是用 PHP 编写的,但内容是静态的,并且在添加新闻文章或更改其他信息时在所有站点上手动编辑。那里的“高级程序员”出于某种原因反对使用 cms,反对升级到 php 5,反对安装 mod_rewrite,基本上我必须在一个非常小的参数内工作。

我花了前 3 周的时间编写了一大堆课程,以使混乱变得理智,但我必须找到一种方法以简单的方式复制这些数据。我在想一些不需要数据库的东西(负责人不想分散数据,所以除了 Intranet 以外的任何地方的数据库都是不行的),我只想要一个集中的 XML 文件或其他东西,即使我需要手动编辑它...有什么想法吗???

【问题讨论】:

  • 是的...解雇那个所谓的“高级程序员”...他的额头上写满了“我是一个伪装的初级程序员”。
  • 所以“负责人”不想要数据库,但是包含数据库将包含的相同数据的 XML 文件可以吗?
  • 请将这项工作的全部细节发送至thedailywtf.com
  • 提醒 ole'“它可以工作,不要碰它,它可能会损坏,否则你会搞砸”编程方法。可悲的是,有些人就是不喜欢工作。祝你好运。
  • 谢天谢地我正在取得进展..

标签: php php4


【解决方案1】:

将 PHP 视为模板引擎,并让所有主页从一个站点的 RSS 提要中提取标记为 html(或 xml)的文章。

编辑提要以添加新文章,将标记的文章添加到主站点,这一切都非常非常简单,易于理解,并且可以扩展。

无需涉及“真正的”cms、数据库或任何东西。

-亚当

【讨论】:

  • 然后,您可以轻松地为那些拥有提要阅读器的人提供 RSS 提要。不错的解决方案! +1
  • 这是我最初的想法,尽管我作为开发人员在 rss 方面的经验为零
  • rss 只是一个非常简单的 xml 链接文件。如果你想习惯它,你可以在开始使用工具之前手动编辑它几次。
  • 谢谢大佬,我整理好了,用magpie读取静态xml文件,我需要不定期更新..
【解决方案2】:

为您的网站使用的所有文档使用一个文件夹。

【讨论】:

  • 大约 6 个不同的站点.. 2 种不同的语言,这 = 每次我需要添加一些东西时都会有 12 种不同的变化..
【解决方案3】:

您可以使用CURL 通过 HTTP 访问您需要的内容。将 CURLOPT_RETURNTRANSFER 选项设置为 1 将允许您获取您想要的任何内容。 XML、HTTP 等。

【讨论】:

    【解决方案4】:

    拥有一个主站点,在其上创建和编辑原始内容。

    在所有其他情况下,使用 .htaccess 中的 Apache ErrorDocument 处理程序将 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"); 回声 $master_html; } 别的 { header("HTTP/1.0 404 Not Found"); }

    重复的内容仍会在请求的 url 下。

    【讨论】:

    • 并非所有网站都有基本必需品,例如 AllowOverride 指令
    【解决方案5】:

    如果高级程序员反对行业标准工具,例如 CMS、PHP5(至少在考虑反对 PHP3/PHP4 时 - 不需要语言圣战)、mod_rewrite 等,那么是时候让管理参与进来了。这种态度是不能接受的。

    【讨论】:

    • 我还在试用期,就冲突而言,我正在努力保持低调..
    • 在试用期的第一周,我努力放弃了 Joomla,转而使用 Drupal,而且效果很好。有一点冲突不一定是坏事,尤其是当你显然是正确的时候。
    猜你喜欢
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 2016-11-23
    • 1970-01-01
    • 2012-07-07
    • 2011-04-14
    相关资源
    最近更新 更多