2012-12-09 35 views
0

好PHP变量串接我去过了所有的周末,显然我的大脑已经被引爆 - 我只是不能征服的东西,应该是很容易,我认为:内声明

使用PHP。我有一个变量:

$pageid = 9999; 

,我有一个模板页面挤满了上百语句,像:

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

(9999是在每个数字在每一种情况下结束)

在所有这些语句中,我需要用变量$​​ pageid替换9999,以便该数字不再被硬编码(通过使用notepad ++进行批量替换)。

但由于某种原因,我不能拿出一个工作语法,我在这里找到一个例子的尝试也失败了。任何提示赞赏!

更新说明:

最后,我想声明有$的pageid编码到它,即

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

显然我上面的例子是完全FUBAR只是试图说明最终结果我试图实现...然后无论赋值给$ pageid的值都将应用于语句本身。

回答

1

所以在我看来,你想重构你的代码。这似乎很难做到用查找/替换,但你行看上去是这样的:

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

这样你就可以在以后更改的$pageid价值,一切都将正常工作。

要在记事本++中使用正则表达式代替它:find (\d+)9999,替换为intval('\1'.$pageid),并检查正则表达式选项。 这里的截图screenshot

+1

科斯塔,这工作 - 真棒!我在一页上运行它来验证,然后在项目中的所有34个页面上......替换总共4,412次出现 - 翻页浏览它们都显得完美的功能!当然我会梳理以确认没有异常,但是我不会想到这一点,非常感谢;-) –

+0

不客气:) – Kosta

1

这是假设有9999

$new_var = str_replace('9999',$pageid,$yourvar_with_the_9999); 
+0

嗨,谢谢 - 我的问题可能并不清楚 - 或者我只是没有正确接近 - 我需要实际插入变量代码(即'东西'。$ pageid.'something')进入语句本身......这样,当变量$ pageid从mysql中取出它的值时,该值将被注入到9999当前的页面中......希望更有意义? –

+0

然后我想我理解你的权利。我的解决方案持有 –

1

没有其他occurances为此,您可以用记事本++正则表达式驱动更换引擎(如果我有问题右):

\1'.$pageid.',

更换 (\d+)9999 *,

编辑:开头的星号是无稽之谈。

+0

嗨,欣赏回应...是的,这是(在概念上)我打算使用的方法,虽然你的建议更好地构建......但我的问题是,在任何情况下,由此产生的声明失败 - 在otherkeys我似乎无法插入。$ pageid。以某种方式将这些陈述变成这些陈述,其中陈述实际上起作用...... –