de funtie in_array werkt niet, de array haalt hij uit een bestandje, zo wil ik kijken of de toegevoegde link bestaat, als dit zo is voegt hij em niet toe, anders wel
$inhoud is geen array, ik denk dat het daarom niet werkt, is een een soortgelijke functie?
<?php
$fp=fopen("links.txt","r");
$inhoud=fgets($fp);
fclose($fp);
if(in_array($_POST['link'], $inhoud))
{
echo "De website". $_POST['link'] ."bestaat al in de lijst.";
}
else
{
voeg link toe
}
?>
wanneer hij de inhoud van dat textbestand in een $var heeft staan kan je die gewoon even exploden. Ik neem aan dat je de verschillende URLS gescheiden hebt met een bepaald teken.
Wanneer je hem explode() hebt dan kan je met in_array werken.
<?php
$fp=fopen("links.txt","r");
$inhoud=fgets($fp);
fclose($fp);
$nagaan[0]=explode("*",$inhoud);
if(in_array($_POST['link'], $nagaan))
{
echo "De website". $_POST['link'] ."bestaat al in de lijst.";
}
else
{
voeg toe
}
?>
<?php
$fp=fopen("links.txt","r");
$inhoud=fgets($fp);
fclose($fp);
$nagaan['0']=explode("*",$inhoud);
if(in_array($_POST['link'], $nagaan['0']))
{
echo "De website". $_POST['link'] ."bestaat al in de lijst.";
}
else
{
voeg toe
}
?>
@Rensjuh: $nagaan[0] = goed 0; (getal nul) is een int dus zonder ''
@remy: $nagaan word al een array dus $nagaan[0] is niet nodig, anders krijg je een 2 dimensioneele array en dai heb je niet nodig.
Waarom zet je niet elke ingevoerde link op een niewe regel? Als je dit doet kun je de file als array openen met file() (http://www.php.net/file/).
<?php
//
// inhoud van txt file regel voor regel in $inhoud array inlezen
// $inhoud[0] = regel 1, $inhoud[1] = regel 2 enz...
$inhoud = file('./links.txt');
// controleren of de link al bestaat in lijst
if (in_array($_POST['link'], $inhoud)) {
echo 'De website ' . $_POST['link'] . ' bestaat al in de lijst!';
}
else {
// toevoegen
}
?>
<?php
//
// inhoud van txt file regel voor regel in $inhoud array inlezen
// $inhoud[0] = regel 1, $inhoud[1] = regel 2 enz...
Als je elke link op een aparte regel zet, wat natuurlijk je bestandje veel overzichtelijker maakt, let er dan wel op dat je \n toevoegd aan het einde van de regel. Doe je dit niet dan komt de volgende link er gewoon achter te staan en dan werkt je systeempje nietmeer.
<?php // link wegschrijven naar txt file
// open txt file, mode: a -> bestands pointer aan einde van bestand plaatsen
if (!$fh = fopen('./links.txt', 'a')) {
die('kan txt file niet openen!');
}
if (!$fw = fwrite($fh, $_POST['link'] . "\n", strlen($_POST['link']))) {
die('Kan niet naar txt file schrijven!');
}
fclose($fh);
?>
<?php// link wegschrijven naar txt file
// open txt file, mode: a -> bestands pointer aan einde van bestand plaatsen