我的PHP代码从495个txt文件生成495个HTML页面并且正常工作。但是现在,我正在尝试将其更改为一种动态更改title标签值的方法;所以我正在尝试将%TITLE%
替换为$Oneline
,这是每个txt页面的第一行。
我尝试了许多语法,例如prg_replace
,str_replace
等等,所有这些语法似乎都不成功。事实上,这些代码行在我的HTML页面上没有任何改变。
更清楚:
%TITLE%
替换为$Oneline
。$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 );
...?>
答案 0 :(得分:2)
请查看preg_replace()
,参数
preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
在您的代码中,您使用变量$title
将$newTitle
中的模式替换为限制为1。我想你想替换目标文件中的文本。
<强>更新强> 我现在想到两种解决方案:
preg_replace()
您可以动态更改标题。后
你这样做了,通过例如将变量写入目标文件中。
fputs()
。我会推荐解决方案之一。你知道怎么做吗?
答案 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");
...?>