分类 php 下的文章

PHP 入门笔记


PHP 简介

PHP: Hypertext Preprocessor,超文本预处理器的字母缩写

示例:

<?php
echo "Hi, I'm a PHP script!";

PHP官网:https://www.php.net
PHP 手册:https://www.php.net/manual/zh/intro-whatis.php
PHP 下载:http://php.p2hp.com/downloads.php
PHP Windows: https://windows.php.net/download
Zend 引擎是开源的解释php语言的脚本引擎


PHP 中文镜像站:http://php.p2hp.com/
PHP 中文手册:http://php.p2hp.com/manual/zh/


PHP 解释器安装

以 Windows 环境 为例,下载 php-8.2.8-Win32-vs16-x64.zip 文件后解压到自定义目录下,以 表示安装目录。降 添加到系统或用户环境变量 PATH 下,例如以管理员身份运行 path-edit 编辑添加到 path 变量里。

编辑 php.ini 配置文件

解压后默认无 php.ini 文件,例如复制 php.ini-development 为 php.ini, 并编辑 php.ini 内配置:

; php 扩展库目录 (<php-path> 表示 PHP 解释器解压目录)
extension_dir=<php-path>/ext

;根据需要开启扩展插件
extension=curl
;extension=ffi
;extension=ftp
extension=fileinfo
extension=gd
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
extension=mbstring
;extension=exif      ; Must be after mbstring as it depends on it
;extension=mysqli
;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
;extension=oci8_19  ; Use with Oracle Database 19 Instant Client
;extension=odbc
extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
extension=pdo_pgsql
extension=pdo_sqlite
;extension=pgsql
;extension=shmop

; xdebug 配置(详见后续 xdebug 安装和配置说明)
zend_extension = xdebug
xdebug.mode = debug
;xdebug.start_with_request = yes

phpinfo() 测试

php 解释器解压和正常配置后,可以在任意工作目录,新建一个phpinfo.php 并编辑:

<?php
   phpinfo();

在命令行执行 ‘php phpinfo.php’,终端会打印一下信息:

$ php phpinfo.php
phpinfo()
PHP Version => 8.2.8

System => Windows NT HD-IRON-PC 10.0 build 22621 (Windows 11) AMD64
Build Date => Jul  4 2023 15:48:56
Build System => Microsoft Windows Server 2019 Datacenter [10.0.17763]
Compiler => Visual C++ 2019
Architecture => x64
<略...>

在命令行执行 ‘php -S localhost:8000’,在浏览器地址栏输入 “http://localhost:8000/phpinfo.php”,终端会打印一下信息:

$ php -S localhost:8000
[Mon Aug 28 17:03:21 2023] PHP 8.2.8 Development Server (http://localhost:8000) started
[Mon Aug 28 17:04:06 2023] [::1]:58578 Accepted
[Mon Aug 28 17:04:06 2023] [::1]:58578 [404]: GET / - No such file or directory
[Mon Aug 28 17:04:06 2023] [::1]:58578 Closing
[Mon Aug 28 17:04:06 2023] [::1]:58579 Accepted
[Mon Aug 28 17:04:06 2023] [::1]:58580 Accepted
[Mon Aug 28 17:04:06 2023] [::1]:58579 [404]: GET /favicon.ico - No such file or directory
[Mon Aug 28 17:04:06 2023] [::1]:58579 Closing
[Mon Aug 28 17:04:12 2023] [::1]:58580 [200]: GET /phpinfo.php
[Mon Aug 28 17:04:12 2023] [::1]:58580 Closing
[Mon Aug 28 17:04:12 2023] [::1]:58597 Accepted

此时浏览器降显示如下截图:

windows 环境下 xdebug 安装和配置

在命令行执行 ‘php phpinfo.php > phpinfo.txt’ 或 ‘php -i > phpinfo.txt’, 此时会在当前目录下生成一个 ‘phpinfo.txt’ 文件,复制其内容后备用,进入xdbug 网站 https://xdebug.org/wizard, 粘贴 php 版本信息,点击下面的分析按钮,则会获取到对应 PHP 版本的 xdebug 插件,以及配置信息。

VScode PHP 调试

使用 VSCODE 打开 PHP 应用文件夹,点击左侧 DEBUG 按钮进入调试界面,点击创建 launch.json, 选择 php 环境模板,注意修改相关调试参数,其中调试侦听端口不能为0,常用调试端口例如 “localhost:8000” ,根据需要修改,启动调试后则可在 php 代码里实现断点调试和变量查看。

PHP Web 开发框架

ThinPHP: https://www.thinkphp.cn/
Laravel: https://laravel.com/
Laravel 中文网: http://laravel.p2hp.com/

https://www.yisu.com/zixun/775489.html
今天小编给大家分享一下PHP无状态的含义是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

第一部分:PHP无状态概述

HTTP协议本身是一种无状态协议。这意味着每个HTTP请求都被看作是独立的,与之前或之后的请求无关。因此,从HTTP请求来看,PHP是一种无状态的编程语言。具体来讲,PHP无状态含义如下:
PHP不会在不同的请求之间保留任何状态信息。
PHP脚本不会自动将用户的会话信息保存在服务器上。
PHP无法区分两个不同的HTTP请求是否来自同一个用户。

第二部分:无状态的挑战

虽然PHP无状态的特性使得它易于扩展和维护,但同时也给Web应用程序开发带来了一些挑战。这些挑战涉及会话管理、身份验证以及应用程序的响应性能等方面。
会话管理:由于PHP脚本不会自动处理会话信息,因此需要开发人员手动处理。这意味着开发人员需要确保跨页面共享数据的一致性,并避免数据误操作或泄露。
身份验证:PHP中的无状态特性使得身份验证变得更加关键。开发人员必须通过使用安全的身份验证机制来确保应用程序的安全性,同时不影响应用程序的性能。
响应性能:由于PHP无状态特性,其处理请求的速度非常快。但是,由于无法在不同请求之间保留状态信息,所以每次请求都需要重新构建一些数据。这可能对应用程序的性能产生一定的影响。

第三部分:无状态的应用

PHP被视为一种无状态的编程语言,但这并不意味着我们不能在其中实现有状态的应用程序。开发人员可以通过以下方法利用PHP的无状态特性:
使用Cookies和URL重写来跟踪用户会话信息。
通过使用数据库或缓存服务器来保留状态信息。
使用Ajax等技术来提高应用程序的响应性能。
使用RESTful API设计来创建有状态的Web服务。
以上就是“PHP无状态的含义是什么”这篇文章的所有内容,感谢各位的阅读!

Dockerfiles from WebDevOps for PHP, Apache and Nginx

docker run --name apache-php7.4 \
  --restart=always \
  -p 80:80 -p 443:443 \
  -v /<path>/www:/app \
  -d webdevops/php-apache:7.4
docker run --name apache-php8.2 \
  --restart=always \
  -p 80:80 -p 443:443 \
  -v /<path>/www:/app \
  -d webdevops/php-apache:8.2