在PHP代码执行之前对其进行搜索和替换

时间:2012-11-05 12:40:52

标签: php apache

有没有办法在PHP代码之前执行搜索和替换 它被PHP引擎解释?

所需时间表:

  1. PHP代码为<?php echo("hello"); ?>
  2. 搜索和替换操作为hellogood bye
  3. PHP代码现在是<?php echo("good bye"); ?>
  4. PHP引擎解释代码(输出为good bye)。
  5. 可以使用ob_start甚至mod_substitute作为Apache的输出过滤器来操作PHP引擎的输出。但是,是否可以操作PHP引擎的输入(PHP代码,请求等)?

    修改

    我正在使用数千个PHP文件,我不希望它们被修改。我想在这些文件中将host1替换为host2,因为文件是从host1复制的,必须在host2上执行。实际上,对主机名进行了多次测试。

3 个答案:

答案 0 :(得分:0)

请求不正常)
看起来很蠢。但如果你真的需要它试试这个..
例如,您需要在执行之前更改文件test.php 请尝试以下步骤(例如index.php中):
1)打开test.php进行阅读并获取其内容 2)更换你想要的一切 3)将更改的文本保存为test2.php
4)包括test2.php

修改

为什么需要它更好?尝试使用variables 它会有所帮助)

答案 1 :(得分:0)

您可以使用php脚本打开.php文件,进行必要的替换,然后include该文件。

答案 2 :(得分:0)

应该研究smarty等模板引擎以及各种形式的prefilters

修改这样的代码并不是一个好主意,但要回答你的问题......你可以加载原始代码,预处理它并存储在新文件中:

$contents = file_get_contents( 'original.php');
// ...
file_put_contents( 'new.php', $contents);
include( 'new.php')

但我没有看到任何有效的使用......

你也可以使用eval(),但每次你这样做时,小猫都会死掉(不是真的,这是危险的功能,而且它只有一些有效用途)。