Autor | Zpráva | ||
---|---|---|---|
Ikki Profil |
#1 · Zasláno: 1. 8. 2018, 23:31:01
Zdravím,
narazil jsem na takovou zajímavou věc a potřebuji poradit. Facebook pro Livestream využívá sdílení přes IFRAME, jenže originální link nepodporuje přehrávání na mobilních zařízeních a je potřeba do odkazu přidat "m.facebook". Jelikož odkazy nechávám zapisovat do databáze, tak bych se chtěl zeptat zda je možnost, jak selectnout zvolený odkaz a upravit jej podle zařízení. Tedy pokud budu na mobilním zařízení, tak se odkaz pro stream změní na výše uvedenou variantu. Děkuji. |
||
Keeehi Profil |
#2 · Zasláno: 1. 8. 2018, 23:49:09
Ikki:
Ano, možné to je. S čím konkrétně máš problém? Detekce mobilu, vyhledání a nahrazení v řetězci? |
||
Ikki Profil |
#3 · Zasláno: 2. 8. 2018, 20:02:21
Problém mám převážně s tím, že daný odkaz vypisuje podle getnutého ID v tabulce (id, odkaz), ten následně hodím do echa "echo $odkaz" a teď potřebuji aby v podmínce (mám podmínku useragenta na detekci zařízení) detekce mobilu byla v případě detekovaného mobile device upravená verze.
if(!mobiledevice){//normalní odkaz}else{//upravenýodkaz} Nevím jestli jsem to dobře popsal, ale snad se chápeme :/ |
||
Keeehi Profil |
#4 · Zasláno: 3. 8. 2018, 00:17:47
Ikki:
To nebude problém. Jen bych potřeboval vědět přesný příklad toho, co je v proměnné odkaz. Jeden z těch uložených řetězců. |
||
Ikki Profil |
#5 · Zasláno: 3. 8. 2018, 14:00:20
Tohle je odkaz, který mi daroval FB
<iframe src="https://facebook.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2Fikkinator%2Fvideos%2F657700677920329%2F&show_text=0&width=267" width="267" height="476" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true" allowFullScreen="true"></iframe> a po změně by měl vypdat nějak takto, asi; <iframe src="https://m.facebook.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2Fikkinator%2Fvideos%2F657700677920329%2F&show_text=0&width=267" width="267" height="476" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true" allowFullScreen="true"></iframe> |
||
Keeehi Profil |
To není odkaz nýbrž HTML kód ale budiž.
echo preg_replace ('~facebook\.com~' , 'm.facebook.com', $odkaz, 1); facebook.com v proměnné za m.facebook.com a vypíše výsledek po nahrazení.
|
||
Ikki Profil |
#7 · Zasláno: 4. 8. 2018, 21:26:53
Vyzkouším,
ps: původně tam měl být jen odkaz, ale když jsem zjistil jací jsou lidi dementní, i přes návod "zvolte pouze odkaz", tak mi nic jiného nezbylo. |
||
Keeehi Profil |
#8 · Zasláno: 5. 8. 2018, 01:23:51
Ikki:
A to je problém při ukládání detekovat, zda tam není i ten iframe a případně z něj tu URL vypreparovat? Pokud někomu dovoluješ vkládat HTML musíš mít ten formulář řádně zabezpečení (proti CSRF) a musíš mu věřit, jelikož je to vlastně dobrovolná perzistentní XSS zranitelnost. |
||
Časová prodleva: 19 dní
|
|||
Ikki Profil |
#9 · Zasláno: 24. 8. 2018, 12:21:11
Ještě bych se chtěl zeptat -
Pokud mám v jednom případě uvedený <iframe> v tabulce a v druhém ne, jak mám zapsat podmínku a preg_replace? Příklad: https://www.facebook.com/kieselguitars/videos/327158194519116/ (Bez IFRAME je nutno dát do IFRAME) <iframe src="https://www.facebook.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2Fkieselguitars%2Fvideos%2F327158194519116%2F&show_text=0&width=560" width="560" height="315" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true" allowFullScreen="true"></iframe> (Ponechat a nedávat do IFRAME) Děkuji. |
||
Keeehi Profil |
#10 · Zasláno: 24. 8. 2018, 17:23:20
Ikki:
$input = "..."; if (filter_var($input, FILTER_VALIDATE_URL)) { echo "<iframe src=\"$input\" width=\"560\" height=\"315\" style=\"border:none;overflow:hidden\" scrolling=\"no\" frameborder=\"0\" allowTransparency=\"true\" allowFullScreen=\"true\"></iframe>"; } else { echo $input; } Ovšem mnohem lepší by bylo si při ukládání z toho HTML automaticky tu url vypreparovat a ukládat jen čistou adresu. |
||
Časová prodleva: 3 dny
|
|||
Ikki Profil |
#11 · Zasláno: 27. 8. 2018, 13:51:11
No to by určitě bylo, máš nějaký nápad jak na to? Děkuji.
|
||
Keeehi Profil |
#12 · Zasláno: 27. 8. 2018, 17:26:12
Tak primitivní verze by mohla vypadat takto
preg_match('~https?://[^"\']+~iu', $s, $matches); var_dump($matches[0]); |
||
Časová prodleva: 6 let
|
0