如何更改PHP代码动态生成的HTML页面标题

时间:2016-08-30 13:04:25

标签: php

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

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

更清楚:

  1. 尝试将%TITLE%替换为$Oneline
  2. $Oneline是txt文件的第一行。
  3. 感谢您的帮助。

    <?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 );
            ...?>
    

3 个答案:

答案 0 :(得分:2)

请查看preg_replace(),参数

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

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

<强>更新 我现在想到两种解决方案:

  1. 不是直接将文本写入文件,而是将其写入 而是一个变量。可以通过搜索此变量 preg_replace()您可以动态更改标题。后 你这样做了,通过例如将变量写入目标文件中。 fputs()
  2. 在编写标题部分时,不要直接替换标题,而是将标题直接设置在需要的位置。比没有必要更换。
  3. 我会推荐解决方案之一。你知道怎么做吗?

答案 1 :(得分:0)

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

答案 2 :(得分:0)

在我无法解决问题之后,我将检索数据循环移到了title的上方,而Aaron 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");
...?>