PHP脚本没有正确替换字符串

时间:2016-04-17 19:27:04

标签: php

所以,我的代码如下:

$data = file_get_contents("js/plugins.js");

if (isset($_GET['resx'])) {
  if (isset($_GET['resy'])) {
  $data = str_replace('"Screen Width":"1366","Screen Height":"768"', '"Screen Width":"$resx","Screen Height":"$resy"', $data);
  }
}

file_put_contents("js/web_settings.js", $data);

我要做的是在URL栏中定义多个变量,网站将更新文件。显然,它似乎是用变量名本身替换字符串,而不是用这些变量的值替换它。 (因此,如果resx是1280,则1366变为$ resx而不是1280)由于游戏引擎的工作方式,引号需要在那里。我如何解决这个问题,以便用这些变量的值替换它?

2 个答案:

答案 0 :(得分:1)

"替换为\",将'替换为"。它将允许在字符串中使用变量。

$data = str_replace("\"Screen Width\":\"1366\",\"Screen Height\":\"768\"", "\"Screen Width\":\"$resx\",\"Screen Height\":\"$resy\"", $data);

清空替换,因为$ resx和$ resy不存在:

$data = str_replace('"Screen Width":"1366","Screen Height":"768"', '"Screen Width":"'.$_GET['resx'].'","Screen Height":"'.$_GET['resy'].'"', $data);

或者制作$ resx = $ _GET [' resx'];在replace之前。如果启用了错误输出,您会立即注意到它。

答案 1 :(得分:0)

'Screen Width":"1366","Screen Height":"768"', '"Screen Width":"' . $resx . '","Screen Height":"' . $resy.'"', $data

你需要使用' 。回到变量:' string' 。 $变量。 '再次串起来';