php strlen遇0截断,php strlen遇0截断收集整理的非常有用的PHP函数

本文汇总了PHP中的几个实用函数,包括文件下载、字符串UTF-8与GBK编码下按长度截取、获取客户端真实IP以及防止SQL注入。这些函数在日常开发中十分常见,能有效提高代码的安全性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function download($filename){

if ((isset($filename))&&(file_exists($filename))){

header("Content-length: ".filesize($filename));

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

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

readfile("$filename");

} else {

echo "Looks like file does not exist!";

}

}

使用方法如下:查看演示

download('/down/test_45f73e852.zip');

9、PHP截取字符串长度

我们经常会遇到需要截取字符串(含中文汉字)长度的情况,比如标题显示不能超过多少字符,超出的长度用...表示,以下函数可以满足你的需求。

/*

Utf-8、gb2312都支持的汉字截取函数

cut_str(字符串, 截取长度, 开始长度, 编码);

编码默认为 utf-8

开始长度默认为 0

*/

function cutStr($string, $sublen, $start = 0, $code = 'UTF-8'){

if($code == 'UTF-8'){

$pa = "/[x01-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][x80-xbf]|xf0[x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/";

preg_match_all($pa, $string, $t_string);

if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."...";

return join('', array_slice($t_string[0], $start, $sublen));

}else{

$start = $start*2;

$sublen = $sublen*2;

$strlen = strlen($string);

$tmpstr = '';

for($i=0; $i

if($i>=$start && $i

if(ord(substr($string, $i, 1))>129){

$tmpstr.= substr($string, $i, 2);

}else{

$tmpstr.= substr($string, $i, 1);

}

}

if(ord(substr($string, $i, 1))>129) $i++;

}

if(strlen($tmpstr)

return $tmpstr;

}

}

使用方法如下:查看演示

$str = "jQuery插件实现的加载图片和页面效果";

echo cutStr($str,16);

10、PHP获取客户端真实IP

我们经常要用数据库记录用户的IP,以下代码可以获取客户端真实的IP:

//获取用户真实IP

function getIp() {

if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))

$ip = getenv("HTTP_CLIENT_IP");

else

if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))

$ip = getenv("HTTP_X_FORWARDED_FOR");

else

if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))

$ip = getenv("REMOTE_ADDR");

else

if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))

$ip = $_SERVER['REMOTE_ADDR'];

else

$ip = "unknown";

return ($ip);

}

使用方法如下:查看演示

echo getIp();

11、PHP防止SQL注入

我们在查询数据库时,出于安全考虑,需要过滤一些非法字符防止SQL恶意注入,请看一下函数:

function injCheck($sql_str) {

$check = preg_match('/select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile/', $sql_str);

if ($check) {

echo '非法字符!!';

exit;

} else {

return $sql_str;

}

}

使用方法如下:查看演示

echo injCheck('1 or 1=1');

12、PHP页面提示与跳转

我们在进行表单操作时,有时为了友好需要提示用户操作结果,并跳转到相关页面,请看以下函数:

function message($msgTitle,$message,$jumpUrl){

$str = '';

$str .= '';

$str .= '

';

$str .= '';

$str .= '

页面提示';

$str .= '

$str .= '*{margin:0; padding:0}a{color:#369; text-decoration:none;}a:hover{text-decoration:underline}body{height:100%; font:12px/18px Tahoma, Arial, sans-serif; color:#424242; background:#fff}.message{width:450px; height:120px; margin:16% auto; border:1px solid #99b1c4; background:#ecf7fb}.message h3{height:28px; line-height:28px; background:#2c91c6; text-align:center; color:#fff; font-size:14px}.msg_txt{padding:10px; margin-top:8px}.msg_txt h4{line-height:26px; font-size:14px}.msg_txt h4.red{color:#f30}.msg_txt p{line-height:22px}';

$str .= '';

$str .= '';

$str .= '

';

$str .= '

';

$str .= '

'.$msgTitle.'

';

$str .= '

';

$str .= '

'.$message.'
';

$str .= '

系统将在 3 秒后自动跳转,如果不想等待,直接点击 这里 跳转

';

$str .= "";

$str .= '

';

$str .= '

';

$str .= '';

$str .= '';

echo $str;

}

更多:php strlen遇0截断收集整理的非常有用的PHP函数

https://www.002pc.comhttps://www.002pc.com/phpbiancheng/1589.html

你可能感兴趣的PHP,收集整理,有用,函数,非常

mysql语句收集工具mysql当天日期函数使用小结

MySQL 当天日期函数使用小结,需要的朋友可以参考下。

python中如何识别复数python函数 - cmp(x,y)

今天来分享一个python中非常有用而且非常简单的函数cmp,从拼写上大家可能猜到了,这是一个比较函数,嗯,是的,它的返回值只有三个,正数,0,负数,下面来看一下:cmp(x, y)中文说明:比较两个

python pil 效率python函数每日一讲 - cmp(x,y)

今天来分享一个python中非常有用而且非常简单的函数cmp,从拼写上大家可能猜到了,这是一个比较函数,嗯,是的,它的返回值只有三个,正数,0,负数,下面来看一下:电脑技术网认为此文章对《py

微信企业号pythonPython 如何将一变量做为函数名?

PHP 有变量函数这一用法(见 http://www.php.net/manual/en/functions.variable-functions.php)即有一字符串变量现在想用这个变量的值做为某函数名来调用

php mysql制作官网Mysql日期函数使用汇总

Mysql日期函数使用汇总,有需要的朋友可以参考下。

False使用mysql_fetch_row()函数逐行获取结果集中的每条记录(PHP操作MySQL数据库的方法六)

使用mysql_fetch_row()函数逐行获取结果集中的每条记录(PHP操作MySQL数据库的方法六)前面我们介绍了两种获取结果集中的数据,那么我们今天给大家介绍第三种获取结果集的mysql_f

java js 速度慢jQuery常用知识点总结以及平时封装常用函数

本文为大家介绍了jQuery中常用知识点及函数,包含许多细节方面的知识,下面我们一起学习一下。

jQuery中为我们提供了很多有用的属性,自己总结的一些常用的函数。个人认为在在线

mysql 读写分离配置MySQL日期函数与日期转换格式化函数大全

Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数

1、DAYOFWEEK(date)

SELECT DAYOFWEEK(‘2016

python 或且python函数每日一讲 - format函数字符串格式化入门

格式化在程序开发中非常常见,大家肯定不陌生,Python中也存在多重格式化方式,format函数就是其中一种。

python% 输出Python函数式编程指南(一):函数式编程概述

函数式编程概述

1.1. 什么是函数式编程?

函数式编程使用一系列的函数解决问题。函数仅接受输入并产生输出,不包含任何能影响产生输出的内部状态。任何情况下,使用相同的参数

0踩

0 赞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值