I answer this question (silindi cevap, işte benim kod) çalıştı.
<?php
function remove_get_param($uri, $name) {
return preg_replace('/(?<=\?|&|;)' . preg_quote($name, '/') . '=[^&;]*/', '', $uri);
}
Bu olmamalı benim ilk kod gibi ? olarak ilk param tüketen edildi. Ben bir Geriye bakan iddiayı yapmaya çalıştım ama PHP dedi ...
Uyarı: preg_replace (): Derleme başarısız oldu: yinelenecek şey 4.satıra 11 ofset
Regex iddialar ile nispeten yeni değilim, ama kabul bu lookbehind assertion araçları make sure this pattern precedes, but don't consume it as part of the match.
Googling tarafından sözdizimi baktım regex cheetsheat ve ben indirilen çıkan PNG sözdizimi ?<= olduğunu söyledi.
Ben yanlış ne yapıyorum?
Teşekkürler
Update
Tekrar merhaba. Burada iki kez Yukarıdaki uyarıya neden bazı örnek kullanımıdır ...
echo remove_get_param('http://mysite.com?param1=1¶m2=2', 'param2') . "\n";
echo remove_get_param('http://mysite.com?param1=1¶m2=2', 'param1');
Ben de codepad.org bu hatalar var bahsetmeliyiz. Söz etmediği için özür dilerim, ben codepad.org korkak bir ortamda çalışır biliyorum.