webmaster webmastering webdesign

Jesteś tutaj: webmade.org >> porady >> php + mysql

Kolejne zastosowanie fopen (URL)

autor: Piotr 'Redelek' Redel, ostatnia modyfikacja: 2008-04-09

szukaj: 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):

przykład użycia fopen():

$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

Osoby czytające tę publikację przeglądały również:

Chcesz zostać programistą?

Poznaj 6 kroków do efektywnej
nauki programowania!

 

valid XHTML
valid CSS
© 2004-2008 copyright by webmade.org