1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| <?php
class TreeTagger {
private $url;
private $files = array();
private $headers = array();
private $boundary;
public function __construct( $url )
{
$this->url = $url;
$this->boundary = md5( microtime() );
$this->setHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
}
public function setFile( $name, $path, $mime )
{
$contentType = 'multipart/form-data, boundary=' . $this->boundary;
$this->setHeader( 'Content-Type', $contentType );
$this->files[ $name ] = array(
'path' => $path,
'mime' => $mime );
}
public function setHeader( $name, $value ) {
$this->headers[ $name ] = $value;
}
public function send() {
$headers = '';
foreach( $this->headers as $name => $value )
{
$headers .= $name . ': ' . $value . "\r\n";
}
$content = '--' . $this->boundary . "\n";
foreach( $this->files as $key => $file )
{
$content .= 'content-disposition: form-data; name="' . $key . '"; filename="' . basename($file['path']) . '"' . "\n";
$content .= 'Content-Type: ' . $file['mime'] . "\n\n";
$content .= file_get_contents( $file['path'] );
$content .= "\n" . '--' . $this->boundary . "\n";
$content .= 'content-disposition: form-data; name="submit"' . "\n\n";
$content .= 'Envoyer';
$content .= "\n" . '--' . $this->boundary . '--'. "\n";
}
$headers.= 'Content-Length: ' . strlen( $content );
$context = stream_context_create(
array( 'http' => array( 'user_agent' =>
'Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) Gecko/20061010 Firefox/2.0',
'method' => 'POST',
'content' => $content,
'header' => $headers ) ) );
return file_get_contents( $this->url, false, $context );
}
}
?> |
Partager