1 while $var =~ s/a/b/;
, ve b
tüm a
yerini alacak: perl, ben yapabilirim. Birçok durumda, ben 1 while $var =~ s/^"(.*)"$/$1/;
bir dize etrafında çift tırnak tüm çiftleri kaldırmak için daha fazla gibi kullanabilirsiniz.
Yapmak zorunda kalmadan, PHP buna benzer bir şey yapmak için bir yolu var mı
while (preg_match('/^"(.*)"$/', $var)) {
$var = preg_replace('/^"(.*)"$/', '$1', $var, 1);
}
, Çünkü görünüşte
while ($var = preg_replace('/^"(.*)"$/', '$1', $var, 1)) { 1; }
çalışmaz.
EDIT: Ben çalışıyorum belirli bir durum, bir ilişkisel dizi değerleri içeren bir dize değerleri yerine içerir:
$text = "This is [site_name], home of the [people_type]".
$array = ('site_name' => 'StackOverflow.com', 'people_type' => 'crazy coders');
Ben yapıyor olurdu burada:
while (preg_match('/\[.*?\]/', $text)) {
$text = preg_replace('/\[(.*?)\]/', '$array[\'$1\']', $text, 1);
}
amaçlanan çıkış olmak ile 'Bu StackOverflow.com, çılgın kodlayıcılar evidir'