HTML SIMPLE DOM – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

HTML SIMPLE DOM – PHP – Fórum – Programujte.comHTML SIMPLE DOM – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
webdorf0
Newbie
16. 10. 2016   #1
-
0
-

Zdravím všechny,

Již se trápím z jednou věcí den, dělám parsovaní poprvé. Potřeboval bych z odkazu: http://www.streamuj.tv/video/b3206510ddcec839d3d4


Ze zdrojového kódu je tam: 
code': '<iframe src="http://www.streamuj.tv/video/b3206510ddcec839d3d4?remote=1&width=960&height=540" width="975" height="555" scrolling="no" frameborder="0"></iframe>

A já bych potřeboval vytáhnout do PHP jen tohle: 
http://www.streamuj.tv/…e9a2d02e976d?…

aby to v PHP bylo tímto způsobem: 
$_code = "http://www.streamuj.tv/video/1a660a85e9a2d02e976d?remote=1&width=960&height=540";

Můžete mi prosím někdo pomoct? Už si nevím rady

Nahlásit jako SPAM
IP: 89.103.172.–
Kit+15
Guru
16. 10. 2016   #2
-
+1
-
Zajímavé

#1 webdorf
Problém je v tom, že je to uvnitř Javascriptu, takže DOM na tohle neplatí. Nejspíš budeš muset použít regulární výrazy.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
webdorf0
Newbie
16. 10. 2016   #3
-
0
-

#2 Kit
Mohl by jste být prosím konkrétnější příklad..? Jsem v tomhle začátečník, díky 

Nahlásit jako SPAM
IP: 89.103.172.–
Kit+15
Guru
16. 10. 2016   #4
-
+1
-
Zajímavé

#3 webdorf
Zkus tohle:

<?php

$url = "http://www.streamuj.tv/video/b3206510ddcec839d3d4";
$rows = file($url);
foreach ($rows as $row) {
    if (strpos($row, 'iframe') !== false) {
        echo preg_replace('/^.* src="([^"]*)".*$/', "$1", $row);
    }
}
Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
webdorf0
Newbie
16. 10. 2016   #5
-
0
-

#4 Kit
Skvěle to funguje. Ještě bych se chtěl zeptat, když jednoho odkazu potřebuji vytáhnout více dat... 

Mám v php: 

<?php
session_start();
include "simple_html_dom.php";
$koncovka = $_GET["url"];
$url_parsovani = "http://www.streamuj.tv/video/$koncovka";

Takže když zadám index.php?url=b3206510ddcec839d3d4 (je to jako kdybych dal: http://www.streamuj.tv/video/b3206510ddcec839d3d4) ---> No a vždy když dám příslušný odkaz aby to z něho vytáhlo danné informace, abych byl konkrétnější, potřebuji vytáhnout: 

$_link1 = "http://www.streamuj.tv/video/1a660a85e9a2d02e976d";
$_code = "http://www.streamuj.tv/video/1a660a85e9a2d02e976d?remote=1&width=960&height=540";
$_res_null = "http://www.streamuj.tv/video/1a660a85e9a2d02e976d?streamuj=original,http://www.streamuj.tv/video/1a660a85e9a2d02e976d?streamuj=hd";
$_res_one = "";    
$_sub_null = "čeština>http://www.streamuj.tv/video/1a660a85e9a2d02e976d?streamuj=subtitles&id=105b6c2ffcf771c12cd9";
$_sub_one = "";
$_dl_null = "";
$_dl_one = "";
$_langs = "English";
$_rn = "SD,HD";

Jak toho dospěji? Stačí mi příklad na z 2 různými daty abych to trošku pochytil.. Předem děkuji za pomoc

Nahlásit jako SPAM
IP: 89.103.172.–
Kit+15
Guru
16. 10. 2016   #6
-
0
-

#5 webdorf
Stačí přece string "1a660a85e9a2d02e976d" nahradit stringem "$koncovka".

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
webdorf0
Newbie
16. 10. 2016   #7
-
0
-

#6 Kit
Ok zkusím, díky moc za pomoc

Nahlásit jako SPAM
IP: 89.103.172.–
webdorf0
Newbie
16. 10. 2016   #8
-
0
-

Ještě bych se chtěl zeptat, jak získám ze zdrojového kódu: 

res0: "http://www.streamuj.tv/video/b3206510ddcec839d3d4?streamuj=original,http://www.streamuj.tv/video/b3206510ddcec839d3d4?streamuj=hd",

Jen toto: 

http://www.streamuj.tv/video/b3206510ddcec839d3d4?streamuj=original,http://www.streamuj.tv/video/b3206510ddcec839d3d4?streamuj=hd

Nějak jsem na to nepřišel.. předem díky

Nahlásit jako SPAM
IP: 89.103.172.–
Kit+15
Guru
16. 10. 2016   #9
-
0
-

#8 webdorf
To dělá ten regulární výraz výše, s mírnou úpravou: 

echo preg_replace('/^.*"([^"]*)".*$/', "$1", $row);
Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
webdorf0
Newbie
16. 10. 2016   #10
-
0
-

#9 Kit
To mi vypsalo: 

0

Tak to už jsem z toho zmatený 

Nahlásit jako SPAM
IP: 89.103.172.–
Kit+15
Guru
16. 10. 2016   #11
-
+1
-
Zajímavé

#10 webdorf
Tohle mi normálně funguje: 

<?php

$row = 'res0: "http://www.streamuj.tv/video/b3206510ddcec839d3d4?streamuj=original,http://www.streamuj.tv/video/b3206510ddcec839d3d4?streamuj=hd",';
echo preg_replace('/^.*,([^"]*)".*$/', "$1", $row);
Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
webdorf0
Newbie
16. 10. 2016   #12
-
0
-

#11 Kit
Todle mi jde také, ale trošku jsme se zřejmě nepochopili....

Já budu v prohlížeči zadávat index.php?url=1a660a85e9a2d02e976d

Zkrátka za index.php?url= budu dávat různé koncovky (různé videa)

Proto tam je nadefinované toto: 

$koncovka = $_GET["url"];
$url_parsovani = "http://www.streamuj.tv/video/$koncovka";

$url = "$url_parsovani";

A dle toho jak dám, příklad: index.php?url=1a660a85e9a2d02e976d tak to doplní dané údaje ze zdrojového kódu odkazu: http://www.streamuj.tv/video/1a660a85e9a2d02e976d

Odtamtud právě potřebuji vytáhnout jen to:  

http://www.streamuj.tv/video/b3206510ddcec839d3d4?streamuj=original,http://www.streamuj.tv/video/b3206510ddcec839d3d4?streamuj=hd

Aby se to uložilo jako sem takto: 

$_res_null = "http://www.streamuj.tv/video/1a660a85e9a2d02e976d?streamuj=original,http://www.streamuj.tv/video/1a660a85e9a2d02e976d?streamuj=hd";
Nahlásit jako SPAM
IP: 89.103.172.–
Řešení
peter
~ Anonymní uživatel
3981 příspěvků
17. 10. 2016   #13
-
+1
-
Zajímavé
Vyřešeno Nejlepší odpověď

   

<?php
// http://php.net/…n.strpos.php
$str = '<iframe src="http://www.streamuj.tv/video/b3206510ddcec839d3d4?remote=1&width=960&height=540" width="975" height="555" scrolling="no" frameborder="0"></iframe>';
$a = strpos($str,'"'); $a++;
$b = strpos($str,'"',$a);
$c = strrpos($str,'/',-$b); $c++;
$d = strpos($str,'?',$c);
$d = $d>0 ? $d : $b;
$url = substr($str,$a,$b-$a);
$id1  = substr($str,$c,$c-$a);
$id2  = substr($str,$c,$d-$c);
var_dump(
$a, $b, $c, $d, 
$str, $url, $id1, $id2	//htmlspecialchars(
);
?>

Mi teda neni jasne, proc to nedelas v javascriptu.
 

Nahlásit jako SPAM
IP: 2001:718:2601:26c:9129:b8...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

Podobná vlákna

SIMPLE HTML DOM - Pomoc — založil webdorf

Simple factory method — založil vigum

Simple machines forum — založil Sythes

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý