Mam sobie zmienną $emadr przekazywaną z formularza do skryptu, który ma porównać go z danymi (adresy e-mail) zapisanymi w pliku tekstowym dane.txt (każdy adres w osobnej linii). Tak wygląda skrypt:
<?
$emadr=$_POST['emadr'];
$plik=file("dane.txt");
if($emadr!=""){
for ($i=0;$i<count($plik);$i++){
if(strcasecmp($emadr, $plik[$i])==0){
echo ("<b>powtarzający się wpis</b>");
exit;
}
}
}
?>
Niestety nie działa - tzn. nie pojawia się napis "powtarzający się wpis" jeżeli wartości są identyczne. Będę wdzięczny, za wskazanie błędu.
porównanie stringów
-
FanFataL
- Nowy

- Posty: 113
- Rejestracja: pn lut 28, 2005 1:33 am
- Lokalizacja: Kraków / Katowice / Bydgoszcz
- Kontakt:
Re: porównanie stringów
Problem jest w tym, że odczytywany z pliku adres ma na końcu znak \n czyli enter ;]
Z drugiej strony twój skrypt jest mało optymalny, mozna to zrobic łatwiej ;]
[php]<?php
$emails = array_map('trim', file('dane.txt'));
if(in_array(strtolower($emadr), $emails)) echo 'Juz istnieje';
else echo 'OK';
?>[/php]
Oczywiście do pliku zapisuj emaile po przetworzeniu ich przez funkcje [manual]strtolower[/manual] - nie będziesz wtedy miał problemów z porównywaniem
Pozdrawiam
...
Z drugiej strony twój skrypt jest mało optymalny, mozna to zrobic łatwiej ;]
[php]<?php
$emails = array_map('trim', file('dane.txt'));
if(in_array(strtolower($emadr), $emails)) echo 'Juz istnieje';
else echo 'OK';
?>[/php]
Oczywiście do pliku zapisuj emaile po przetworzeniu ich przez funkcje [manual]strtolower[/manual] - nie będziesz wtedy miał problemów z porównywaniem
Pozdrawiam
...
Re: porównanie stringów
Dziękuję bardzo. Działa i to dobrze.