引用符内の文字列を取得しようとしています。正規表現を使用していますが、エスケープされた引用符に問題があります。
たとえば、私はこれを持っています:
$var = "SELECT * FROM TABLE WHERE USERNAME='Carasuman'";
preg_match_all('~([\'"])(.*?)\1~s', $var, $result);
$new = preg_replace('~([\'"])(.*?)\1~s',"<#################>",$var);
コードは完璧に機能します。$new で置き換えられた値と $result[1] で引用された値を取得しました
$new = "SELECT * FROM TABLE WHERE USERNAME=<#################>";
$result[1] = "Carasuman";
私の問題は、引用符の中にエスケープされた引用符を追加するときです:
$var = "SELECT * FROM TABLE WHERE USERNAME='Carasuman\'s'";
私はこれを得た:
$new = "SELECT * FROM TABLE WHERE USERNAME=<#################>'s";
$result[1] = "Carasuman\" //must be "Carasuman\'s";
このエラーを回避し、最初の例のように $new と $result[1] を取得するにはどうすればよいですか?:
$new = "SELECT * FROM TABLE WHERE USERNAME=<#################>";
$result[1] = "Carasuman\'s";
ありがとう!