2014-01-17 53 views
0
在数据库中,我存储

动态链接这样替换mysql的PHP变量取串

http://{$site}.com/{$username} 

和PHP文件

$site = google.com;$username = 2; 

但是,当我从数据库中获取它不与PHP变量它只需更换作为

http://{$site}.com/{$username} 

输出我试着preg_replace('/\{\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\}/e', "$$1", $row['url']); 但它只是在更换MySQL中的e变量获取字符串其他保持静态。

那么是否有另一种方法来替换{}中的所有值与特定的php变量。

+0

'$ site'不是有效的字符串。也许你应该首先启用error_reporting .. – Luceos

+0

$站点只是为了告诉你的人我的问题 –

回答

0

你是如此的VAR值,而不是取代

http://{$site}.com/{$username} 
// not varable {$site} and {$username} 

这让数据作为字符串是一个字符串

尝试插入完整的URL或尝试

简单outputing时使用: -

str_replace

$tmpurl = str_replace('{$site}', $site, $row['url']); 
$url = str_replace('{$username}', $username, $tmpurl); 
+0

我必须一次又一次地添加str_replace来替换所有变量是否有其他方式一次替换所有变量。 preg_replace变量一次,但停止后,我不知道为什么 –

+0

尝试str_replace在您的数据fatching循环 –

+0

兄弟str_replace将一次替换一件事,我想使它动态,而不是一次一个地立即所有 –