My quest to upload files from PHP into SharePoint 2010 Document Libraries eluded me until I came across instructions to simply use HTTP PUT requests to send the files with Basic Authentication. Most examples were done with C# or perl. I figured it would be meaningful to some if I shared my solution with PHP using curl. Hope that this helps someone out there.

First Step:

Enable Basic Authentication in IIS on the SharePoint server.

Note: Make sure you disable Basic Authentication for the _layouts folder in IIS. Otherwise, you'll get a basic authentication on Firefox for every page because of image loads.

Code:

$file = 'file_name';

$sub_site = 'sub_site_name/';
$library = 'document_library_name/';
$folder = 'folder_name_if_needed/';

if(file_exists($file))
{
	$data = file_get_contents($file);

	$ch = curl_init();

	curl_setopt($ch, CURLOPT_URL, 
		'http://site/'. 
		$sub_site. 
		$library. 
		$folder. 
		$filename
    );
	curl_setopt($ch, CURLOPT_VERBOSE, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
	curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
	curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
	curl_setopt($ch, CURLOPT_USERPWD,  
		'domain\\username:password'
    );

	$chresult = curl_exec($ch);
	$chapierr = curl_errno($ch);
	$cherrmsg = curl_error($ch);

	curl_close($ch);

	var_dump($chresult);
	var_dump($chapierr);
	var_dump($cherrmsg);
}