Difference between revisions of "Short Notes on PHP"

From PaskvilWiki
Jump to: navigation, search
(Created page with "== Convert Accented Characters to Non-Accented == <pre>setlocale(LC_ALL, "en_US.utf8"); $translit = iconv("utf-8", "us-ascii//TRANSLIT", $_GET['orig_name']);</pre> '''Note''': ...")
 
Line 27: Line 27:
 
     // if $response === false, something went wrong
 
     // if $response === false, something went wrong
 
?></pre>
 
?></pre>
 +
 +
== HTTP Post in Pure PHP (without cURL) ==
 +
 +
<pre>$data = array('param1' => '1', 'param2' => '2');
 +
$_data = http_build_query($data);
 +
$options = array
 +
(
 +
    'http' => array
 +
    (
 +
        'method' => 'POST',
 +
        'header' => "Content-type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen($_data)."\r\n",
 +
        'content' => $_data
 +
    )
 +
);
 +
$context = stream_context_create($options);
 +
$data = @file_get_contents('http://www.example.com/post', 0, $context);</pre>
 +
 +
For more information see: [http://www.php.net/manual/en/function.http-build-query.php http_build_query()], [http://www.php.net/manual/en/function.stream-context-create.php stream_context_create()], [http://www.php.net/manual/en/function.file-get-contents.php file_get_contents()].

Revision as of 11:45, 3 December 2012

Convert Accented Characters to Non-Accented

setlocale(LC_ALL, "en_US.utf8");
$translit = iconv("utf-8", "us-ascii//TRANSLIT", $_GET['orig_name']);

Note: On *nix systems, you can check for supported locales using `locale -a`.

Note: Instead of hard-coding the locale to use, you could also use values of HTTP_ACCEPT_LANGUAGE and HTTP_ACCEPT_CHARSET, sent by the browser, to tailor the input locale.

Upload a File using cURL

<?php
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_VERBOSE, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)");
    curl_setopt($ch, CURLOPT_URL, _VIRUS_SCAN_URL);
    curl_setopt($ch, CURLOPT_POST, true);
    // same as <input type="file" name="file_box">
    // notice the '@' ahead of the path!
    $post = array(
        "file_box"=>"@/path/to/myfile.jpg",
    );
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
    $response = curl_exec($ch);
    // if $response === false, something went wrong
?>

HTTP Post in Pure PHP (without cURL)

$data = array('param1' => '1', 'param2' => '2');
$_data = http_build_query($data);
$options = array
(
    'http' => array
    (
        'method' => 'POST',
        'header' => "Content-type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen($_data)."\r\n",
        'content' => $_data
    )
);
$context = stream_context_create($options);
$data = @file_get_contents('http://www.example.com/post', 0, $context);

For more information see: http_build_query(), stream_context_create(), file_get_contents().