Jesteś tutaj: webmade.org >> porady >> php + mysql
autor: Piotr 'Redelek' Redel, ostatnia modyfikacja: 2008-04-09
 sprawdzanie adresu URL
 sprawdzanie adresu URL  funkcja fopen
 funkcja fopen  wrapper
 wrapper Na podstawie artykułu Mateusza Zapis i odczyt pliku postaram się pokazać Wam drugie oblicze fopen. Dla przypomnienia opiszę co potrafi fopen():
Uchwyt ten może mieć dwa zastosowania file (uchwyt do lokalnego pliku) i url (uchwyt do zasobu wykorzystując wrapper-a).
Opis uchwytu fopen:
fopen (string $filename , string $mode [, bool $use_include_path [, resource $context ]] )
Lista możliwych trybów (mode):
$uchwyt = fopen ('c:\\data.txt', 'r');Prawda, że proste? Zobaczmy jak to działa w skrypcie. Przygotowałem bardzo prostą stronę, której zadaniem jest sprawdzenie czy adres innej strony lub link do artykułu istnieje.
Na początku skryptu zajmiemy się funkcją, w której zamkniemy sprawdzanie URL-a.
function spr_url($url)
{
$uchwyt = @fopen($url,'r');
if($uchwyt !== false){
echo '<b><font color="green">DZIAŁA !!! )</font></b>';
}else {
echo '<b><font color="red">NIE DZIAŁA ( !!!</font></b>';
      }
}Funkcja ma za zadanie sprawdzenie naszej strony lub linku i podać wynik, tzn. czy działa czy nie. Dopiszmy więc formularz, do którego będzie wpisywany adres strony. Będzie on wyglądał tak:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Sprawdzanie URL</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> <meta name="generator" content="PSPad editor, www.pspad.com"> </head> <body> <form action="sprawdzanie_linku.php" method="post" enctype="text/html" name="uploadform"> <div> <div> <label for="f_url">Podaj adres URL</label> <input size="100" maxlength="100" name="f_url" class="text" type="text" value="http://"> </div> <div> <input id="upload" name="upload" class="submit" type="submit" value="Sprawdź linka"> </div> </form> </div> </body> </html>
Samego formularza html nie ma co wyjaśniać, jest bardzo prosty i przejrzysty. Składa się z jednego pola typu text i jednego klawisza submit.
Całość przedstawia się tak:
<?php
function spr_url($url)
{
$handle = @fopen($url,'r');
if($handle !== false){
echo '<b><font color="green">OK</font></b>';
}
else {
echo '<b><font color="red">FILLED</font></b>';
}
}
#### koniec funkcji ###
if(isset($_POST['upload']))
{
$p_url = $_POST['f_url'];
if ($p_url == ''or $p_url == 'http://')
{
echo '<p><span style="color:red;">BRAK URL. POPRAW</span></p>';
echo '<a href="sprawdzanie_linku.php" style="text-decoration:none;">Popraw</a>';
exit;
} else
 {
spr_url($p_url);
echo '<br>';
echo '<a href="sprawdzanie_linku.php" style="text-decoration:none;">Sprawdź kolejny link..</a>';
exit;
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Sprawdzanie URL</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<meta name="generator" content="PSPad editor, www.pspad.com">
</head>
<body>
<form action="sprawdzanie_linku.php" method="post" enctype="text/html" name="uploadform">
<div>
<div>
<label for="f_url">Podaj adres URL</label>
<input size="100" maxlength="100" name="f_url" class="text" type="text" value="http://">
</div>
<div>
<input id="upload" name="upload" class="submit" type="submit" value="Sprawdź linka">
</div>
</form>
</div>
</body>
</html>Dodałem zabezpieczenie formularza, żeby przypadkiem nikt z innej strony nam się nie podszył. Zabezpieczenie polega na sprawdzeniu nazwy klawisza (submit).
Dzięki tak użytemu uchwytowi możemy sprawdzić czy działa taki url http://www.onet.pl lub link http://jakastrona/www/index.php .
Skrypt zareaguje na wszystko poprawnie i pokaże odpowiedni komunikat ujęty w kodzie. Może nie jest szybki, ale pomysły do modernizacji i przyspieszenia go pozostawiam Wam.
Źródła:
Piotr 'Redelek' Redel
szukaj:  sprawdzanie adresu URL
 sprawdzanie adresu URL  funkcja fopen
 funkcja fopen  wrapper
 wrapper 
Osoby czytające tę publikację przeglądały również:
 blog
blog porady
porady artykuły
artykuły recenzje
recenzje wiadomości
wiadomości
  
 © 2004-2008 copyright by webmade.org
© 2004-2008 copyright by webmade.org