自定义函数增强你的PHP编程能力,以下是10个好例子
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编程技能提高到一个新的高度。
