PHP内置Web Server探究(二)自定义PHP控制台输出console函数,webconsole_PHP教程
PHP内置Web Server探究(二)自定义PHP控制台输出console函数,webconsole
我们在开发APP的服务器端,当和APP进行联调时通常需要实时跟踪URL请求和参数的接收情况。
但PHP并没有像Python或Java专有的控制台输出函数,Python的print()和Java的System.out.println(),PHP的echo,print等函数在直接使用php -f index.php时,可以打印以shell屏幕上,但在cli_server运行时并不能满足把调试信息只打印在shell而不显示在浏览器。
用度娘搜了好久,网上对PHP内置server cli模式的资料少之又少,根本找不到一点有用的信息。
通过查阅PHP官方文档,最后想到PHP的标准输出流STDOUT
php://output 是一个只写的数据流, 允许你以 print 和 echo 一样的方式 写入到输出缓冲区
当在cli模式下运行时,只要向STDOUT写入数据时,并不需要echo 或 print 就会立即 打印 到 SHELL客户端:
于是,我们可以编写一个自定义函数来封装对sdtout标准输出流的数据的入,相当于随时把想要显示的调度信息打印到shell:
<span><span>1</span> <span>/*</span> <span>2</span> <span>* cli模式或者内置server打印调试信息,而不在浏览器输出 </span><span>3</span> <span>* param fixed $data 参数可以是除了对象以外的所有数据类型,比如:字符串,数组,jason等 </span><span>4</span> <span>*/</span> <span>5</span> <span>function</span> console(<span>$data</span><span>){ </span><span>6</span> <span>$stdout</span> = <span>fopen</span>('php://stdout', 'w'<span>); </span><span>7</span> <span>fwrite</span>(<span>$stdout</span>,json_encode(<span>$data</span>)."\n"); <span>//</span><span>为了打印出来的格式更加清晰,把所有数据都格式化成Json字符串</span> <span>8</span> <span>fclose</span>(<span>$stdout</span><span>); </span><span>9</span> }</span>
当需要在内置Server每一个请求后,打印当前的调试信息时:直接调用console()即可
比如:
打印所有接收到的GET或POST参数:
console($_GET);
console($_POST);
打印字符串:
console("hello php console debug");
以后再也不用羡慕Python和Java的控制台输出,PHP从此也有控制台输出函数了

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考虑使用AttActAcks.s.s.4)

会话再生是指在用户进行敏感操作时生成新会话ID并使旧ID失效,以防会话固定攻击。实现步骤包括:1.检测敏感操作,2.生成新会话ID,3.销毁旧会话ID,4.更新用户端会话信息。

PHP会话对应用性能有显着影响。优化方法包括:1.使用数据库存储会话数据,提升响应速度;2.减少会话数据使用,只存储必要信息;3.采用非阻塞会话处理器,提高并发能力;4.调整会话过期时间,平衡用户体验和服务器负担;5.使用持久会话,减少数据读写次数。

PHPsessionsareserver-side,whilecookiesareclient-side.1)Sessionsstoredataontheserver,aremoresecure,andhandlelargerdata.2)Cookiesstoredataontheclient,arelesssecure,andlimitedinsize.Usesessionsforsensitivedataandcookiesfornon-sensitive,client-sidedata.

phpientifiesauser'ssessionusessessionSessionCookiesAndSessionIds.1)whiwSession_start()被称为,phpgeneratesainiquesesesessionIdStoredInacookInAcookInamedInAcienamedphpsessidontheuser'sbrowser'sbrowser.2)thisIdAllowSphptptpptpptpptpptortoreTessessionDataAfromtheserverMtheserver。

PHP会话的安全可以通过以下措施实现:1.使用session_regenerate_id()在用户登录或重要操作时重新生成会话ID。2.通过HTTPS协议加密传输会话ID。3.使用session_save_path()指定安全目录存储会话数据,并正确设置权限。

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3汉化版
中文版,非常好用

SublimeText3 Linux新版
SublimeText3 Linux最新版

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。