Strona 1 z 1

porównanie stringów

: ndz lip 31, 2005 5:46 pm
autor: 102makro
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.

Re: porównanie stringów

: ndz lip 31, 2005 7:00 pm
autor: FanFataL
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 :wink:
...

Re: porównanie stringów

: ndz lip 31, 2005 11:34 pm
autor: 102makro
Dziękuję bardzo. Działa i to dobrze.