jak volat funkci?
13 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Zdravím, stáhnul jsem si z manuálu tuhle funkci na ověření url adresy, ale, ehm, nevím jak jí použít. Myslel jsem si, že bude stačit nastavit na začátku třeba ($link = 'www.centrum.cz') a potom že url_validate($link); vypíše, jestli jo nebo ne. Zásadně to ale ukazuje bílou obrazovku...Jak je to správně, prosím vás? function url_validate($link) { $url_parts = @parse_url( $link ); if ( empty( $url_parts["host"] ) ) return( false ); if ( !empty( $url_parts["path"] ) ) { $documentpath = $url_parts["path"]; } else { $documentpath = "/"; } if ( !empty( $url_parts["query"] ) ) { $documentpath .= "?" . $url_parts["query"]; } $host = $url_parts["host"]; $port = $url_parts["port"]; // Now (HTTP-)GET $documentpath at $host"; if (empty( $port ) ) $port = "80"; $socket = @fsockopen( $host, $port, $errno, $errstr, 30 ); if (!$socket) { return(false); } else { fwrite ($socket, "HEAD ".$documentpath." HTTP/1.0\r\nHost: $host\r\n\r\n"); $http_response = fgets( $socket, 22 ); if ( ereg("200 OK", $http_response, $regs ) ) { return(true); fclose( $socket ); } else { echo "HTTP-Response: $http_response<br>"; return(false); } } }
-
ta funkce vrací hodnotu true, nebo false, podle toho jestli link je nebo není. neříká nic o tom co se má v těchto případech udát. použití: <?php $link = 'www.centrum.cz'; if(url_validate($link)) { echo "link existuje"; //nebo jakékoliv jiné příkazy, které se mají vykonat } else { echo "link existuje"; //nebo jakékoliv jiné příkazy, které se mají vykonat } ?>
-
Teda pardon, nejen že vrací hodnotu true-false, ale ještě v případě neúspěchu vypisuje "HTTP-Response: $http_response<br>".
-
Díky za odpověď. Tvoje ukázka mi ale pořád vrací true, i když dám třeba $link = 'www.centrumxxx.cz';
-
je tam dvakrat echo "link existuje";, to druhy by melo byt asi "neexistuje"
-
jé promiň, já tam napsal to samý takže oprava: <?php $link = 'www.centrum.cz'; if(url_validate($link)) { echo "link existuje"; //nebo jakékoliv jiné příkazy, které se mají vykonat } else { echo "link NEexistuje"; //nebo jakékoliv jiné příkazy, které se mají vykonat } ?> Jiank tam místo toho echo "link (NE)existuje"; můžou být jakékoliv jiné instrukce, které je třeba vykonat v závislosti na existenci (neexistenci) linku.
-
kriste pane, já jsem vůl! Já to zkoušel horem dolem, ale abych si pořádně přečetl, co mi to má napsat... Díky mockrát!
-
jenom mám smůlu, že ta funkce označí za nefunkční skoro všechno...
-
Jestli to testujes zde na webzdarma, tak ti to bude furt hlasit FALSE. Protoze funkce fsockopen() je zde zakazana a tudiz nefunkcni. Chvalne odstran pred funkci @ a uvidis.
-
asi by šlo použít taky is_link(), viz: http://php.ftp.cvut.cz/manual/cs/function.is-link.php ale nikdá sem tuhle funkci sám nezkoušel
-
is_link() je trosku o necem jinem - symbolicke odkazy na linuxu, s hypertextem to nema vubec nic spolecneho.
-
no jo, to bych si taky musel ten manuál přečíst, když sem dávám ten odkaz :o) dík
-
kontrola odkazu by mela imho fungovat vesmes vsude pri pouziti FOPEN();