At 22:48 06.11.2002, Charles Wiltgen said:
--------------------[snip]--------------------
>Well, I'm able to make an empty file with
>
>    fopen("ftp://username:password@;domain.com/folder/file.prefs", "w")
>
>However, I'm still nowhere because this file belongs to the user and her
>group, not to Apache, so I still can't write to it.
--------------------[snip]-------------------- 

Why don't you do it this way:

$fp = fopen("ftp://username:password@;domain.com/folder/file.prefs", "w");
if ($fp) {
        // now write whatever you want to
        fwrite($fp, 'Some content', 12);
        fclose($fp);
}
else die('Can\'t create target file');

I don't see a reason why you shouldn't directly use the file handle
returned by fopen - that's why the PHP god has created it :)

See this sample code how to achieve this (substitute any necessary data).
Note that when opening a file using the FTP protocol you cannot
truncate/replace an existing file, you need to delete it first (this is
dictated by the FTP protocol AFAIK).

<?php

// --- configure this
$user = '**user**';
$pass = '**pass**';
$ftphost = 'ftp_upload_host';
$wwwhost = 'webhost_to_test';
$ftpfile = '/www/sample.html';
$wwwfile = '/sample.html';
// -- end configure

$time = strftime('%D %T');
$link = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'];

$x = <<<EOF
<html>
<head>
<meta http-equiv="Pragma" content="no-cache"> 
<meta http-equiv="Cache" content="none">
<title>**By PHP** $wwwhost$wwwfile **By PHP**</title>
</head>
<body>
<h1>Created by PHP via FTP</h1>
Creation time: $time<p>
<a href="$link">Test</a>
</body>
</html>
EOF;

error_reporting(E_ALL);

$fp = ftp_connect("$ftphost");
if ($fp) {
        $login = ftp_login ($fp, $user, $pass); 
        ftp_delete ($fp, $ftpfile); 
        ftp_quit($fp);
}
else die('Cannot connect to FTP');


$fp = fopen("ftp://$user:$pass@;$ftphost$ftpfile", 'w');
if ($fp) {
        fwrite($fp, $x, strlen($x));
        fclose($fp);
        header("Location: http://$wwwhost$wwwfile";);
}
else die('Cannot create file via FTP');

?>


-- 
   >O     Ernest E. Vogelsinger
   (\)    ICQ #13394035
    ^     http://www.vogelsinger.at/



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

Reply via email to