在一个引号中使用双引号转换所有字符串使用RegExp PHP

时间:2016-01-31 14:41:56

标签: php regex preg-replace

请帮助regexp。

我有例如下一个字符串:

var image = "<div class='test'>Hello. It's div.</div>" + "<div class='test2'></div>";
var f = function(test){alert("error: "+test)}

我需要用php转换它

var image = '<div class="test">Hello. It\'s div.</div>' + '<div class="test2"></div>';
var f = function(test){alert('error: '+test)}

这个字符串就是例子......

我不明白如何创建正常替换...

UPD : 例如,如果我有

var a = "asdb'dsaa'fdsfd";
var b = 'dsad"dsadsa"dsadas';

然后我需要

var a = 'asdb\'dsaa\'fdsfd';
var b = 'dsad"dsadsa"dsadas';

1 个答案:

答案 0 :(得分:0)

我知道这看起来很奇怪但是你走了:

$var = 'var image = "<div class=\'test\'>Hello. It\'s div.</div>" + "<div class=\'test2\'></div>";
var f = function(test){alert("error: "+test)}';


$var = str_replace("DUMMY_PLACEHOLDER", "'", str_replace("'", '"', str_replace('"', 'DUMMY_PLACEHOLDER', $var)));

echo $var;

更易阅读的版本:

$var = 'var image = "<div class=\'test\'>Hello. It\'s div.</div>" + "<div class=\'test2\'></div>";
var f = function(test){alert("error: "+test)}';

$var = str_replace('"', 'DUMMY_PLACEHOLDER', $var);
$var = str_replace("'", '"', $var);
$var = str_replace("DUMMY_PLACEHOLDER", "'", $var);

echo $var;