PHP - 如何动态创建文件?

时间:2011-12-22 01:38:42

标签: php

我想动态创建PHP文件。静态HTML代码工作正常,但是当我想插入包含“window.location”命令的PHP代码时,我的脚本直接将我发送到该页面,而没有填写“if(isset()) - 条件。” p>

不知何故,一个简单的回声不起作用。我该如何解决这个问题?

 public function suche()
 {
   echo "if(isset(\$_POST['searchit']))
   {
    \$suchbegriff = \$_POST['suchbegriff'];

    \$anfangsbuchstabe = substr(\$suchbegriff, 0, 1);

    <script type='text/javascript' language='Javascript'>window.location = '/".$anfangsbuchstabe."/".$suchbegriff.".php'</script>
  }";
 }

3 个答案:

答案 0 :(得分:3)

如果你真的在写一个你要在不同的请求中调用/执行的php文件,你需要确保php被识别为php,现在它只是文本。

所以你需要这样的东西:

public function suche()
 {
   echo "<?php if(isset(\$_POST['searchit']))
   {
    \$suchbegriff = \$_POST['suchbegriff'];

    \$anfangsbuchstabe = substr(\$suchbegriff, 0, 1);
    ?>
    <script type='text/javascript' language='Javascript'>window.location = '/".$anfangsbuchstabe."/".$suchbegriff.".php'</script>
<?php
  }
?>";
 }

请注意,我添加了php开始和结束标记。

答案 1 :(得分:2)

如果您正在尝试创建文件,则不能只回显某些内容,必须将其写入文件。例如,您可以使用file_put_contents(string $filename, mixed $contents)

答案 2 :(得分:0)

你忘了逃避变量。正如您在粘贴的PHP的颜色中看到的那样,变量将被执行。

使用\转义它们,并对双引号(")执行相同操作

另外,我也注意到,你是echo你的代码。回应PHP代码实际上不会执行代码。

您可以使用eval执行PHP代码,但这是非常不安全。从我的问题中可以看出,你没有足够的经验来计算所有的安全风险。不要使用它。