login  Naam:   Wachtwoord: 
Registreer je!
 Forum

funtie in_array

Offline remy - 02/11/2004 15:34 (laatste wijziging 02/11/2004 15:35)
Avatar van remyPHP ver gevorderde 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?

  1. <?php
  2. $fp=fopen("links.txt","r");
  3. $inhoud=fgets($fp);
  4. fclose($fp);
  5.  
  6.  
  7. if(in_array($_POST['link'], $inhoud))
  8. {
  9. echo "De website". $_POST['link'] ."bestaat al in de lijst.";
  10. }
  11. else
  12. {
  13.  
  14. voeg link toe
  15.  
  16. }
  17. ?>

6 antwoorden

Gesponsorde links
Offline Gerard - 02/11/2004 15:39
Avatar van Gerard Ouwe rakker 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.
Offline remy - 02/11/2004 15:41 (laatste wijziging 02/11/2004 16:05)
Avatar van remy PHP ver gevorderde hmm, hij voegt em gewoon toe:s

ik gebruik ook meerdere splittekens, maar dit werkt niet ;
  1. <?php
  2. $fp=fopen("links.txt","r");
  3. $inhoud=fgets($fp);
  4. fclose($fp);
  5.  
  6. $nagaan[0]=explode("*",$inhoud);
  7. if(in_array($_POST['link'], $nagaan))
  8. {
  9. echo "De website". $_POST['link'] ."bestaat al in de lijst.";
  10. }
  11. else
  12. {
  13. voeg toe
  14. }
  15. ?>
Offline Rens - 02/11/2004 18:43
Avatar van Rens Gouden medaille

Crew algemeen
  1. <?php
  2. $fp=fopen("links.txt","r");
  3. $inhoud=fgets($fp);
  4. fclose($fp);
  5.  
  6. $nagaan['0']=explode("*",$inhoud);
  7. if(in_array($_POST['link'], $nagaan['0']))
  8. {
  9. echo "De website". $_POST['link'] ."bestaat al in de lijst.";
  10. }
  11. else
  12. {
  13. voeg toe
  14. }
  15. ?>


De waarden moeten allebei een array zijn, anders werkt het niet.

Mzzls,
Rensjuh
Offline DRUNK - 02/11/2004 18:52 (laatste wijziging 02/11/2004 18:55)
Avatar van DRUNK PHP gevorderde bool in_array ( mixed needle, array haystack [, bool strict])

@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/).
  1. <?php
  2. //
  3. // inhoud van txt file regel voor regel in $inhoud array inlezen
  4. // $inhoud[0] = regel 1, $inhoud[1] = regel 2 enz...
  5. $inhoud = file('./links.txt');
  6.  
  7. // controleren of de link al bestaat in lijst
  8. if (in_array($_POST['link'], $inhoud)) {
  9. echo 'De website ' . $_POST['link'] . ' bestaat al in de lijst!';
  10. }
  11. else {
  12.  
  13. // toevoegen
  14. }
  15. ?>
Offline remy - 02/11/2004 20:43
Avatar van remy PHP ver gevorderde ow op een nieuwe regel, ik heb het geprobeerd, maar het leek me niet de goede oplossing:D
ik zal nu nog es proberen:cool:
Offline DRUNK - 02/11/2004 22:05
Avatar van DRUNK PHP gevorderde 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.
  1. <?php // link wegschrijven naar txt file
  2.  
  3. // open txt file, mode: a -> bestands pointer aan einde van bestand plaatsen
  4. if (!$fh = fopen('./links.txt', 'a')) {
  5. die('kan txt file niet openen!');
  6. }
  7. if (!$fw = fwrite($fh, $_POST['link'] . "\n", strlen($_POST['link']))) {
  8. die('Kan niet naar txt file schrijven!');
  9. }
  10. fclose($fh);
  11. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.232s