0

好吧,我整个周末都在起床,显然我的大脑已经崩溃了——我只是无法征服一些我认为应该很容易的事情:

使用 PHP。我有一个变量:

$pageid = 9999;

我有一个包含数百条语句的模板页面,例如:

<?php $simplex->menu( 200029999, 200009999,1); ?>

(在每种情况下,9999 都位于每个数字的末尾)

在所有这些语句中,我需要将 9999 替换为变量 $pageid,以便不再对这个数字进行硬编码(打算使用 notepad++ 进行批量替换)。

但是由于某种原因,我无法提出有效的语法,并且我在这里寻找示例的尝试也失败了。任何提示表示赞赏!

更新澄清:

最后,我希望语句将 $pageid 编码到其中,即

<?php $simplex->menu( 20002'.$pageid.', 20000'.$pageid.',1); ?>

显然我上面的例子是完整的 FUBAR 但只是试图说明我试图实现的最终结果......然后分配给 $pageid 的任何值都将应用于语句本身。

4

3 回答 3

1

您可以使用 Notepad++ 正则表达式驱动的替换引擎来执行此操作(如果我的问题正确):

替换(\d+)9999 *,\1'.$pageid.',

编辑:开头的星号是胡说八道。

于 2012-12-09T23:49:37.713 回答
1

这假设没有其他 9999 的出现

$new_var = str_replace('9999',$pageid,$yourvar_with_the_9999);
于 2012-12-09T23:11:14.643 回答
1

所以在我看来,你想重构你的代码。这似乎很难用搜索/替换来做,但你的行可能看起来像这样:

<?php $simplex->menu( intval('20002'.$pageid), intval('20000'.$pageid), 1); ?>

这样,您以后可以更改 的值,$pageid一切都会正常工作。

要在 notepadd++ 中替换它,请使用正则表达式:查找(\d+)9999,替换为 intval('\1'.$pageid),并检查正则表达式选项。这是屏幕截图截屏

于 2012-12-09T23:55:48.977 回答