On Fri, Dec 13, 2002 at 12:44:14AM -0600, Jami wrote:
> 
> I know that fwrite needs to be written as such:
> 
> $Open=fopen($MyFile, "w");
> fwrite($Open, "Text to add to file.\n");
> 
> The file is being saved on a Unix server, but Windows/Mac users will be downloading 
>the file. How can I create line breaks that notepad/textpad will use to create new 
>lines, instead of boxes where the break should be? I have tried changing "w" to "wb" 
>as suggested on php.net, but that does not work either and I am out of ideas.

For Windows, use:

        fwrite($Open, "Text to add to file.\r\n");

And for Mac, I think it's:

        fwrite($Open, "Text to add to file.\r");

Aren't standards wonderful?  ;-)

If you want a more general solution, you might play with something like:

    $text="This is the first line.\nAnother line makes two.\n";
    if ($target=="win")
        $text=str_replace( "\n", "\r\n", $text);
    else if ($target=="mac")
        $text=str_replace( "\n", "\r", $text);
    fwrite($Open, $text);

Set your $target somewhere (maybe by parsing HTTP_USER_AGENT), and you
can stick with consistent use of UNIX-style text in your PHP.

There's probably a more elegant way to do this, but I don't know it.

-- 
  Paul Chvostek                                             <[EMAIL PROTECTED]>
  Operations / Abuse / Whatever                          +1 416 598-0000
  it.canada - hosting and development                  http://www.it.ca/


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

Reply via email to