Autor Zpráva
Majkelju
Profil
Zajímalo by mě, zda je možno v textu, který mám uložen v databázi, nějak třeba pomocí regexu najít link, který začíná www.soundcloud.com nebo http://soundcloud.com a pokud se odkazuje na stránku se skladbou, např. https://soundcloud.com/sirda/skaph-h-d-s, tak místo toho linku zobrazit soundcloudový přehrávač, třeba tak, jak je to na facebooku. Nemůžu ze všech takto začínajících linků rovnou dělat přehrávač, protože se uživatel může odkazovat třeba jen na svůj profil na soundcloudu, a tam nic přehrát tímto způsobem nepůjde...
Str4wberry
Profil
1) Nahrazovat URL přehrávačem by bylo vhodné dělat při výpisu dat (případně opřehrávačovaný text kešovat), zkrátka mít někde uložen originální text, aby se v případě změny kódu přehrávače nemusela měnit všechna data v DB. Nebo tomu odkazu na skladbu jen přidat CSS třídu a přehrávač z toho dělat až potom pomocí JS.

2) Pro odchycení URL na skladbu je potřeba najít nějaké společné znaky. Moc jsem to nezkoumal, ale mohlo by to být soundcloud.com/cokoliv/cokoliv s nějakými výjimkami. Například soundcloud.com/explore/cokoliv nebo soundcloud.com/groups/cokoliv už adresou na skladbu nebude. Další věc potom je, zda jen pomocí té URL lze vložit přehrávač. Ale asi to jde.

3) Další možnost je řešení hrubou silou, tj. každou URL ze soundcloud.com serverovým skriptem stáhnou a zkusit tam najít nějaký přehrávač. Ale bude to celkem náročné na výkon.
Majkelju
Profil
Ano, mám to přesně tak, mám v DB uložen nějaký dlouhý text, ve kterém se semtam může objevit nějaký ten odkaz na soundcloudový track... Mohl byste mi poradit, co dát do regexu? Ještě se mi nikdy nepodařilo vytvořit regex, který by dělal to, co chci :) A tohle vypadá celkem komplikovaně
Str4wberry
Profil
Třeba soundcloud.com/([a-z0-9-]*)/([a-z0-9-]*) (možná mohou být v URL ještě další znaky, nezkoumal jsem).

No, a hodnota z první závorky se otestuje, že není explore, groups atd. A potom by už snad z adresy mohl jít udělat přehrávač.
1Pupik1989
Profil
Do první závorky bych dal spíše něco jako (?!neco|neco2). Nevím jaké přesně výrazy to používá na uživatele atd. Nač filtrovat až výsledek.
Majkelju
Profil
Teď jsem proklikal soundcloud a v podstatě pokud tam uživatel zadá soundcloud link, tak pokud to bude ve tvaru www.soundcloud.com/neco1/, tak to není odkaz na skladbu. A je hodně nepravděpodobné, že by tam dával jiný link, než na svůj profil nebo track. Takže validní link pro skladbu by měl být www.soundcloud.com/neco1/neco2 ...jak bude v tomto případě regex vypadat?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: