【问题标题】:Parse whole html document and replace specific parts of it automatically PHP解析整个 html 文档并自动替换其中的特定部分 PHP
【发布时间】:2011-01-12 10:22:12
【问题描述】:

您好,

我在之前的问题中进行了快速搜索,但没有找到适合我的问题的适当答案。

我创建了一个函数,它在数组库中查找单词并用指向单词描述的链接替换它们。

例子:

$words = array("ANTIM","APDIV","APVEG","ARCHE","ARFEU","ARMUR",
"ARSUP","ARTHE","ARTIL","ASSOM","ATTSU","BANQU","BARDE","BRICO",
"CAMOU","CHANC","CHAOM");

当我调用我的函数时,replace_text($someString)。我在文本中搜索这些词。虽然这些词在我网站的几个页面中,都需要链接到相应的描述。我制作该功能是为了使流程自动化而不是手动编写链接。

所以当我打电话时:

replace_text("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis ultrices congue condimentum. Integer tempor aliquam ARFEU nisi at adipiscing. Vivamus ornare consequat metus. Nulla mollis lacus sit amet dolor rutrum sollicitudin. Maecenas sit amet nibh ut turpis bibendum rutrum et a tellus. Fusce a tortor a lacus feugiat gravida. Suspendisse elementum hendrerit urna ut viverra. Pellentesque ARCHE auctor, metus vitae lobortis vestibulum, justo ligula ultrices magna, vitae blandit mauris sapien eu velit. Nullam dapibus tristique orci, ac ullamcorper lectus venenatis ARTIL non. Nulla laoreet laoreet pretium.")

这将被替换为:

"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis ultrices congue condimentum. Integer tempor aliquam <a href="somelink">ARFEU</a nisi at adipiscing. Vivamus ornare consequat metus. Nulla mollis lacus sit amet dolor rutrum sollicitudin. Maecenas sit amet nibh ut turpis bibendum rutrum et a tellus. Fusce a tortor a lacus feugiat gravida. Suspendisse elementum hendrerit urna ut viverra. Pellentesque <a href="somelink">ARCHE</a auctor, metus vitae lobortis vestibulum, justo ligula ultrices magna, vitae blandit mauris sapien eu velit. Nullam dapibus tristique orci, ac ullamcorper lectus venenatis <a href="somelink">ARTIL</a> non. Nulla laoreet laoreet pretium."

(从数组中找到的单词被替换为锚点。)

最后,我希望调用我的函数,但通过在加载时自动在我的整个页面(html 代码)中搜索。我认为这可以用 PHP 的 domDocument 部分完成,但我不习惯,请您指导我吗?

【问题讨论】:

  • 加载时自动是什么意思?即使页面没有调用它,您希望该函数运行吗?
  • 也许我不清楚,这是我要归档的内容: 1-在加载页面时替换整个 html 文档中的文本。我目前遇到的困难:1-如何检索当前页面的全部内容2-如何通过我使用str_replace()的简单函数来解析这些内容
  • 如果你想要当前页面,你会把函数放在哪里?整个内容不包括功能本身吗?是否要将文档请求重定向到解析请求文档然后输出的另一个脚本?我们需要知道您的 HTTP 服务器才能就此提供建议。
  • 我运行一个 Apache 服务器,你是对的,我从来没有想过如何调用该函数。我虽然有一个 PHP 类,它会包含在每个页面上.. 但这根本行不通。也许最好的方法是手动解析文件:)

标签: php html replace parsing document


【解决方案1】:

听起来你需要ob_start()

你可以创建你的函数,比如说

 function call_back_addLinks($buffer){
    //do your magic and replace
    //words with links in $buffer
    //then return the new String
 }

然后:

 ob_start("call_back_addLinks");

然后你的正常PHP代码生成正常的内容。也就是说,您的整个页面都在这里。

然后:

 ob_end_flush();

链接有一个简单的例子。

【讨论】:

  • 我会试试这个方法......虽然我想我找到了一个简单的出路。我可以使用以下内容: $content = file_get_contents('./my-content-page.html', FILE_USE_INCLUDE_PATH); echo my_replace_text_function($content);这似乎工作正常......我会测试并通知你!
猜你喜欢
  • 2014-11-28
  • 1970-01-01
  • 1970-01-01
  • 2012-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-13
  • 1970-01-01
相关资源
最近更新 更多