Autor | Zpráva | ||
---|---|---|---|
davef6 Profil |
#1 · Zasláno: 1. 10. 2009, 14:25:49
Dobrý den, dá se nějakou funkcí zjistit, zda je mp3 stále na vzdáleném serveru uložena nebo ne? případně nějaký příklad:) děkuji za odpovědi
|
||
Joker Profil |
#2 · Zasláno: 1. 10. 2009, 14:30:02
davef6:
Zkusit otevřít a kdyžtak se vrátí, že soubor neexistuje :-) |
||
davef6 Profil |
#3 · Zasláno: 1. 10. 2009, 14:32:21 · Upravil/a: davef6
zkoušel jsem toto, ale neni to vůbec spolehlivé
$fh = fopen($soubor, 'r'); $theData = fread($fh, 3); fclose($fh); if(empty($theData)) {} |
||
valecekm Profil |
#4 · Zasláno: 1. 10. 2009, 14:52:11
|
||
davef6 Profil |
#5 · Zasláno: 1. 10. 2009, 15:15:45
tak jsem vyzkoušel toto
$file = file_get_contents($soubor, NULL, NULL, 0, 10); if(empty($file)) {} a žádná změna k lepšímu:( |
||
valecekm Profil |
#6 · Zasláno: 1. 10. 2009, 16:12:27
davef6
chvilku vydrž mam řešení. ;-) |
||
davef6 Profil |
#7 · Zasláno: 1. 10. 2009, 16:28:47
to by bylo super:)
|
||
valecekm Profil |
#8 · Zasláno: 1. 10. 2009, 16:31:12 · Upravil/a: valecekm
Je to sice šílené řešení, ale u mně funguje. Zkušenější mohou případně upravit (zatim jsem totiž s hlavičkama nějak více blíže nepracoval, proto to řešim přes vyhledaní OK).
<?php $soubor = "http://newagegames.cz/20autoskola.mp3"; // hledany soubor $zavolej = get_headers($soubor); // vrati hlavicku (pole) $vyhodnot = strpos($zavolej[0], "OK"); // vyhleda v prvnim prvku pole jestli bylo vraceno "OK" jinak vrati false if( $vyhodnot == false ){echo "nenalezeno";} // nenalezeno else {echo "nalezeno";} // jinak nalezeno // Pro pripadne vysvetleni odkomentovat (/**/) a uvidis vysledek /* echo "<br><br>"; print_r($zavolej); */ ?> Kde je ale funkce get_headers zakázána, tak tam slavit úspěch nebudeš. Pokud by zkuš. borci věděli jak to vytahat spolehlivějš z hlavičky nebo nějak jinak, tak napište, tohle mě jen tak napadlo jak to obejít místo přečtení souboru ;-) . |
||
Fergi Profil |
#9 · Zasláno: 1. 10. 2009, 16:32:04 · Upravil/a: Fergi
zkus
$file = file_get_contents($filename); if(!$file){} ? edit: Mozna bych jeste overil jestli se jedna o MP3 (viz http://php.vrana.cz/zjisteni-typu-souboru.php) |
||
davef6 Profil |
#10 · Zasláno: 1. 10. 2009, 16:37:41
díky za řešení, vyzkouším:)
|
||
DoubleThink Profil * |
#11 · Zasláno: 1. 10. 2009, 17:01:32 · Upravil/a: DoubleThink
„Je to sice šílené řešení, ale u mně funguje.“
Šílené, ale jediné zatím správné. Není důvod načítat celý soubor jenom proto, abych se ujistil, že existuje. $headers = get_headers("http://newagegames.cz/20autoskola.mp3", 1); if(strpos($headers[0], 'OK') !== false){ // soubor existuje } |
||
valecekm Profil |
#12 · Zasláno: 1. 10. 2009, 17:23:04
davef6
Jinak to moje řešení bylo jen na ukázku, rychlejší a úspornější je od DoubleThink, ja to rozepisoval a rval tam tunu proměnnejch aby to bylo pouze lépe pochopitelné. Použij to od DoubleThink. Ale říkam kde fce get_headers() |
||
Joker Profil |
#13 · Zasláno: 1. 10. 2009, 17:33:10
DoubleThink:
„Není důvod načítat celý soubor jenom proto, abych se ujistil, že existuje.“ Tak nebylo by třeba ho číst celý... stačilo by například přečíst 4 bajty a zkontrolovat, jestli to je 255 255 255 251 :-) |
||
davef6 Profil |
#14 · Zasláno: 1. 10. 2009, 17:42:39
tak jsem zjistil, že
get_headers() |
||
valecekm Profil |
#15 · Zasláno: 1. 10. 2009, 17:52:51
davef6
zjistiljsi to pouze z internetu a nebo jsi to sam vyskousel na svem hostingu? Pokud ti to na tvem host. pujde a nedelas nejakou komercni aplikaci, ktera by mela slapat vsude, tak bych to neresil. Hlavicky by se meli dat zjistit i jinym zpusobem ;-). Jen hledat, ja se sem dnes uz asi nedostanu, takze stim ti uz neporadim. |
||
DoubleThink Profil * |
#16 · Zasláno: 1. 10. 2009, 18:01:18
„neni povolena na většině:( takže zase nic“
Možná freehostů, ale tam je spíš vypnutá direktiva allow_url_fopen. V takovém případě ti nebude fungovat žádná ze zmíněných funkcí, včetně fopen a file_get_contents. Zbývá pak už jen fsockopen, možná cURL. |
||
Časová prodleva: 14 let
|
0