login  Naam:   Wachtwoord: 
Registreer je!
 Forum

in_array (Opgelost)

Offline skillat2 - 04/02/2008 16:34
Avatar van skillat2HTML beginner Ik probeer te checken of een ip adres in ipbans.php staat.
De array is wel gevuldt, heeft iemand een idee?

  1. <?php
  2. # laat errors zien
  3.  
  4. # checken of het bestand wel bestaat
  5. if(file_exists('cache/ipbans.php'))
  6. {
  7. echo 'file exists';
  8. }
  9.  
  10. echo '<br /><br />';
  11.  
  12. # alle ip's in een array zetten
  13. $ip = file('cache/ipbans.php');
  14. # checken of het test ip in de array staat
  15. if(in_array('120.120.120.120',$ip))
  16. {
  17. echo 'yes';
  18. }
  19. else
  20. {
  21. echo 'no';
  22. }
  23.  
  24. echo '<br /><br />';
  25.  
  26. # array tonen
  27. print_r($ip);
  28. ?>


Output
Citaat:
file exists

no

Array ( [0] => 120.120.120.120 [1] => 120.120.120.121 )

14 antwoorden

Gesponsorde links
Offline marten - 04/02/2008 16:40
Avatar van marten Beheerder
  1. <?php
  2. # laat errors zien
  3.  
  4. # checken of het bestand wel bestaat
  5. if(file_exists('cache/ipbans.php'))
  6. {
  7. echo 'file exists';
  8. }
  9.  
  10. echo '<br /><br />';
  11.  
  12. # alle ip's in een array zetten
  13. $ip = file('cache/ipbans.php');
  14. # checken of het test ip in de array staat
  15. $needle = (string) '120.120.120.120';
  16. if(in_array($needle,$ip))
  17. {
  18. echo 'yes';
  19. }
  20. else
  21. {
  22. echo 'no';
  23. }
  24.  
  25. echo '<br /><br />';
  26.  
  27. # array tonen
  28. print_r($ip);
  29. ?>


Probeer dit eens.....
Offline skillat2 - 04/02/2008 16:43
Avatar van skillat2 HTML beginner Werkt niet, krijg precies dezelfde output.
Offline marten - 04/02/2008 16:45
Avatar van marten Beheerder
  1. <?php
  2. # laat errors zien
  3.  
  4. # checken of het bestand wel bestaat
  5. $array = array('120.120.120.120', '120.120.120.121');
  6.  
  7. echo '<br /><br />';
  8.  
  9. # alle ip's in een array zetten
  10.  
  11. # checken of het test ip in de array staat
  12. $needle = (string) '120.120.120.120';
  13. if(in_array($needle,$array))
  14. {
  15. echo 'yes';
  16. }
  17. else
  18. {
  19. echo 'no';
  20. }
  21.  
  22. echo '<br /><br />';
  23.  
  24. # array tonen
  25. print_r($array);
  26. ?>


Probeer dit eerst eens. Dan kan je kijken of je goed op weg bent.
Offline lemoinet - 04/02/2008 16:46
Avatar van lemoinet PHP gevorderde
  1. <?php
  2. # laat errors zien
  3.  
  4. # checken of het bestand wel bestaat
  5. if(file_exists('cache/ipbans.php'))
  6. {
  7. echo 'file exists';
  8. }
  9.  
  10. echo '<br /><br />';
  11.  
  12. # alle ip's in een array zetten
  13. $ip = file('cache/ipbans.php');
  14. # checken of het test ip in de array staat
  15. if(in_array('120.120.120.120',array_values($ip)))
  16. {
  17. echo 'yes';
  18. }
  19. else
  20. {
  21. echo 'no';
  22. }
  23.  
  24. echo '<br /><br />';
  25.  
  26. # array tonen
  27. print_r($ip);
  28. ?>
Offline skillat2 - 04/02/2008 16:47 (laatste wijziging 04/02/2008 16:48)
Avatar van skillat2 HTML beginner Ja, dat werkt wel  

Citaat:
yes

Array ( [0] => 120.120.120.120 [1] => 120.120.120.121 )


edit: die van lemoinet niet
Offline lemoinet - 04/02/2008 16:49
Avatar van lemoinet PHP gevorderde probeer anders ook eens

  1. in_array('120.120.120.120',$ip,true))
Offline skillat2 - 04/02/2008 16:52
Avatar van skillat2 HTML beginner Nee, ook niet  
Offline marten - 04/02/2008 17:02
Avatar van marten Beheerder Staan je ip's ook in ipbans.php als array? Of is het gewoon tekst?
Offline skillat2 - 04/02/2008 17:05
Avatar van skillat2 HTML beginner Als tekst, file() zet ze om als array toch.

  1. 120.120.120.120
  2. 120.120.120.121
Offline Koen - 04/02/2008 17:16
Avatar van Koen PHP expert
  1. <?php
  2. # laat errors zien
  3.  
  4. # checken of het bestand wel bestaat
  5. if(file_exists('cache/ipbans.php'))
  6. {
  7. echo 'file exists';
  8. }
  9.  
  10. echo '<br /><br />';
  11.  
  12. # alle ip's in een array zetten
  13. $ip = file_get_contents('cache/ipbans.php');
  14. $ip = explode("\n", $ip);
  15. # checken of het test ip in de array staat
  16. if(in_array('120.120.120.120',$ip))
  17. {
  18. echo 'yes';
  19. }
  20. else
  21. {
  22. echo 'no';
  23. }
  24.  
  25. echo '<br /><br />';
  26.  
  27. # array tonen
  28. print_r($ip);
  29. ?>


En dit?
Offline skillat2 - 04/02/2008 17:19
Avatar van skillat2 HTML beginner Nee, ook niet.. dit is de array
  1. (
  2. [0] => 120.120.120.120
  3. [1] => 120.120.120.121
  4. [2] =>
  5. )
Offline timmie_loots - 04/02/2008 17:33 (laatste wijziging 04/02/2008 17:37)
Avatar van timmie_loots PHP gevorderde Ná de regel

  1. $ip = file('cache/ipbans.php');


eventjes

  1. $ip = array_map('trim', $ip);


doen. De reden dat hij niet matcht is omdat file() wel een newline laat staan. Hij vergelijkt dus "string" met "string\n".

EDIT: Argumenten voor array_map omgedraait  
Offline lemoinet - 04/02/2008 17:34 (laatste wijziging 04/02/2008 17:34)
Avatar van lemoinet PHP gevorderde
  1. <?php
  2. # laat errors zien
  3.  
  4. # checken of het bestand wel bestaat
  5. if(file_exists('cache/ipbans.php'))
  6. {
  7. echo 'file exists';
  8. }
  9.  
  10. echo '<br /><br />';
  11.  
  12. # alle ip's in een array zetten
  13. $ip = array_map('trim',file('cache/ipbans.php'));
  14. # checken of het test ip in de array staat
  15. if(in_array('120.120.120.120',$ip))
  16. {
  17. echo 'yes';
  18. }
  19. else
  20. {
  21. echo 'no';
  22. }
  23.  
  24. echo '<br /><br />';
  25.  
  26. # array tonen
  27. print_r($ip);
  28. ?>
Offline skillat2 - 04/02/2008 17:40
Avatar van skillat2 HTML beginner Jaaa, eindelijk  bedankt voor het helpen allemaal 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.306s