Bir metin bir url sıyırma

5 Cevap php

Nasıl bir url şerit ve aynı pozisyonda geri koymak için alabilirim?

5 Cevap

Düzenli ifadeler kullanın .. kolayca regexs kullanarak URL algılayabilir.

Detecting a URL

Replacing a Pattern

Regexp için birçok yol RFC3986 ile uyumlu bir url bulunmamaktadır

C dizge olarak, regex olacak:

"^(([^:/?#]+):)?(//([^/?#]*)|///)?([^?#]*)(\\?[^#]*)?(#.*)?"
enum {
    URL = 0,
    SCHEME_CLN = 1,
    SCHEME  = 2,
    DSLASH_AUTH = 3,
    AUTHORITY = 4,
    PATH    = 5,
    QUERY   = 6,
    FRAGMENT = 7
};

Enum yakalama endeksleri parçaları url hangi neye karşılık geldiğini ifade etmektedir.

Eğer başlangıç ​​pozisyonuna geri aynı URL koymak isteyen iseniz, neden tam olarak yapmak için ne çalışıyorsunuz / ilk etapta bunu kaldırmak istiyorum. Biraz daha bağlam bize yardımcı yardımcı olacaktır.

muhtemelen preg_replace_callback arıyoruz.

sadece, normal bir ifade deseni eşleşen verdiğiniz bir işlev sonuç verir ve dönüş değeri ile orijinal maç değiştirir.

Jeff Atwood bu karşılaşabileceği sorunlarla ilgili bilgilendirici bir yazı vardı:

http://www.codinghorror.com/blog/archives/001181.html

Basit bir regex ikamesi ile http://www.codinghorror.com/blog/archives/001181.html-- - Ne olursa olsun programlama dili ve kullanmak kütüphaneleri, sorunları, bazı durumlarda ile, diyelim ki, eğer olacaktır.

Ben çok sık PHP kullanmak istemiyorum, ama sorun preg_replace çağrısında kullanmak için desen anlamaya çalışıyorum aşağı kaynar.