
Autor: CEZI
W tym artykule prezentuję kilka przydatnych funkcji, których brak w PHP, a okazują się bardzo przydatne podczas tworzenia stron w PHP.
Wyciąganie treści z Meta tagów
Oto przykład funkcji, która przydaje się do wyciągania zawartości meta tagów. Czasami zachodzi potrzeba skorzystania z takiej funkcji, więc daje ten kod ku ogólnemu pożytkowi
<? function wybierz_meta_tagi($adres) { function wyczysc_tagi($arg) { $arg=str_replace("\"","",$arg); $arg=str_replace("=","",$arg); $arg=str_replace(">","",$arg); return $arg; } $meta_tags=array(); $meta_tmp=""; $fp=fopen($adres,"r"); while($bf=fgets($fp,1024)) { $bf=strtolower($bf); if(substr_count($bf,"meta")!=0) { $meta_tmp.=chop($bf); } } fclose($fp); $meta_tmp=split("<",$meta_tmp); for ($i = 0; $i < count($meta_tmp); $i++) { if(eregi("name(.*) content(.*)", $meta_tmp[$i], $rgs)) { $rgs[1]=wyczysc_tagi(str_replace(" ","",$rgs[1])); $rgs[2]=wyczysc_tagi($rgs[2]); $meta_tags[$rgs[1]]=$rgs[2]; } } if(count($meta_tags)==0) { $meta_tags=FALSE; } return $meta_tags; } $tagi=wybierz_meta_tagi("http://pajaczek.pl/"); if(!$tagi) { echo "BRAK"; } else { print_r($tagi); } ?>
Logowanie dla wielu loginów i haseł
Nie trzeba tutaj raczej nic tłumaczyć. Loginy i hasła przechowywane są w tablicach. Jest to prosty przykład logowania kilku osób na raz.
<? $LOGINS=array("cezi", "santana", "lockoom"); $PASSWORDS=array("ble1", "ble2", "ble3"); function checkUser($name, $pass) { global $LOGINS; $PASSWORDS; for ($i = 0; $i < count($LOGINS); $i++) { if($name==$LOGINS[$i]&&$pass==$PASSWORDS[$i]) { break; } } return ($i==count($LOGINS))?false:true; } if(empty($PHP_AUTH_USER)||!checkUser($PHP_AUTH_USER,$PHP_AUTH_PW)) { header("WWW-Authenticate: Basic enter=\"Logowanie\""); header("HTTP/1.0 401 Unauthorised"); } ?>
Generowanie losowego hasła
Krótki przykładzik skryptu służącego do generowania losowego hasła np. przy rejestrowaniu użytkownika w serwisie.
<? $ile_liter = 10; // Ile liter ma mieć losowany ciąg $litery= "abcdefghijklmnopqrstuvwxyz0123456789"; // Zestaw liter z jakich ma być zbudowany ciąg srand(time()); // 'Zamieszanie komory losującej:)' $haslo = ""; // Ustawienie początkowego hasła for ($i=0;$i<$ile_liter;$i++) { $haslo .= substr($litery,(rand()%(strlen($litery))),1); } ; echo ($haslo); // W tej zmiennej jest nasze losowo wygenerowane hasło ?>
Skracanie stringa + dodanie kropek
Czasami potrzebne jest skracanie przy wyświetlaniu – przykład możesz zobaczyć przy pokazaniu ostatnich wiadomości z forum Cream Software. Oto odpowiedni kod:
<? $string="Tekst, który chcemy skracać"; if(strlen($string)>22) { $string=subst($string,0,19); $string=$string."..."; } ?>
Cookies – zapis kilku do jednego pliku
Przykład tworzenia cookie, a konkretnie kilku cookie do jednego pliku cookie. Brzmi pogmatwanie, ale nie jest to skomplikowane.
<? $a="Ala"; $b="ma"; $c="kota"; setcookie ("ciacho[aaa]", $a, time()+3600*30); setcookie ("ciacho[bbb]", $b, time()+3600*30); setcookie ("ciacho[ccc]", $c, time()+3600*30); ?>
Wbrew pozorom zostaje zapisane jedno ciacho, które zawiera tablice $ciacho z trzema elementami o indeksach aaa, bbb, ccc potem możesz sprawdzić (po przeładowaniu strony): echo(„$ciacho[aaa] $ciacho[bbb] $ciacho[ccc]”);
Proste prawda ?
Wysłanie e-mail w postaci HTML
Choć format HTML nie jest za bardzo lubiany, czasem trzeba coś takiego oprogramować. Oto szybki przykładzik.
<? setlocale('LC_TIME','polish'); $data=strftime("%A, %d %B %Y"); $message ="<html>"; $message .="<head>"; $message .="<title>test</title>"; $message .="</head>"; $message .="<body bgcolor=\"rgb(245,245,245)\">"; $message .="<font style=\"font-family:vrdana;color:darkblue;font-size:13px;font-weight:normal\">$imie ( < a HREF=mailto:$email>$email</ a> )<br>napisał:</FONT><br>"; $message .="<font style=\"font-family:vrdana;color:red;font-size:13px;font-weight:normal\">$tresc</font><br>"; $message .="< a HREF=\"http://www.mojserwer.pl\">http://www.mojserwer.pl</ A>"; $message .="< br>"; $message .="<font style=\"font-family:vrdana;color:darkblue;font-size:13px;font-weight:normal\">Data przeslania: $data</font>"; $message .="</body>"; $message .="</html>"; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; mail($adres,"Pytanie do nas",$message,$headers); ?>
Sprawdziłem wyciąganie meta tagów . Nie działa .