我希望有一个包含例如(mystring)的字符串:
file config.php
$mystring = "hello my name is $name and i got to $school";
文件index.php
include('config.php');
$name = $_GET['name'];
$school = $_GET['school'];
echo $mystring;
这会有用吗?还是有更好的方法
答案 0 :(得分:5)
$string = 'Hello, my name is %s and I go to %s';
printf($string, $_GET['name'], $_GET['school']);
或
$string = 'Hello, my name is :name and I go to :school';
echo str_replace(array(':name', ':school'), array($_GET['name'], $_GET['school']), $string);
您可以使用以下内容自动执行最后一个:
function value_replace($values, $string) {
return str_replace(array_map(function ($v) { return ":$v"; }, array_keys($values)), $values, $string);
}
$string = 'Hello, my name is :name and I go to :school';
echo values_replace($_GET, $string);
答案 1 :(得分:3)
不,它不会起作用。
在将其用于另一个变量
之前,您必须首先定义$name
config.php应该看起来像
<?php
$name = htmlspecialchars($_GET['name']);
$school = htmlspecialchars($_GET['school']);
$mystring = "hello my name is $name and i got to $school";
和index.php一样
<?php
include('config.php');
echo $mystring;
你为什么不试试?
演示: http://sandbox.phpcode.eu/g/2d9e0.php?name=martin&school=fr.kupky
答案 2 :(得分:2)
或者,您可以像这样使用sprintf:
$mystring = "hello my name is %s and i got to %s";
// ...
printf($mystring, $name, $school);
答案 3 :(得分:-4)
这是有效的,因为你的$ mystring文字是使用双引号,如果你使用单引号,那么它将不起作用。
http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing