$text="[%url][%title]
";
$tex=str_replace("%","$",$text);
echo $tex;
str_replace 替换后变量不能识别怎么破
1
explon 2017-05-19 16:09:55 +08:00
单引号跟双引号的区别你知道吗?
|
2
konakona 2017-05-19 16:12:25 +08:00
"\$" 试试看咯
或者'$' |
7
kchum 2017-05-19 16:29:14 +08:00
是输出这个 [$url][$title] 运行没毛病,还是你需求不对
|
8
shaweren OP |
9
littleylv 2017-05-19 16:38:22 +08:00 1
<?php
$url = 'urlurl'; $title = 'titletitle'; $a = '[%url][%title]'; $b = str_replace('%', '$', $a); eval("\$b = \"$b\";"); echo $b . PHP_EOL; |
11
hteen 2017-05-19 16:43:25 +08:00 1
$url = 'url';
$title = 'title'; $text="[%url%][%title%]"; preg_match_all('/%(\w+)%/', $text, $match); foreach ($match[1] as $key => $val) $text = str_replace($match[0][$key], $$val, $text); echo $text; |
12
kchum 2017-05-19 16:43:53 +08:00 1
@shaweren [$url]<I>[$title]</I><br> ,你的需求不是用这个。
$title="titleName"; $url="http"; printf("[%s]<I>[%s]</I><br>" , $url,$title); 输出 [http]<I>[titleName]</I><br> |
13
wangjie 2017-05-19 16:58:37 +08:00
@shaweren #8
<?php $title = "titleName"; $url = "http"; $text = "[%url]<I>[%title]</I><br>"; $tex = preg_replace_callback('/%([a-z]+)/', function($matches) { global ${$matches[1]}; return ${$matches[1]}; } , $text); echo $tex; |
14
msg7086 2017-05-20 03:33:12 +08:00
$符号是在要写字符串的时候就确定下来的。
你这代码,只有第一行写双引号的时候$才会被解析。 没第二行以后的代码什么事的。 解析$是双引号的功能。 |