假设字符串是:
$str="abcdefg foo() hijklmopqrst";
如何让 php 调用 foo() 并将返回的字符串插入到该字符串中?
原文由 lovespring 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设字符串是:
$str="abcdefg foo() hijklmopqrst";
如何让 php 调用 foo() 并将返回的字符串插入到该字符串中?
原文由 lovespring 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果你正在调用某个类的方法,你可以使用普通的变量扩展。例如:
<?php
class thingie {
public function sayHello() {
return "hello";
}
}
$t = new thingie();
echo "thingie says: {$t->sayHello()}";
这将输出:
thingie 说:你好
请注意,调用周围的大括号 是 必需的。
原文由 HonoredMule 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答3.1k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
2 回答1.2k 阅读
1 回答1.2k 阅读
1 回答1k 阅读
输出:
这将允许任何小写字母作为函数名称。如果您需要任何其他符号,请将它们添加到模式中,即
[a-zA-Z_]
。非常 小心允许调用哪些函数。您至少应该检查 $m[1] 是否包含白名单函数以防止远程代码注入攻击。
测试运行
"abcdefg foo() bat() hijklmopqrst"
输出"abcdefg bar bat() hijklmopqrst"
。白名单方法的优化(从允许的函数名称动态构建模式,即
(foo|bar)
。