欢迎访问宙启技术站
智能推送

自定义函数增强你的PHP编程能力,以下是10个好例子

发布时间:2023-06-25 06:18:25

1. 建立一个获取当前URL的函数

在PHP中获取当前URL可能会比较麻烦,特别是当你需要调用得到的URL时,这个函数将非常有用。

function current_url() { 

    $url = 'http'; 

    if ($_SERVER["HTTPS"] == "on") { 

        $url .= "s"; 

    } 

    $url .= "://";    

    if ($_SERVER["SERVER_PORT"] != "80") { 

        $url .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"]; 

    } else { 

        $url .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]; 

    } 

    return $url; 

}

2. 建立一个获取远程数据的函数

这个函数可以帮助你从远程获取数据。

function get_remote_data($url) { 

    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL, $url); 

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 

    $data = curl_exec($ch); 

    curl_close($ch); 

    return $data; 

}

3. 一个简单的邮件发送函数

这个函数可以帮你快速发送邮件。

function send_email($to, $subject, $message, $headers = '') { 

    $headers .= "MIME-Version: 1.0\r

"; 

    $headers .= "Content-type: text/html\r

"; 

    $headers .= "From: Your Name <youremail@yourdomain.com>\r

"; 

    $headers .= "Reply-to: Your Name <youremail@yourdomain.com>\r

"; 

    $headers .= "X-Mailer: PHP/" . phpversion(); 

    if (mail($to, $subject, $message, $headers)) { 

        return true; 

    } else { 

        return false; 

    } 

}

4. 一个创建缩略图的函数

这个函数可以帮助你从大的图片中创建缩略图。

function create_thumbnail($source, $destination, $width, $height) { 

    list($w, $h) = getimagesize($source); 

    $ratio = ($width / $w); 

    $new_height = (int)($h * $ratio); 

    $new_image = imagecreatetruecolor($width, $new_height); 

    $image = imagecreatefromjpeg($source); 

    imagecopyresampled($new_image, $image, 0, 0, 0, 0, $width, $new_height, $w, $h); 

    imagejpeg($new_image, $destination); 

}

5. 一个简单的加密/解密函数

这个函数可以帮助你在传输敏感数据(如密码)时加密数据。

function encrypt_decrypt($action, $string) { 

    $output = false; 

    $iv = '1234567890123456'; 

    $key = 'This is a secret key'; 

    $encryption_key = base64_decode($key); 

    $string = str_replace(' ','+',$string); 

    if( $action == 'encrypt' ) { 

        $output = openssl_encrypt($string, 'aes-256-cbc', $encryption_key, 0, $iv); 

        $output = base64_encode($output); 

    } else if( $action == 'decrypt' ){ 

        $output = openssl_decrypt(base64_decode($string), 'aes-256-cbc', $encryption_key, 0, $iv); 

    } 

    return $output; 

}

6. 一个简单的数据验证函数

这个函数可以帮助你验证用户输入的数据是否合法(如电子邮件地址等)。

function validate_input($input, $type) { 

    switch($type) { 

        case 'email': 

            if (!filter_var($input, FILTER_VALIDATE_EMAIL)) { 

                return false; 

            } 

            break; 

        case 'number': 

            if (!is_numeric($input)) { 

                return false; 

            } 

            break; 

        case 'url': 

            if (!filter_var($input, FILTER_VALIDATE_URL)) { 

                return false; 

            } 

            break; 

        default: 

            return false; 

    } 

    return true; 

}

7. 一个将数组转换为HTML表格的函数

这个函数可以帮你将数组转换为HTML表格。

function array_to_table($array) { 

    if (!$array) { 

        return false; 

    } 

    $html = '<table>'; 

    $html .= '<tr><th>' . implode('</th><th>', array_keys($array[0])) . '</th></tr>'; 

    foreach ($array as $row) { 

        $html .= '<tr><td>' . implode('</td><td>', $row) . '</td></tr>'; 

    } 

    $html .= '</table>'; 

    return $html; 

}

8. 一个检查是否合法ip地址的函数

这个函数可以帮助你验证用户输入的IP地址是否合法。

function validate_ip($ip) { 

    if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)){ 

        return true; 

    } else { 

        return false; 

    } 

}

9. 一个将XML转换为数组的函数

这个函数可以将XML数据转换为数组。

function xml_to_array($xml) { 

    $arr = array(); 

    foreach ($xml->children() as $node) { 

        if ($node->children()) { 

            $arr[$node->getName()][] = xml_to_array($node); 

        } else { 

            $arr[$node->getName()] = (string)$node; 

        } 

    } 

    return $arr; 

}

10. 一个检查是否是移动设备的函数

这个函数可以帮助你检查用户是否使用移动设备。

function is_mobile() { 

    $user_agent = $_SERVER['HTTP_USER_AGENT']; 

    $mobile_agents = array( 

        'iphone', 

        'ipad', 

        'android', 

        'webos', 

        'blackberry', 

        'nokia', 

        'opera mini', 

        'windows mobile' 

    ); 

    foreach ($mobile_agents as $device) { 

        if (strpos(strtolower($user_agent), strtolower($device)) !== false) { 

            return true; 

        } 

    } 

    return false; 

}

以上就是10个PHP自定义函数的例子,这些函数能够帮助你快速的完成许多常见操作。当然,这只是冰山一角,你可以根据你的需求自行编写更多的自定义函数,将你的PHP编程技能提高到一个新的高度。