TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码
/
注册
用户名
邮箱
搜索到 54 篇与 PHP 的结果
2021-05-10

PHP查询大量数据内存耗尽问题的解决方法

PHP查询大量数据内存耗尽问题的解决方法
从数据库查询大量数据时会出现内容不够的提示:PHP Fatal error: Allowed memory size of 268 435 456 bytes exhausted 这个问题在PHP的官方网站上叫缓冲查询和非缓冲查询(Buffered and Unbuffered queries)。PHP的查询缺省模式是缓冲模式。也就是说,查询数据结果会一次全部提取到内存里供PHP程序处理。这样给了PHP程序额外的功能,比如说,计算行数,将指针指向某一行等。更重要的是程序可以对数据集反复进行二次查询和过滤等操作。但这种缓冲查询模式的缺陷就是消耗内存,也就是用空间换速度。相对的,另外一种PHP查询模式是非缓冲查询,数据库服务器会一条一条的返回数据,而不是一次全部返回,这样的结果就是PHP程序消耗较少的内存,但却增加了数据库服务器的压力,因为数据库会一直等待PHP来取数据,一直到数据全部取完。很显然,缓冲查询模式适用于小数据量查询,而非缓冲查询适应于大数据量查询。对于PHP的缓冲模式查询大家都知道,下面列举的例子是如何执行非缓冲查询API。非缓冲查询方法一: mysqli<?ph...
2021年05月10日
45 阅读
0 评论
2021-04-26

PHP判断客户端是否使用代理服务器

PHP判断客户端是否使用代理服务器
要判断客户端是否使用代理服务器,可以从客户端所发送的环境变量信息来判断。具体来说,就是看HTTP_VIA字段,如果这个字段设置了,说明客户端使用了代理服务器。1、没有使用代理服务器的情况: REMOTE_ADDR = 您的 IP HTTP_VIA = 没数值或不显示 HTTP_X_FORWARDED_FOR = 没数值或不显示 2、使用透明代理服务器的情况:Transparent ProxiesREMOTE_ADDR = 代理服务器 IP HTTP_VIA = 代理服务器 IP (补充:这个字段由代理服务器填充,有时会填充网关信息等) HTTP_X_FORWARDED_FOR = 您的真实 IP 这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。 3、使用普通匿名代理服务器的情况:Anonymous ProxiesREMOTE_ADDR = 代理服务器 IP HTTP_VIA = 代理服务器 IP (补充:这个字段由代理服务器填充,有时会填充网关信息等) HTTP_X_FORWARDED_FOR = 代理服务器 IP 隐藏了您的真实IP,但是向访...
2021年04月26日
98 阅读
0 评论
2021-03-22

PHP数组foreach循环嵌套优化

PHP数组foreach循环嵌套优化
2个多维数组,要把两个数组的其中几个字段去合并成一个新的数组,或者把其中一个数组的字段加到另外一个数组中//源数组 $array1 = ( 'detail' => array( [0] => array( 'name' : 'test', 'id' : 01 ), [1] => array( 'name' : 'test2', 'id' : 02 ) ) ); $array2 = ( 'detail' => array( [0] => array( 'id' : 01, 'age' : 11, ), [1] => array( 'id' : 02, 'age' : 22, ) ) ); //目标数...
2021年03月22日
297 阅读
0 评论
2021-03-21

ThinkPHP6模板引擎循环标签

ThinkPHP6模板引擎循环标签
controller文件public function index(){ $arr = [ [ 'id' => 1, 'name' => '小鱼' ], [ 'id' => 2, 'name' => '小虾' ], [ 'id' => 3, 'name' => '小黄' ] ]; View::assign('arr',$arr); return View::fetch(); } foreach标签的用法和PHP语法非常接近,用于循环输出数组或者对象的属性{foreach $arr as $v} <div> <span>ID:{$v['id']}</span> <span>姓名:{$v['na...
2021年03月21日
292 阅读
0 评论
2021-03-20

ThinkPHP获取所有控制器的名称和方法

ThinkPHP获取所有控制器的名称和方法
获取当前控制器的名称和方法request()->controller(); request()->action(); 获取所有控制器/** * 获取目录下的php文件名 根据thinkphp文件命名规则可以知道文件名和控制器的名称是一致的 * @param string $dir 控制器目录的路径 * @return array 返回获取的数组形式 */ function getControllers($dir) { $pathList = glob($dir . '/*.php'); $res = []; foreach($pathList as $key => $value) { $res[] = basename($value, '.php'); } return $res; } $controllers = getControllers('../app/admin/controller'); 获取所有控制器的方法名/** * 获取控制器的方法名的函数 此方法过滤父级Base控...
2021年03月20日
286 阅读
0 评论
2021-03-07

PHP推荐密码加密的方法

PHP推荐密码加密的方法
password_hash 函数password_hash 函数用于创建密码的散列(hash)PASSWORD_DEFAULT - 使用 bcrypt 算法 (PHP 5.5.0 默认)。 注意,该常量会随着 PHP 加入更新更高强度的算法而改变。 所以,使用此常量生成结果的长度将在未来有变化。 因此,数据库里储存结果的列可超过60个字符(最好是255个字符)。PASSWORD_BCRYPT - 使用 CRYPT_BLOWFISH 算法创建散列。 这会产生兼容使用 "$2y$" 的 crypt()。 结果将会是 60 个字符的字符串, 或者在失败时返回 FALSE。PASSWORD_ARGON2I - 使用 Argon2 散列算法创建散列。password_verify 函数password_verify 函数用于验证密码是否和散列值匹配。参数说明密码:用户的密码。hash:一个由password_hash创建的散列值。返回值:如果密码和散列值匹配则返回TRUE,否则返回FALSE。示例$a = password_hash("123456",PASSWORD_...
2021年03月07日
342 阅读
0 评论
2021-03-04

PHP获取服务器操作系统相关信息的方法

PHP获取服务器操作系统相关信息的方法
PHP程式版本:echo PHP_VERSION; ZEND版本:echo zend_version(); MYSQL支持:echo function_exists (mysql_close)?"是":"否"; MySQL数据库持续连接 :echo @get_cfg_var("mysql.allow_persistent")?"是 ":"否"; MySQL最大连接数:echo @get_cfg_var("mysql.max_links")==-1 ? "不限" : @get_cfg_var("mysql.max_links"); 服务器操作系统:echo PHP_OS; 服务器端信息:echo $_SERVER ['SERVER_SOFTWARE']; 最大上传限制:echo get_cfg_var ("upload_max_filesize")?get_cfg_var ("upload_ma...
2021年03月04日
353 阅读
0 评论