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 sa 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 miec losowany ciąg 

$litery= "abcdefghijklmnopqrstuvwxyz0123456789"; // Zestaw liter z jakich ma być zbudowany ciąg 

srand(time()); // 'Zamieszanie komory losującej:)' 

$haslo = ""; // Ustawienie pocz¹tkowe hasaa 

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 – przyklad możesz zobaczyć przy pokazaniu ostatnich wiadomości z forum Cream Software. Oto odpowiedni kod:

<? 
$string="Tekst ktory chcemy skracac"; 

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, ktore zawiera tablice $ciacho z trzema elementami o indeksach aaa, bbb, ccc potem mozesz sprawdzic (po przeladowaniu 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); 
?>