php 数组删除元素的方法

可以试用array_diff计算差集的方法实现删除多个元素的目的

<?php
$my_array = array('sheldon', 'leonard', 'howard', 'penny');
$to_remove = array('howard','apple');
$result = array_diff($my_array, $to_remove);
print_r($result);
exit;
?>

参考
https://stackoverflow.com/questions/3059392/how-to-find-a-value-in-array-and-remove-it-by-using-php-array-functions

PHP Curl post上传图片文件失败问题

PHP使用cURL post 上传文件支持通过在数组数据中,使用“@+文件全路径”的语法附加文件,但是PHP从5.5开始引入了新的CURLFile类用来指向文件PHP推荐使用CURLFile替代旧的@语法。@语法在5.5已经被打了deprecated,在5.6中就直接被删除了。

<?php
$filepath='20170613114102-8016.jpg';

if (class_exists('\CURLFile')) {
    // php 5.5 以后使用
    $field = new \CURLFile(realpath($filepath));
} else {
    //php 5.5前使用
    $field = '@' . realpath($filepath);
}

$data=array(
        'type'=>'recognize',
        'image_path'=>$field,
        'soft_id'=>'2540',
        'soft_key'=>'10a1fda668b0a7d5eb59635483bf86c1',
        'user_name'=>'test123',
        'password'=>'test123',
        'pic_type'=>'0004',
        'timeout'=>60,
        'remark'=>'',
        'log'=>1
    );

$url = 'http://www.zhima365.com/zmdemo_php/http_api.php';
$result=curlPost($url,$data);

var_dump($result);

function curlPost($uri, $data) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $uri);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        $return = curl_exec($ch);
        curl_close($ch);
        return $return;
}
?>

参考资料:
1.考虑 PHP 5.0~5.6 各版本兼容性的 cURL 文件上传
https://segmentfault.com/a/1190000000725185

2.Send file via cURL from form POST in PHP
https://stackoverflow.com/questions/4223977/send-file-via-curl-from-form-post-in-php

3.The CURLFile class
http://php.net/manual/en/class.curlfile.php