Rodney Green wrote:
John Nichel wrote:



Chances are, $buffer has the line break on it when you read it in from the text file. Try striping off whitespace before you write...

while (!feof ($handle)) {
    $buffer = rtrim ( fgets($handle, 1000) );
    fwrite ($fhandle, "chown $buffer:html

http://www.php.net/manual/en/function.rtrim.php


Thanks John! That was the problem.


Rod

Now that I stop and think about it a bit, rtrim() may hurt you here. Since you're using a fread to read the text file, it will read the bytes you tell it (1000), then move on to the next line of code. So if you have a line as such in your text file...


./command --this=that

and the fread() reaches the byte limit on the whitespace after command, it's going to remove that, and you'll end up with....

./command--this=that

You can tell rtim() what characters to strip by doing...

rtrim ( $foo, "\n" );

but I've seen rtrim() strip blank spaces even when this is done. A better way may be to change the way you're reading in the source file; instead of using a fread, you can use file(), which will put each line in an array element...This way, it won't stop reading in the middle of a line....

$fhandle = fopen ("/scripts/thescript.sh" , "a");
$handle = file ( "/scripts/mail_list.txt" );
for ( $i = 0; $i < sizeof ($handle); $i++ ) {
$buffer = rtrim ( $handle[$i] );
fwrite ($fhandle, "chown $buffer:html /scripts/var/spool/mail/$buffer\n", 4096);
}
fclose ($fhandle);


--
By-Tor.com
It's all about the Rush
http://www.by-tor.com

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to