Well, you are using the file_get_contents function right now, what about a loop that reads the file line by line, checks if the user matches, and stops when found the right user? it's an all in one loop :) just like this: $found = false; $fp = fopen($file,"r"); while(!feof($fp) && $found == false) { $line = fread($fp,256); if($line == $user.":".$pass) { $found = true; } } It is possible to get it even smaller, but i'm not a genius in writing fast code :P Tijnema On 3/4/07, Ryan A <genphp@xxxxxxxxx> wrote:
Hey Stut, Thanks for replying. Will be making two versions, one with a DB and one to work with the file for the old school folks who dont want to convert their file and use "new fangled" databases... some people its easier to just not argue or try to convince... and however stupid someone's opinion is, they are still entitled to it...esp when you are thinking of (maybe) selling a future product it does not make much sense telling them they are stupid :-)) "If you *need* to stick to using the file, are you looking for a particular username or just want to load the whole list?" I'm looking to match a login (user:pass)... so I would need to load the whole list right? or do you have an alternative idea? am totally open to suggestions and alternatives at this point... just looking for the easiest way in terms of server load and processing..which is why I am trying to avoid a for() or while() loop. Thanks! Ryan Stut <stuttle@xxxxxxxxx> wrote: Ryan A wrote: > I have a login/password file with these kind of values: > user1:pass1 > user2:pass2 > cat:dog > love:hate > > I have opened the file and put it into an array with this code: > (thanks to richard lynch from this list for idea and code snippets) > > $file = file_get_contents('a.htpasswd'); > preg_match_all('/(.*):(.*)$/msU', $file, $htpassd); > > but how do I get it into this format : > > $users['username'] = 'password' > > without using a loop? I was thinking something like array_flip or array_splice?? > (The reason I dont want to use a loop (for,while) is there can be thousands of user:pass combos in the files and thousands of logins and attempted logins a day) My advice would be to swap to using a database. With that number of users it's going to give you a huge boost in performance. SQLite would do. If you *need* to stick to using the file, are you looking for a particular username or just want to load the whole list? -Stut ------ - The faulty interface lies between the chair and the keyboard. - Creativity is great, but plagiarism is faster! - Smile, everyone loves a moron. :-) --------------------------------- Now that's room service! Choose from over 150,000 hotels in 45,000 destinations on Yahoo! Travel to find your fit.