str_replace 不适用于 foreach
我的代码:
$str = array(
'{$string1}' => 'anything2',
'{$string2}' => 'something1',
'{$string3}' => '...'
);
$final = "";
$text = $_POST['content'];
foreach( $str as $key => $val ) {
$final = str_replace($key, $val, $text);
}
我的 $text
ofc。本身具有 {string1}
、 {string2}
和 {string3}
,但它不会将其替换为数组中给定的值。
为什么它不工作?
My code:
$str = array(
'{$string1}' => 'anything2',
'{$string2}' => 'something1',
'{$string3}' => '...'
);
$final = "";
$text = $_POST['content'];
foreach( $str as $key => $val ) {
$final = str_replace($key, $val, $text);
}
My $text
ofc. has {string1}
, {string2}
and {string3}
itself, but it doesn't replace it with the values given in the array.
Why its not working?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
此代码完全满足您的需要(没有任何额外的循环):
This code does exactly what you need (without any extra loops):
使用
参考:http://php.net/manual/en/function.str-替换.php
use
Ref : http://php.net/manual/en/function.str-replace.php
也许不同的编码,试试这个:
$text = utf8_decode($_POST['content']);// 或 utf8_encode
before循环;
祝你好运!
Maybe the different enconding, try this:
$text = utf8_decode($_POST['content']);// or utf8_encode
before loop;
Good lucky!