不太确定如何说出这个问题,但我会举一个例子.
$string = 'Hey, $name. How are you?';
Run Code Online (Sandbox Code Playgroud)
当我发布这个字符串时,$name不会改变.我怎么能这样做,所以我可以把+name+它改成名字.我已经尝试过搜索但我不知道该搜索什么,所以我没有运气.它可能很简单,但我只是在消隐.谢谢
我已经尝试了大约一百万个不同的正则表达式,我无法绕过这一个(不可否认,很多正则表达式都不在我的掌握之中).
在我的文本中,我有这样的变量:
{{$one}}
{{$three.four.five}}
{{$six.seven}}
Run Code Online (Sandbox Code Playgroud)
我有一个包含所有替换的数组('one'的索引是'one'等)但有些可能会丢失.
我想从数组中替换它是否存在,如果不是单独保留文本.
我可以使用什么正则表达式在下面的代码段中的$ text中preg_match_all变量,在适当的地方替换$ replace并回显到浏览器?
<?php
$replaces = array('testa.testb.testc' => '1', 'testc.testa' => '2', 'testf' => '3');
$text = '{{$testa.testb.testc}}<br>{{$testc.testa}}<br>{{$testf}}<br>{{$aaaaa}}<br>';
preg_match_all('/\{\{\$(\w+)\}\}/e', $text, $matches);
foreach($matches as $match)
{
$key = str_replace('{{$', '', $match);
$key = str_replace('}}', '', $key);
if(isset($replaces[$key]))
$text = str_replace($match, $replaces[$key], $text);
}
// I want to end up echo'ing:
// 1<br>2<br>3<br>{{$aaaaa}}<br>
echo $text;
?>
Run Code Online (Sandbox Code Playgroud)
http://codepad.viper-7.com/4INvEE
这个:
'/\{\{\$(\w+)\}\}/e'
Run Code Online (Sandbox Code Playgroud)
就像在片段中一样,是我得到的最接近的.
它也必须使用变量名中的do.
在此先感谢您的帮助!
我想[]用一个名为该字符串的数组中随机选择的项替换方括号()中的所有字符串.
它与这个问题非常相似,但有一个转折,因为我想用名为的数组中的字符串替换不同的括号内容.
一个例子应该让这一点更清晰.
所以说我有字符串
"This is a very [adjective] [noun], and this is a [adjective] [noun]."
Run Code Online (Sandbox Code Playgroud)
变量:
$adjective = array("big","small","good","bad");
$noun = array("house","dog","car");
Run Code Online (Sandbox Code Playgroud)
我们希望"This is a very big house, and this is a good dog."通过随机选择返回或其他任何东西.也就是说,我想编写一个PHP函数,它将[string]使用名为的数组中随机选择的项替换每个函数$string.现在,如果通过随机选择它最终重复选择并不重要,但它必须为每个[]项目做出新的选择.
我希望我已经清楚地解释了这一点.如果你得到了我想要达到的目标,并且可以想到一个更好的方法来做到这一点,我将非常感激.
我以前从未在 php 中使用过花括号
但是我正在更新一个现有的网站...
在数据库中,我有信息,例如
YOUR NAME {CH_NAME} {URL_NAME}
Run Code Online (Sandbox Code Playgroud)
我想检索信息并以适当的方式显示它我想将 CH_NAME 变量影响为一个与 URL_NAME 相同的值,并最终显示完整的信息,例如:
1-正常:
$beforeStr="YOUR NAME {CH_NAME} {URL_NAME}";
$CH_NAME="John";
$URL_NAME="http://xxxx";
echo $beforeStr ; //would like to show : YOUR NAME John http://xxxx
Run Code Online (Sandbox Code Playgroud)
问候