$x = "''xx''";
echo $x, "\n";
echo trim($x, "'");
このプログラムでは、最初から1つ、最後から1つだけ引用符をトリミングします。Trimは、開始と終了からすべての一重引用符を削除します。
引用符が1つだけ削除されるといいのですが。
$x = preg_replace("/^'?(.*?)'?$/", '$1', $x);
または、正規表現の使用に嫌悪感がある場合:
if (substr($x, 0, 1) === "'") {
$x = substr($x, 1);
}
if (substr($x, -1) === "'") {
$x = substr($x, 0, -1);
}
preg_replaceと「limit」パラメーターを使用すると、解決策はそれほど大雑把ではありません。
$str = preg_replace("/'/", "", $str, 1);
$str = strrev( preg_replace("/'/", "", strrev($str), 1) );
正規表現のないソリューション。
$string = "'test'";
if ($string[0] === "'") {
$string = substr($string, 1);
}
if ($string[strlen($string) - 1] === "'") {
$string = substr($string, 0, -1);
}