PHP nasıl bir URL etki alanı bölümü aynı olabilir?

3 Cevap php

Ben regexp kadar kötü değilim, ama http://somepage.com/some/...etc some/path/image.jpg çıkmak için çalışıyor ve bu yöntemi çalışıyorum:

function removeDomain($string) {

    return preg_replace("/http:\/\/.*\//", "", $string);

}

Bu çalışmıyor - Şimdiye kadar ben söyleyebilirim sadece boş bir dize dönüyor. Bunu nasıl sıradanifade yazıyorsunuz?

3 Cevap

Kullan parse_url diğer insanlar zaten söylediler.

Ama regex çalışmıyor neden soruyu cevaplamak için, .* şeyle eşleşir çünkü bir entire URL maç olacak, ve gerçekten de öyle. Bu whole URL eşleşen ve sonuçlar dolayısıyla, boş bir dize ile yerini almaktadır. Sadece hostname (ilk '/' kadar bir şey) maç olacak bunun yerine aşağıdaki deneyin:

function removeDomain($string) {
    return preg_replace("@^https?://[^/]+/@", "", $string);
}

SilentGhost sağ iken * açgözlü olduğunu ve sürece bir / sonra olduğu gibi, her şeyi yiyebilirim çünkü., Senin regex başarısız nedeni budur.

Eğer .*, sadece maç olacak sonra ? işareti koyarsanız ilk / kadar

function removeDomain($string) {

    return preg_replace("/http:\/\/.*?\//", "", $string);

}