Source:


<html>
<head>
<link href="php.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php 

/* 
    Maak een pagina met verwijzingen naar favorieten. 
*/ 
function pagina_opmaken()  

    
// het bestand met de verwijzingen in een array inlezen 
    
$array_favorieten file("favo.txt"); 
     
    
// de regelovergangen uit de tabel verwijderen, die worden bij het  
    //wegschrijven van het bestand opnieuw toegevoegd 
    
for ($i=0$i<count($array_favorieten); $i++) 
    {  
        
$array_favorieten[$i] = trim($array_favorieten[$i]); 
    } 

    
// tellen hoeveel elementen er in de tabel zijn terechtgekomen 
    
$totaal sizeof($array_favorieten); 

    
// als er geen verwijzingen zijn een melding geven 
    
if ($totaal == 0)  
    { 
        echo 
"<p>Er zijn geen favorieten gevonden.</p>"
    }  
    else  
    { 
        
// een variabele om te bepalen of de naam van de rubriek getoond moet worden 
        
$rubriek_vorig ""

        
// van elk element in de array een verwijzing maken 
        
foreach ($array_favorieten as $regel)  
        { 
            
// regel opsplitsen in rubriek, linknaam en linkurl 
            // zoeken naar  de haakjes, let daarbij op de beginpositie voor het zoeken 

            
$vanaf1 strpos($regel'('0) + 1;     
            
$lengte1 strpos($regel')'0) - $vanaf1
            
$rubriek substr($regel$vanaf1$lengte1); 

            
$vanaf2  strpos($regel'('$vanaf1+$lengte1) + 1
            
$lengte2    strpos($regel')'$vanaf2) - $vanaf2
            
$linknaam  substr($regel$vanaf2$lengte2); 

            
$vanaf3  strpos($regel'('$vanaf2+$lengte2) + 1
            
$lengte3    strpos($regel')'$vanaf3) - $vanaf3
            
$linkurl substr($regel$vanaf3$lengte3); 

            
//  rubriek alleen bij verandering tonen 
            
if ($rubriek != $rubriek_vorig)  
            { 
                echo 
'<p><b>' $rubriek '</b></p>'
                
$rubriek_vorig $rubriek
            } 

            
// de verwijzing zelf, voorzien van de knop Gooi weg 
            
echo 
                <form action="'
.$_SERVER['PHP_SELF'].'" method="post"> 
                <input type="submit" name="welke_actie" value="Gooi weg"> 
                <input type="hidden" name="regel" value="' 
$regel '"> 
                <input type="hidden" name="password" value="' 
$_POST['password'] . '">  
                <a target="_blank" href="' 
$linkurl '">' $linknaam '</a></form><br>'
  
        } 
// einde foreach() 

    
// einde if ($totaal == 0)  

    
echo 
        <form action="'
.$_SERVER['PHP_SELF'].'" method="post"> 
        <input type="hidden" name="password" value="' 
$_POST['password'] . '">  
        <input type="submit" name="welke_actie" value="Nieuw"></form>'


//einde pagina_opmaken() 

/* 
    Een verwijzing uit het bestand verwijderen. 
*/  
function verwijzing_verwijderen($v_regel)  

    
// het bestand met de verwijzingen in een array inlezen 
    
$array_favorieten file("favo.txt"); 

    
// de regelovergangen uit de tabel verwijderen, die worden bij  
    // het wegschrijven van het bestand opnieuw toegevoegd 
    
for ($i=0$i<count($array_favorieten); $i++) 
    { 
        
$array_favorieten[$i] = trim($array_favorieten[$i]); 
    } 

    
// opzoeken welk element het in de tabel is 
    
$array_index  array_search($v_regel$array_favorieten); 

    
// de verwijzing verwijderen 
    
array_splice($array_favorieten$array_index1); 

    
// de tabel samenvoegen tot een bestand 
    
$favo_bestand implode("\r\n"$array_favorieten); 
     
    
// het bestand met favorieten wegschrijven 
    
$fh_favo fopen("favo.txt""w"); 
    if (
$fh_favo)  
    { 
        
fwrite($fh_favo$favo_bestand); 
    } 
    
fclose($fh_favo); 

// einde verwijzing_verwijderen() 

/* 
    Een nieuwe verwijzing toevoegen. 

    De terugkeerwaarde van deze functie: 
    true: de toevoeging is helemaal afgerond, de favorietenpagina kan opnieuw getoond worden 
    false: de toevoeging is nog onderhanden 
*/ 
function verwijzing_toevoegen()  

    
// de drie velden die een nieuwe inhoud zullen krijgen 
    
$t_rubriek ""
    
$t_linknaam ""
    
$t_linkurl ""

    
// controleer of de rubriek ingevuld is 
    
if (IsSet($_POST['rubriek'])) 
    { 
        
$t_rubriek $_POST['rubriek']; 
    } 

    
// controleer of de linknaam ingevuld is 
    
if (IsSet($_POST['linknaam'])) 
    { 
        
$t_linknaam $_POST['linknaam']; 
    } 

    
// controleer of de linkurl ingevuld is 
    
if (IsSet($_POST['linkurl'])) 
    { 
        
$t_linkurl $_POST['linkurl']; 
    } 


    
// als alledrie de velden zijn ingevuld: bestand met favorieten aanpassen 
    
if ($t_rubriek != "" && $t_linknaam != "" && $t_linkurl != ""
    { 
        
bestand_aanpassen($t_rubriek$t_linknaam$t_linkurl); 
        return 
true
    } 

    
// als niet alledrie de velden ingevuld zijn: een melding en het formulier opnieuw tonen 
    
echo 'Alle velden moeten verplicht ingevuld worden!'
    
invoerformulier($t_rubriek$t_linknaam$t_linkurl); 
    return 
false

// einde verwijzing_toevoegen() 

/*  
    Het bestand met favorieten daadwerkelijk aanpassen. 

    In de andere drie variabelen staan eventueel aangepaste gegevens. 
*/ 
function bestand_aanpassen ($b_rubriek$b_linknaam$b_linkurl
{  
    
// inhoud van de nieuwe verwijzing samenstellen 
    
$b_nieuwe_regel '(' $b_rubriek ')(' $b_linknaam ')(' $b_linkurl ')'

    
// het bestand met de verwijzingen in een array inlezen 
    
$array_favorieten file("favo.txt"); 

    
// de regelovergangen uit de tabel verwijderen, die worden bij het  
    //wegschrijven van het bestand opnieuw toegevoegd 
    
for ($i=0$i<count($array_favorieten); $i++) 
    {  
        
$array_favorieten[$i] = trim($array_favorieten[$i]); 
    } 

    
// de nieuwe verwijzing toevoegen 
    
array_push($array_favorieten$b_nieuwe_regel); 

    
// de array sorteren zodat de favorieten in de goede volgorde getoond worden 
    
sort ($array_favorieten); 

    
// de array samenvoegen tot een bestand 
    
$favo_bestand implode("\r\n"$array_favorieten); 

     
    
// het bestand met favorieten wegschrijven 
    
$fh_favo fopen("favo.txt""w"); 
    if (
$fh_favo)  
    { 
        
fwrite($fh_favo$favo_bestand); 
    } 
    
fclose($fh_favo);  

// einde bestand_aanpassen () 

/* 
    Toon een formulier waarmee een verwijzing aangepast kan worden. 

    In de andere drie velden staan eventueel aangepaste gegevens. 
*/ 

function invoerformulier ($f_regel$f_rubriek$f_linknaam$f_linkurl

    
// het formulier voor een nieuwe verwijzing naar het scherm schrijven 
    
echo 
        <form action="'
.$_SERVER['PHP_SELF'].'" method="post"> 
        <input type ="hidden" name="regel" value="' 
$f_regel '"> 
        <input type="hidden" name="password" value="' 
$_POST['password'] . '">  
        <p> 
        Rubriek:<br> 
        <input type="text" name="rubriek" size="50" maxlength="100" value="'
.$f_rubriek.'"><br> 
        Linknaam:<br> 
        <input type="text" name="linknaam" size="50" maxlength="100" value="'
.$f_linknaam.'"><br> 
        Link URL:<br> 
        <input type="text" name="linkurl" size="50" maxlength="255" value="'
.$f_linkurl.'"> 
        </p> 
        <p>Vul de inhoud van de rubriek en klik op Toevoegen! Alle velden zijn verplicht.</p> 
        <p><input type="submit" name="welke_actie" value="Toevoegen"></p> 
        </form> 
        '


// einde invoerformulier() 

?>
</body>
</html>
1