首页
关于
Search
1
给你10个市场数据调研报告的免费下载网站!以后竞品数据就从这里找!
142 阅读
2
php接口优化 使用curl_multi_init批量请求
132 阅读
3
2024年备考系统架构设计师
102 阅读
4
《从菜鸟到大师之路 ElasticSearch 篇》
102 阅读
5
PHP 文件I/O
89 阅读
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
登录
Search
标签搜索
php函数
php语法
性能优化
安全
错误和异常处理
问题
vue
Composer
Session
缓存
框架
Swoole
api
并发
异步
正则表达式
php-fpm
mysql 索引
开发规范
协程
dafenqi
累计撰写
785
篇文章
累计收到
10
条评论
首页
栏目
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
副业
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
页面
关于
搜索到
785
篇与
的结果
2023-12-30
php三种方式下载文件
php三种方式下载文件本文主要和大家分享php三种方式下载文件,希望能帮助到大家。1、直接添加文件链接<button> <a href = "http://localhost/down.zip"> 下载文件</button>点击该按钮下载:2、传递参数查找并跳转到下载链接传递参数:<button> <a href = "http://localhost?f='down'"> 下载文件 </button>查找文件并挑战到下载链接:<?php$down = $_GET['f']; //获取文件参数 $filename = $down.'.zip'; //获取文件名称 $dir ="down/"; //相对于网站根目录的下载目录路径 $down_host = $_SERVER['HTTP_HOST'].'/'; //当前域名 //判断如果文件存在,则跳转到下载路径 if(file_exists(__DIR__.'/'.$dir.$filename)){ header('location:http://'.$down_host.$dir.$filename); }else{ header('HTTP/1.1 404 Not Found'); }结果:文件存在文件不存在3、head() 和 fread()函数把文件直接输出到浏览器 <?php $file_name = "down"; $file_name = "down.zip"; //下载文件名 $file_dir = "./down/"; //下载文件存放目录 //检查文件是否存在 if (! file_exists ( $file_dir . $file_name )) { header('HTTP/1.1 404 NOT FOUND'); } else { //以只读和二进制模式打开文件 $file = fopen ( $file_dir . $file_name, "rb" ); //告诉浏览器这是一个文件流格式的文件 Header ( "Content-type: application/octet-stream" ); //请求范围的度量单位 Header ( "Accept-Ranges: bytes" ); //Content-Length是指定包含于请求或响应中数据的字节长度 Header ( "Accept-Length: " . filesize ( $file_dir . $file_name ) ); //用来告诉浏览器,文件是可以当做附件被下载,下载后的文件名称为$file_name该变量的值。 Header ( "Content-Disposition: attachment; filename=" . $file_name ); //读取文件内容并直接输出到浏览器 echo fread ( $file, filesize ( $file_dir . $file_name ) ); fclose ( $file ); exit (); }结果:和第二个一样总结:第一个和第二个操作比较简单,但是容易暴露文件的真实地址,安全性不高,第三种能够较好的把文件的真实地址隐藏起来
2023年12月30日
6 阅读
0 评论
0 点赞
2023-12-30
php中截取字符串的方法有哪些
php中截取字符串的方法有哪些1、使用substr()截取字符串substr() 函数可以从字符串的指定位置截取一定长度的字符,这段被截取的字符可称为“子串”或者“子字符串”,其语法格式如下:substr($string, $start [, $length])参数说明如下:$string:需要截取的字符串,该字符串至少含有一个字符;$start:截取字符串的起始位置;如果 $start 是非负数,那么字符串将从 $string 的第 $start 个字符处开始截取,$start 从 0 开始计算。例如在字符串“abcdef”中,在 0 位置的字符是“a”,在 2 位置的字符串是 “c” 等等;如果 $start 是负数,那么字符串将从 $string 结尾处向前数第 $start 个字符开始,$start 从 -1 开始计算。例如在字符串“abcdef”中,在 -1 位置的字符是“f”,在 -3 位置的字符是“d”等等;如果 $string 的长度小于 $start,将返回 FALSE。$length:可选参数,表示截取字符串的长度。如果 $length 为正数,那么字符串将从 $start 位置向后截取最多 $length 个字符;如果 $length 为负数,那么 $string 末尾的 $length 个字符将会被省略(若 $start 是负数则从字符串尾部算起);如果 $length 的值为 0,FALSE 或 NULL,那么将返回一个空字符串;如果没有提供 $length,那么返回的子字符串将从 $start 位置开始直到字符串的结尾。示例:使用带有不同正负数的 start 和 length 参数<?php echo substr("Hello world",0,10)."<br>"; echo substr("Hello world",1,8)."<br>"; echo substr("Hello world",0,5)."<br>"; echo substr("Hello world",6,6)."<br>"; echo substr("Hello world",0,-1)."<br>"; echo substr("Hello world",-10,-2)."<br>"; echo substr("Hello world",0,-6)."<br>"; echo substr("Hello world",-2-3)."<br>"; ?>输出:Hello worl ello wor Hello world Hello worl ello wor Hello world2、使用mb_substr()截取中文字符串mb_substr() 函数可以从一个字符串中截取指定的一部分,与 substr() 函数不同的是,mb_substr() 函数不仅对英文字符有效,对中文字符同样有效,其语法格式如下:mb_substr($str , $start [, $length = NULL [, $encoding = mb_internal_encoding()]])参数说明如下:$str:待截取的字符串,字符串中至少包含一个字符;$start:截取字符串的起始位置;如果 $start 为非负数,那么字符串会从 $str 的第 $start 个字符的位置开始截取;如果 $start 是负数,那么字符串会从 $str 结尾处向前数第 $start 个字符的位置开始截取。$length:可选参数,表示截取字符串的长度;如果 $length 为正数,那么字符串将从 $start 位置向后截取最多 $length 个字符;如果 $length 为负数,那么 $string 末尾的 $length 个字符将会被省略(若 $start 是负数则从字符串尾部算起);如果 $length 的值 NULL 或者省略 $length,则会截取到字符串的末尾。$encoding:可选参数,表示 $str 的字符编码,如果省略,则使用内部字符编码。示例:使用 mb_substr() 函数,截取指定长度的中文字符串<?php $str = '欢迎访问PHP中文网,一个在线学习编程的网站。'; echo mb_substr($str, 4).'<br>'; echo mb_substr($str, -19).'<br>'; echo mb_substr($str, 4, 6).'<br>'; echo mb_substr($str, 4, -16).'<br>'; echo mb_substr($str, -19, -13).'<br>'; echo mb_substr($str, -19, 6).'<br>'; var_dump(mb_substr($str, 40)); echo '<br>'; var_dump(mb_substr($str, 4, null)); ?>运行结果如下:PHP中文网,一个在线学习编程的网站。 PHP中文网,一个在线学习编程的网站。 PHP中文网 PHP PHP中文网 PHP中文网 string(0) "" string(55) "PHP中文网,一个在线学习编程的网站。"
2023年12月30日
15 阅读
0 评论
0 点赞
2023-12-30
PHP 获取ip地址的六种方法
PHP 获取ip地址的六种方法本篇文章主要介绍PHP 获取ip地址的六种方法,感兴趣的朋友参考下,希望对大家有所帮助。方法一:function getip() { static $ip = ''; $ip = $_SERVER['REMOTE_ADDR']; if(isset($_SERVER['HTTP_CDN_SRC_IP'])) { $ip = $_SERVER['HTTP_CDN_SRC_IP']; } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) { foreach ($matches[0] AS $xip) { if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) { $ip = $xip; break; } } } return $ip; }方法二:<?php error_reporting (E_ERROR | E_WARNING | E_PARSE); if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){ $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]; } elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){ $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"]; } elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){ $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"]; } elseif (getenv("HTTP_X_FORWARDED_FOR")){ $ip = getenv("HTTP_X_FORWARDED_FOR"); } elseif (getenv("HTTP_CLIENT_IP")){ $ip = getenv("HTTP_CLIENT_IP"); } elseif (getenv("REMOTE_ADDR")){ $ip = getenv("REMOTE_ADDR"); } else{ $ip = "Unknown"; } echo $ip; ?>方法三:<?php $iipp = $_SERVER["REMOTE_ADDR"]; echo $iipp ; ?>方法四:<?php $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"]; echo $user_IP ?>方法五:<?php function get_real_ip() { $ip=false; if(!empty($_SERVER["HTTP_CLIENT_IP"])){ $ip = $_SERVER["HTTP_CLIENT_IP"]; } if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']); if($ip){ array_unshift($ips, $ip); $ip = FALSE; } for($i = 0; $i < count($ips); $i++){ if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])){ $ip = $ips[$i]; break; } } } return($ip ? $ip : $_SERVER['REMOTE_ADDR']); } echo get_real_ip(); ?>方法六:<?php if(getenv('HTTP_CLIENT_IP')){ $onlineip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR')){ $onlineip = getenv('HTTP_X_FORWARDED_FOR'); } elseif(getenv('REMOTE_ADDR')){ $onlineip = getenv('REMOTE_ADDR'); } else{ $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR']; } echo $onlineip; ?>
2023年12月30日
10 阅读
0 评论
0 点赞
2023-12-30
mysql哪些情况下不走索引?
mysql哪些情况下不走索引?MySQL是一种常用的关系型数据库,它使用索引来提高查询性能。然而,并非所有的SQL语句都能充分利用索引。在本文中,我们将介绍几个无法使用到索引的MySQL SQL语句。1. 使用函数:当SQL语句中使用函数时,索引将无法被应用。例如,下面的SQL语句使用了函数UPPER,这将导致MySQL无法使用索引进行查询。SELECT * FROM customers WHERE UPPER(name) = 'JOHN';2. 使用LIKE模糊查询:在使用LIKE语句进行模糊查询时,如果通配符放在开头(例如%john),MySQL也将无法使用索引。这是因为MySQL只能利用索引执行前缀匹配,而不能利用索引进行后缀匹配。SELECT * FROM customers WHERE name LIKE '%john';3. 使用逻辑或操作符:当SQL语句中使用了逻辑或操作符(OR)时,索引也无法被应用。例如,下面的SQL语句使用了逻辑或操作符,这将导致MySQL无法使用索引进行查询。SELECT * FROM customers WHERE name = 'john' OR age = 30;4. 使用不等于操作符:当SQL语句中使用了不等于操作符(<>或!=)时,索引将无法被应用。例如,下面的SQL语句使用了不等于操作符,这将导致MySQL无法使用索引进行查询。SELECT * FROM customers WHERE age <> 30;5. 使用NULL值:当SQL语句中使用了NULL值作为查询条件时,索引也无法被应用。这是因为索引无法用于查找缺失的值。例如,下面的SQL语句使用了NULL值作为查询条件,这将导致MySQL无法使用索引进行查询。SELECT * FROM customers WHERE name IS NULL;在使用MySQL时,我们需要注意以上几种语句可能无法使用索引。如果需要提高查询性能,可以考虑优化SQL语句,避免使用这些无法使用索引的语句。
2023年12月30日
6 阅读
0 评论
0 点赞
2023-12-30
10个必备的字符串处理函数及其使用示例
10个必备的字符串处理函数及其使用示例在PHP开发中,字符串是一个不可或缺的部分。为了更高效地处理和操作字符串,我们需要掌握一些必备的字符串处理函数。本文将介绍10个常用的PHP字符串处理函数,并提供相应的代码示例,帮助你更好地理解和应用这些函数。第一部分:字符串截取与连接1. substr(string $string, int $start[, int $length]) // 字符串截取函数作用:从指定位置开始截取字符串的指定长度示例:$string = "Hello World"; $result = substr($string, 6, 5); echo $result; // 输出 "World"2. str_replace(mixed $search, mixed $replace, mixed $subject[, int &$count]) // 字符串替换函数作用:将字符串中的指定文本替换为新的文本示例:$string = "Hello World"; $result = str_replace("World", "PHP", $string); echo $result; // 输出 "Hello PHP"3. implode(string $glue, array $pieces) // 字符串连接函数作用:将数组元素用指定的分隔符连接成一个字符串示例:$array = array("Hello", "PHP", "World"); $result = implode(" ", $array); echo $result; // 输出 "Hello PHP World"第二部分:字符串查找与判断1. strpos(string $haystack, mixed $needle[, int $offset = 0]) // 字符串查找函数作用:检查字符串中是否包含指定的文本,并返回首次出现的位置示例:$string = "Hello PHP World"; $result = strpos($string, "PHP"); echo $result; // 输出 62. str_contains(string $haystack, mixed $needle) // 判断字符串是否包含指定文本作用:检查字符串是否包含指定的文本(PHP 8.0+)示例:$string = "Hello PHP World"; $result = str_contains($string, "PHP"); echo $result; // 输出 13. str_starts_with(string $haystack, mixed $needle) // 判断字符串是否以指定文本开头(PHP 8.0+)作用:检查字符串是否以指定的文本开头示例:$string = "Hello PHP World"; $result = str_starts_with($string, "Hello"); echo $result; // 输出 14. str_ends_with(string $haystack, mixed $needle) // 判断字符串是否以指定文本结尾(PHP 8.0+)作用:检查字符串是否以指定的文本结尾示例:$string = "Hello PHP World"; $result = str_ends_with($string, "World"); echo $result; // 输出 1第三部分:字符串分割与格式化1.explode(string $delimiter, string $string[, int $limit = PHP_INT_MAX]) // 字符串分割函数作用:将字符串以指定的分隔符分割成数组示例:$string = "Hello,PHP,World"; $result = explode(",", $string); print_r($result); // 输出 Array ( [0] => Hello [1] => PHP [2] => World )2. trim(string $string[, string $characters = " \t\n\r\0\x0B"]) // 字符串修剪函数作用:去除字符串首尾的空格或指定的字符示例:$string = " Hello World "; $result = trim($string); echo $result; // 输出 "Hello World"3. sprintf(string $format, mixed ...$args) // 字符串格式化函数作用:将指定的变量按照指定的格式进行格式化,返回格式化后的字符串 示例: $name = "Alice"; $age = 25; $result = sprintf("My name is %s and I am %d years old.", $name, $age); echo $result; // 输出 "My name is Alice and I am 25 years old."总结:本文介绍了10个必备的PHP字符串处理函数,并提供了相应的代码示例,帮助你更好地掌握和应用这些函数。通过灵活运用这些函数,你可以更高效地处理字符串,提升开发效率。希望本文能对你的PHP开发工作有所帮助!
2023年12月30日
14 阅读
0 评论
0 点赞
1
...
32
33
34
...
157