Web开发者必备的10个救命的PHP代码片段("PHP开发者必备:10个高效实用的救命代码片段")

原创
ithorizon 7个月前 (10-20) 阅读数 13 #后端开发

PHP开发者必备:10个高效实用的救命代码片段

PHP开发者必备:10个高效实用的救命代码片段

1. 获取客户端IP地址

获取客户端IP地址是一个常见的操作,以下是一个明了的函数来实现这个功能:

function getClientIP() {

$clientIP = '';

if (!empty($_SERVER['HTTP_CLIENT_IP'])) {

$clientIP = $_SERVER['HTTP_CLIENT_IP'];

} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {

$clientIP = $_SERVER['HTTP_X_FORWARDED_FOR'];

} else {

$clientIP = $_SERVER['REMOTE_ADDR'];

}

return $clientIP;

}

2. 生成随机字符串

在开发中,我们频繁需要生成随机字符串,以下是一个生成随机字符串的函数:

function generateRandomString($length = 10) {

$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

$charactersLength = strlen($characters);

$randomString = '';

for ($i = 0; $i < $length; $i++) {

$randomString .= $characters[rand(0, $charactersLength - 1)];

}

return $randomString;

}

3. 数据库连接与查询

以下是一个明了的函数,用于连接数据库并执行查询:

function connectDB($host, $username, $password, $database) {

$conn = new mysqli($host, $username, $password, $database);

if ($conn->connect_error) {

die("连接挫败: " . $conn->connect_error);

}

return $conn;

}

function executeQuery($conn, $sql) {

$result = $conn->query($sql);

if ($result === false) {

die("查询挫败: " . $conn->error);

}

return $result;

}

4. 文件上传

以下是一个明了的文件上传函数,用于处理文件上传操作:

function uploadFile($inputName, $uploadDir) {

if (isset($_FILES[$inputName])) {

$fileTmpName = $_FILES[$inputName]["tmp_name"];

$fileName = $_FILES[$inputName]["name"];

$fileSize = $_FILES[$inputName]["size"];

$fileError = $_FILES[$inputName]["error"];

$fileType = $_FILES[$inputName]["type"];

$uploadPath = $uploadDir . basename($fileName);

if ($fileError === 0 && move_uploaded_file($fileTmpName, $uploadPath)) {

return $uploadPath;

} else {

return false;

}

}

return false;

}

5. 数据校验

以下是一个明了的数据校验函数,用于检查输入数据是否符合特定格式:

function validateEmail($email) {

return filter_var($email, FILTER_VALIDATE_EMAIL);

}

function validateURL($url) {

return filter_var($url, FILTER_VALIDATE_URL);

}

6. 数据加密和解密

以下是一个使用mcrypt库进行数据加密和解密的示例:

function encryptData($data, $key) {

$cipher = "rijndael-128";

$mode = MCRYPT_MODE_CBC;

$ivSize = mcrypt_get_iv_size($cipher, $mode);

$iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);

$encrypted = mcrypt_encrypt($cipher, $data, $key, $mode, $iv);

return base64_encode($encrypted);

}

function decryptData($encryptedData, $key) {

$cipher = "rijndael-128";

$mode = MCRYPT_MODE_CBC;

$ivSize = mcrypt_get_iv_size($cipher, $mode);

$encryptedData = base64_decode($encryptedData);

$decrypted = mcrypt_decrypt($cipher, $encryptedData, $key, $mode, $iv);

return trim($decrypted);

}

7. 防止SQL注入

以下是一个使用预处理语句防止SQL注入的示例:

function preventSQLInjection($conn, $sql, $types, $params) {

$stmt = $conn->prepare($sql);

$stmt->bind_param($types, ...$params);

$stmt->execute();

return $stmt->get_result();

}

8. 数据分页

以下是一个明了的分页函数,用于数据库查询导致的分页显示:

function paginateQuery($conn, $sql, $perPage, $page) {

$offset = ($page - 1) * $perPage;

$stmt = $conn->prepare($sql . " LIMIT ? OFFSET ?");

$stmt->bind_param("ii", $perPage, $offset);

$stmt->execute();

return $stmt->get_result();

}

9. 时间转换

以下是一个明了的时间转换函数,用于将Unix时间戳转换成可读的日期格式:

function convertTimestamp($timestamp, $format = 'Y-m-d H:i:s') {

return date($format, $timestamp);

}

10. 文件下载

以下是一个明了的文件下载函数,用于触发浏览器下载文件:

function downloadFile($filePath, $downloadName) {

if (file_exists($filePath)) {

header('Content-Description: File Transfer');

header('Content-Type: application/octet-stream');

header('Content-Disposition: attachment; filename="' . basename($downloadName) . '"');

header('Expires: 0');

header('Cache-Control: must-revalidate');

header('Pragma: public');

header('Content-Length: ' . filesize($filePath));

readfile($filePath);

exit;

}

}

以上就是10个PHP开发者必备的救命代码片段,这些代码片段涵盖了Web开发中的常见问题,能够帮助开发者减成本时间工作效能,解决实际问题。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门