【问题标题】:How to change the HTML page title dynamically generated by PHP code如何更改PHP代码动态生成的HTML页面标题
【发布时间】:2016-08-30 13:04:25
【问题描述】:

我的 PHP 代码正在从 495 个 txt 文件生成 495 个 HTML 页面并且工作正常。但是现在,我正在尝试将其更改为动态更改标题标签值的一种方式;所以我试图用$Oneline替换%TITLE%,这是每个txt页面的第一行。

我尝试了许多语法,例如prg_replacestr_replace,而且似乎都没有成功。事实上,这些代码行在我的 HTML 页面上没有任何改变。

为了更清楚:

  1. 尝试将%TITLE% 替换为$Oneline
  2. $Oneline是txt文件的第一行。

感谢您的帮助。

<?php
for ($i = 1; $i <= 495; $i++)
{$j = 1;
$SousrceFile = @fopen($SousrceFile, 'r') ;
$TargetFile = fopen($TargetFile, 'w+') ;
fwrite($TargetFile, "<title>%TITLE%</title>\n");
    while ($Oneline = @fgets($SousrceFile, 4096)) 
    {$j = $j + 1;
        if (strlen($Oneline) !==0)
        {
        $title = $Oneline;
        $newTitle = preg_replace('%TITLE%',  $title, $newTitle,1 );
        ...?>

【问题讨论】:

  • @KarthiVenture,我已经尝试过了,也许是因为我没有包含 HEADER,而是通过 PHP 生成它,它不是那样工作的。
  • 你能echo你的代码,而你得到价值/不是吗??
  • 是的,我做了回显,结果是所有的txt文件行。
  • 我认为问题是从 txt 文件中检索数据。您只需使用获取值进行测试并应用到没有文件概念的标题。

标签: php


【解决方案1】:

请看preg_replace(),参数是

preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

在您的代码中,您使用变量$title$newTitle 中的模式替换为限制为一。我想你想替换目标文件中的文本。

更新: 我现在想到了两种解决方案:

  1. 不要将文本直接写入文件,而是将其写入 一个变量。这个变量可以通过 preg_replace() 并且您可以动态更改您的标题。后 你这样做了,将变量写入目标文件,例如 fputs()
  2. 在编写标题部分时,直接在需要的位置设置标题,而不是替换标题。比没有必要更换。

我会推荐解决方案一。你知道怎么做吗?

【讨论】:

  • 是的,它正在生成目标文件,我正在尝试在目标文件上动态设置标题。
  • 所以你自己说,你得把目标文件中的行改一下,或者最好先把数据写入目标文件。
  • 正如我所说的 PHP 文件正在创建、生成并将内容写入 HTML 文件(主要不存在的目标文件),所以我无法对目标文件做任何事情。是的,最好将标题动态写入目标文件,这就是我想要做的,但失败了。
  • 我已经完成了解决方案 2,因为我在下面回答了我自己的问题,谢谢。
【解决方案2】:

据我所知,$newTitle 没有在 pre_replace 之前定义。

【讨论】:

    【解决方案3】:

    在我无法解决问题后,我将检索数据循环移到了titleAaron suggested at this post 的上方,它让它变得很简单,如下所示:

    <?php
    for ($i = 1; $i <= 495; $i++)
    {$j = 1;
    $SousrceFile = @fopen($SousrceFile, 'r');
    $TargetFile = fopen($TargetFile, 'w+');
    while ($Oneline = @fgets($SousrceFile, 4096)) 
    {$j = $j + 1;
    if (strlen($Oneline) !==0)
    $title = $Oneline;
    fwrite($TargetFile, "<title>{$title}</title>\n");
    ...?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-30
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多