> -----Original Message-----
> From: Chad Winger [mailto:[EMAIL PROTECTED]]
> Sent: 19 September 2002 06:25
>
> Still using my text file example, which has lines such as:
>
> 0706010102|01.01.02|16:00|Serie C2|02|Forl�|Florentia Viola|
> 0610010102|01.07.02|16:00|Serie C2|05|Florentia Viola|Gubbio|
> 1806190702|19.07.02|16:00|Serie C2|05|Savona|Florentia Viola|
>
> so Now i wanted to compare $getdate[1] to $datetest and if any of the
> exploded arrays from $getdate[1] matched up with $getdate,
> i.e. what is
> being submitted from the form, then it would not go to write the file.
>
A quick inspection prompts the following comments:
(1) *please* indent your code to reflect its structure -- makes it so much
easier to read!
(2) Why re-calculate $datetest on each iteration of the loop? Do it once
before you start looping.
(3) There's no need to use something as complex as ereg: as you're checking
for simple equality, a simple == will do!
(4) It's bad practice to open the file for writing whilst you've still got
it open for reading: I'd suggest completing the scan of existing entries
(taking care to remember whether it found a duplicate or not!), then close
the file, re-open it in *append* mode (not write) and just add the single
new line. (The other option would be to use read-write mode ('a+') and
fseek() as appropriate; personally I would regard this as more error prone
for very little performance gain, but YMMV.)
A quick rewrite taking these points into account gives:
$fd = fopen ($schedule, "r");
$datetest = ("$day.$month.$year");
$is_new_date = TRUE; // assume this to begin with
while (!feof ($fd)):
$currentlines = fgets($fd, 4096);
$getdate = explode("|", $currentlines);
if ($getdate[1] == $datetest):
echo 'date already listed';
$is_new_date = FALSE;
break; // break out of while loop
endif;
endwhile;
fclose($fd);
if ($is_new_date):
$fp = fopen($schedule, "a");
fwrite($fp,
"\n$homename[0]$awayname[0]$day$month$year|$day.$month.$year|$matchtime|$com
petition|$round|$homename[1]|$awayname[1]|");
fclose($fp);
echo 'success';
endif;
Hope this helps.
Cheers!
Mike
---------------------------------------------------------------------
Mike Ford, Electronic Information Services Adviser,
Learning Support Services, Learning & Information Services,
JG125, James Graham Building, Leeds Metropolitan University,
Beckett Park, LEEDS, LS6 3QS, United Kingdom
Email: [EMAIL PROTECTED]
Tel: +44 113 283 2600 extn 4730 Fax: +44 113 283 3211
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php