2

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

期望的时间线:

  1. PHP 代码是<?php echo("hello"); ?>.
  2. 搜索和替换操作是hellogood bye
  3. PHP 代码现在是<?php echo("good bye"); ?>.
  4. PHP 引擎解释代码(输出为good bye)。

ob_start可以使用甚至mod_substitute作为 Apache 的输出过滤器来操作 PHP 引擎的输出。但是,是否可以操纵 PHP 引擎的输入(PHP 代码、请求等)?

编辑:

我正在处理数千个 PHP 文件,我不希望它们被修改。我想在这些文件中替换host1host2,因为这些文件是从中复制的,host1并且它们必须在host2. 实际上,对主机名进行了几项测试。

4

3 回答 3

0

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

编辑

更好瘦为什么需要它?尝试使用变量
我会帮你的)

于 2012-11-05T12:44:55.410 回答
0

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

于 2012-11-05T12:45:08.233 回答
0

应该学习诸如smarty之类的模板引擎和各种形式的预过滤器。

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

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

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

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

于 2012-11-05T12:46:08.543 回答