PHP str_replace 替换 $变量符号无法识别的问题

2017-05-19 16:08:18 +08:00
 shaweren

$text="[%url][%title]
"; $tex=str_replace("%","$",$text); echo $tex; str_replace 替换后变量不能识别怎么破

2078 次点击
所在节点    问与答
14 条回复
explon
2017-05-19 16:09:55 +08:00
单引号跟双引号的区别你知道吗?
konakona
2017-05-19 16:12:25 +08:00
"\$" 试试看咯
或者'$'
shaweren
2017-05-19 16:16:45 +08:00
@explon 单引号里面的变量不能识别?
shaweren
2017-05-19 16:17:56 +08:00
@konakona 好像没有用
konakona
2017-05-19 16:21:18 +08:00
@shaweren 其实你的代码,我运行已经成功了。
shaweren
2017-05-19 16:24:15 +08:00
@konakona 输出是作为字符串输出了,而不是作为变量。
kchum
2017-05-19 16:29:14 +08:00
是输出这个 [$url][$title] 运行没毛病,还是你需求不对
shaweren
2017-05-19 16:32:14 +08:00
@kchum
@konakona

$title="titleName";

$url="http";

$text="[%url]<I>[%title]</I><br>";

$tex=str_replace('%','$',$text);

echo $tex;

希望输出是:[http]<I>[titleName]</I><br>;

这个能实现么?
littleylv
2017-05-19 16:38:22 +08:00
<?php
$url = 'urlurl';
$title = 'titletitle';
$a = '[%url][%title]';
$b = str_replace('%', '$', $a);
eval("\$b = \"$b\";");
echo $b . PHP_EOL;
shaweren
2017-05-19 16:40:05 +08:00
@littleylv 膜拜!
hteen
2017-05-19 16:43:25 +08:00
$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;
kchum
2017-05-19 16:43:53 +08:00
@shaweren [$url]<I>[$title]</I><br> ,你的需求不是用这个。

$title="titleName";
$url="http";
printf("[%s]<I>[%s]</I><br>" , $url,$title);

输出
[http]<I>[titleName]</I><br>
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;
msg7086
2017-05-20 03:33:12 +08:00
$符号是在要写字符串的时候就确定下来的。
你这代码,只有第一行写双引号的时候$才会被解析。
没第二行以后的代码什么事的。
解析$是双引号的功能。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/362473

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX