PHP Curl - How to FTP string...

I am trying to use the curl library in PHP  to send some data to another server. I can not write to a file on the server and then transfer it. How can I tell PHP/Curl to transfer not from a file but from a variable I have prepared?
LVL 1
albee01Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
steelseth12Connect With a Mentor Commented:
ok ... here is some example code

<?php

$file = "sample.html"
$fp = fopen ($file, "r");


$ch = curl_init();


curl_setopt($ch, CURLOPT_URL,"ftp://username:password@ftp.example.com/path/to/file/file.html");
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
$error = curl_exec ($ch);

curl_close ($ch);
?>
0
 
albee01Author Commented:
I believe what I need is to use is the CURLOPT_READFUNCTION callback but I am uncertain how to properly structure it.
0
 
steelseth12Commented:
php has built in FTP functions .. do need to use CURL ?
Have a look at http://www.php.net/manual/en/ref.ftp.php first.
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
albee01Author Commented:
Unfortunately, yes. PHP on the server I must use does not enable the ftp functions, only curl.
0
 
albee01Author Commented:
Thanks for the code but that doesn't do what I need. Your example only transfers from a file. I can't write to a file. I am trying to transfer the contents of a variable, not the contents of a file.

$string = "Text to transfer";

I want to write $string to the remote file without writing a file locally.
0
 
steelseth12Commented:
In the example i raed the file into a variable. Its essentially the same thing.
Instead of

$file = "sample.html"
$fp = fopen ($file, "r");

use

$fp = "text to transfer";
0
 
albee01Author Commented:
I get this: curl_setopt(): supplied argument is not a valid File-Handle resource
0
 
nizsmoConnect With a Mentor DeveloperCommented:
You are getting the error because the $fp variable is not a file handler, and the curl_setopt() is expecting a file handler as argument. I dont' think there is any way to send a variable through curl onto the ftp server.

Closest thing I could find was this, which may be of help:
http://www.web-development-blog.com/archives/tutorial-ftp-upload-via-curl/
0
 
albee01Author Commented:
I was leaning toward it not being possible. Thanks for the help. I'll split the points.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.