Hľadanie v kode a vratenie prveho vysledku

Programovacie jazyky, rady, poradňa...
saskoo49
Expert
Expert
Príspevky: 152
Registrovaný: 02 apr 2008, 18:39

Hľadanie v kode a vratenie prveho vysledku

Príspevok od používateľa saskoo49 »

Vie mi niekto poradiť nejaký script, ktorý by hľadal na stránke niečo, a vrátil prvé slovo/link ktorý by našiel? Pripadne ak by to bolo nastavené tak že najde iba jeden výsledok.

Napr. by to fungovalo tak, že v prehrávači by sa prehrával link, ktorý je uvedený na určitej stránke, ale často sa mení, ale na tej stránke je uverejnený.
Tak by ho vyhľadalo na určenej adrese a vrátilo iba hodnotu toho výsledku. napr.

Kód: Vybrať všetko

http://www.nazov.sk/aa.php?id=271g&=ODgd0NjAd13MD1Q==&sftrsam=play
Tento link by sa vložil do prehrávača a spustil.

Ďakujem.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Hľadanie v kode a vratenie prveho vysledku

Príspevok od používateľa audiotrack »

v akom jazyku?
saskoo49
Expert
Expert
Príspevky: 152
Registrovaný: 02 apr 2008, 18:39

Re: Hľadanie v kode a vratenie prveho vysledku

Príspevok od používateľa saskoo49 »

PHP
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Hľadanie v kode a vratenie prveho vysledku

Príspevok od používateľa audiotrack »

tak ešte treba napísať tú stránku, alebo čo je pre ten odkaz charakteristické aby sa vedel rozpoznať keď sa mení. Predpokladám že tam bude viac odkazov a nie len ten jeden
saskoo49
Expert
Expert
Príspevky: 152
Registrovaný: 02 apr 2008, 18:39

Re: Hľadanie v kode a vratenie prveho vysledku

Príspevok od používateľa saskoo49 »

jedná sa o stránku:

Kód: Vybrať všetko

http://www.zapni.tv/play.php?id=271
ide mi o ten link čo je úplne na konci. teraz momentálne je:

Kód: Vybrať všetko

http://www.zapni.tv/stream/vlc.php?id=271&session=MTMzODA3MDM1MQ==&stream=play
chcem aby tento link hral na stránke vo VLC playeri, ale niekedy sa mení, a vzdy to ručne prepisovať je dost neprakticke. takze vzdy pustalo link, ktory je zverejnený na tej stránke. :)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Hľadanie v kode a vratenie prveho vysledku

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

$url = "http://www.zapni.tv/play.php?id=271"; 
$input = @file_get_contents($url) or die("Could not access file: $url"); 
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(http.*)<\/a>"; 
if(preg_match_all("/$regexp/siU", $input, $matches)) echo $matches[3][0]; 
saskoo49
Expert
Expert
Príspevky: 152
Registrovaný: 02 apr 2008, 18:39

Re: Hľadanie v kode a vratenie prveho vysledku

Príspevok od používateľa saskoo49 »

Super :) diki moc. Funguje to výborne :)

Ak by niekto potreboval tak som to upravil priamo do VLC prehravača na stranku a vysledny kod vyzera takto. Nevedel som to spravit tak aby to fungovalo priamo do prehrávača, tak som to spravil so zápisom do súboru, ktorý potom prehrávač prehrá.

Kód: Vybrať všetko

<?php
$url = "http://www.zapni.tv/play.php?id=39"; 
$input = @file_get_contents($url) or die("Could not access file: $url"); 
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(http.*)<\/a>"; 
if(preg_match_all("/$regexp/siU", $input, $matches));
$tv = $matches[3][0]; 
$file = "dat/tv/ct1.dat";
$open_file = fopen ($file,'w+'); 
$link = "$tv"; 
rewind ($open_file); 
fwrite ($open_file, $link); 
fclose ($open_file); 
?>
<BODY onLoad="init();"> 
<OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" codebase="http://downloads.videolan.org/pub/videolan/dat/vlc/latest/win32/axvlc.cab#Version=0,8,6,0" width="500" height="375" id="vlc" events="True"> 
<param name="MRL" value="<?php include "dat/tv/ct1.dat";?>" /> 
<param name="ShowDisplay" value="True" /><param name="AutoLoop" value="False" /><param name="AutoPlay" value="True" /><param name="Volume" value="50" /><param name="StartTime" value="0" /> 
<EMBED pluginspage="http://www.videolan.org" target="<?php include "dat/tv/ct1.dat";?>"
type="application/x-vlc-plugin"
progid="VideoLAN.VLCPlugin.2"
width="500"
height="375"
name="vlc"> 
</EMBED></OBJECT>
djdrahos
Novice
Novice
Príspevky: 1
Registrovaný: 19 jún 2012, 1:27

Re: Hľadanie v kode a vratenie prveho vysledku

Príspevok od používateľa djdrahos »

Kód: Vybrať všetko

$url = "http://www.zapni.tv/play.php?id=271";
$input = @file_get_contents($url) or die("Could not access file: $url");
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(http.*)<\/a>";
if(preg_match_all("/$regexp/siU", $input, $matches)) echo $matches[3][0]; 
tento kód asi nefunguje dobre, neviem kde moze byt chyba
Originál:

Kód: Vybrať všetko

http://www.zapni.tv/stream/vlc.php?id=245&session=NjM1MzgxOTU0ODEy&stream=play
Vracia:

Kód: Vybrať všetko

http://www.zapni.tv/stream/vlc.php?id=245&session=ODk0MjYxNjIyMDE=&stream=play
Otestujte tu:
http://www.easybetmoney.ic.cz/test/

//autoeditácia príspevku (19 Jún 2012, 1:41)

Kód: Vybrať všetko

<?php
$url = "http://www.zapni.tv/play.php?id=39";
$input = @file_get_contents($url) or die("Could not access file: $url");
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(http.*)<\/a>";
if(preg_match_all("/$regexp/siU", $input, $matches));
$tv = $matches[3][0];
$file = "dat/tv/ct1.dat";
$open_file = fopen ($file,'w+');
$link = "$tv";
rewind ($open_file);
fwrite ($open_file, $link);
fclose ($open_file);
?>
<BODY onLoad="init();">
<OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" codebase="http://downloads.videolan.org/pub/videolan/dat/vlc/latest/win32/axvlc.cab#Version=0,8,6,0" width="500" height="375" id="vlc" events="True">
<param name="MRL" value="<?php include "dat/tv/ct1.dat";?>" />
<param name="ShowDisplay" value="True" /><param name="AutoLoop" value="False" /><param name="AutoPlay" value="True" /><param name="Volume" value="50" /><param name="StartTime" value="0" />
<EMBED pluginspage="http://www.videolan.org" target="<?php include "dat/tv/ct1.dat";?>"
type="application/x-vlc-plugin"
progid="VideoLAN.VLCPlugin.2"
width="500"
height="375"
name="vlc">
</EMBED></OBJECT>
Dalo by sa to nejako opraviť, aby to fungovalo?

VLC Player EMBED nespusťí <?php include('nieco.dat'); ?>

//autoeditácia príspevku (19 Jún 2012, 1:52)
Tuto je podobný funkčný script:
http://www.tetristv.com/zapni.tv.php

Inak našiel som k tejto téme toho dosť, ale nič nefunguje:
http://stream-recorder.com/forum/archiv ... 10295.html

http://www.codingforums.com/showthread.php?t=241411

http://code.google.com/p/xlivecz/source ... v.php?r=58

http://stackoverflow.com/questions/1105 ... characters
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Hľadanie v kode a vratenie prveho vysledku

Príspevok od používateľa audiotrack »

funguje správne, to že sa tam mení session je normálne, generuje sa pre každý prístup samostatne. Nie je to chyba skriptu, je to chyba zvyšku tvojej aplikácie (že si session ďalej nepredávaš a preto ťa nevie identifikovať alebo čo ja viem čo. Neviem čo všetko ten web robí. On chcel iba odchytiť link, tak som viac nepozeral)
saskoo49
Expert
Expert
Príspevky: 152
Registrovaný: 02 apr 2008, 18:39

Re: Hľadanie v kode a vratenie prveho vysledku

Príspevok od používateľa saskoo49 »

audiotrack napísal:

Kód: Vybrať všetko

$url = "http://www.zapni.tv/play.php?id=271"; 
$input = @file_get_contents($url) or die("Could not access file: $url"); 
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(http.*)<\/a>"; 
if(preg_match_all("/$regexp/siU", $input, $matches)) echo $matches[3][0]; 
Nedal by sa tento kód prerobit tak aby hľadal text zadaný v premennej $hladaj napríklad:

Kód: Vybrať všetko

$hladaj = "16 blokov";
$url = "http://www.spusti.eu/filmy/vypis"; 
$input = @file_get_contents($url) or die("Could not access file: $url"); 
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(http.*)<\/a>"; 
if(preg_match_all("/$regexp/siU", $input, $matches)) echo $matches[3][0];
Aby to potom vypísalo výsledok:

Kód: Vybrať všetko

<a href="play-200">16 blokov (2006)</a>
prípadne aby vypísalo aj viac výsledkov ak by boli dostupné - ak by napríklad niekto zadal iba Harry Potter.

Neviem pracovať s kódom ktorý je v premennej $regexp preto s tým potrebujem pomôcť. Premennú $hladaj potom napojím na input.

Ďakujem.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Hľadanie v kode a vratenie prveho vysledku

Príspevok od používateľa audiotrack »

ak to má byť vyhľadávanie, tak to treba poriešiť inak a nie cez regexp. Tam je kopec znakov čo majú špeciálny význam (napríklad hviezdička, bodka, otáznik...) a toto ak zadá užívateľ do inputu, tak sa ten regexp bude úplne inak správať
pcsiete
Medium Star
Medium Star
Príspevky: 413
Registrovaný: 07 dec 2012, 18:47

Re: Hľadanie v kode a vratenie prveho vysledku

Príspevok od používateľa pcsiete »

audiotrack napísal:ak to má byť vyhľadávanie, tak to treba poriešiť inak a nie cez regexp. Tam je kopec znakov čo majú špeciálny význam (napríklad hviezdička, bodka, otáznik...) a toto ak zadá užívateľ do inputu, tak sa ten regexp bude úplne inak správať
Vsak si tie znaky vyescapuje a bude po probleme, ne?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Hľadanie v kode a vratenie prveho vysledku

Príspevok od používateľa audiotrack »

nebude, lebo nájde len presnú zhodu. A ak mám hľadať presnú zhodu, tak hľadať ani nemusím /alebo použijem niečo jednoduchšie, napr. str_pos()/. Aby to bolo vyhladávanie v tom pravom slova zmysle, musel by ten reťazec komplikovane upravovať (aby bralo ľubovolné znaky pred a za hľadaným; aby medzeru, tabulátor a podobne nahradilo za ľubovolný "biely znak" a podobne).
pcsiete
Medium Star
Medium Star
Príspevky: 413
Registrovaný: 07 dec 2012, 18:47

Re: Hľadanie v kode a vratenie prveho vysledku

Príspevok od používateľa pcsiete »

Ano to co as tyka vyhladavania tak to hej, ale to co as tyka toho inputu tak problem bude fuc.
saskoo49
Expert
Expert
Príspevky: 152
Registrovaný: 02 apr 2008, 18:39

Re: Hľadanie v kode a vratenie prveho vysledku

Príspevok od používateľa saskoo49 »

A dá sa nejako vyhľadávať na stránke ktorá nepoužíva SQL? Vedel by mi niekto poskytnúť kód? Aspon približný? Ďakujem.
Napísať odpoveď