-
必须掌握SELECT、INSERT、UPDATE、DELETE、CREATE五类SQL语句及预处理防注入;PHP不执行SQL,仅传递给数据库解析,ORM底层仍是SQL。
-
根本原因是XDebug写入profile文件时未做编码转换,而系统locale或查看工具默认用GBK解析UTF-8路径;解决需统一环境编码、避免中文路径、改用UTF-8友好工具(如webgrind)或设置LANG=en_US.UTF-8。
-
history模式刷新404是Nginx未配置fallback规则所致;静态资源路径错乱源于base与root不匹配,而非文件上传错误;try_files必须置于location/块内,因其作用范围严格受限于该location匹配规则。
-
在PHP中验证税号字符串的方法包括:1.使用正则表达式进行格式验证;2.实现算法校验位验证;3.调用外部API进行验证。具体实现需根据税号类型定制,如美国EIN可用正则表达式验证格式,而欧盟VAT号码可能需要复杂的校验算法和外部服务。
-
PHP中密钥不可硬编码,应使用环境变量;开发用vlucas/phpdotenv加载.env文件,生产必须用系统级环境变量(如PHP-FPM配置或Dockerenvironment),并统一用getenv()读取且校验非空。
-
改端口后防盗链失效,是因为Referer头含端口(如http://localhost:8080),而规则中域名未适配端口导致匹配失败;应将RewriteCond改为支持可选端口的正则,如!^https?://(www.)?yourdomain.com(:[0-9]+)?/[NC],并确保AllowOverrideAll已启用。
-
phpenv是类Unix系统下基于Shell的轻量PHP版本管理器,非Windows图形化工具;需通过gitclone安装、配置shell环境变量、安装php-build插件及系统编译依赖,方可使用phpenvinstall等命令管理多版本PHP。
-
最常见原因是将超全局变量如$_GET['name']误写为$_GET('name')导致PHP尝试调用非函数变量;其次为动态函数名为空或非字符串、PHP7+数组回调语法不兼容、phpEnv配置注入未定义钩子函数。
-
Redis滑动窗口限流最可靠,因其原子操作、过期机制与单线程特性保障精确计数、自动清理和无竞态;需用Lua脚本保证INCR+EXPIRE原子性,ZSET实现滑动窗口,多级键设计(用户ID/API路径等),可信代理头获取真实IP,fastcgi_finish_request异步处理日志,429响应配Retry-After。
-
MySQL未启动是Drupal数据库连接失败的主因;需检查XAMPP中MySQL状态、端口占用、strictmode配置及settings.php权限,多实例部署时须同步修改my.ini端口、sql_mode、host为127.0.0.1并确保各实例数据目录与权限独立。
-
PHP垃圾回收依赖引用计数(refcount)日常释放和循环检测(cyclecollection)兜底;refcount为0时zval值立即释放,但内存不返操作系统;循环引用需gc_collect_cycles()触发扫描清除。
-
最可控兼容的方式是用scandir+filemtime手动遍历:scandir读目录,is_file过滤子目录,filemtime获取修改时间,比较得最大值;注意跳过.和..,路径拼接用DIR.'/path/'.$file,初始化时间为-1。
-
管道是PHP中用于父子进程间单向或双向通信的半双工机制,通过stream_socket_pair创建socket对,结合pcntl_fork实现数据传递,适用于任务分发、状态同步等轻量级场景。
-
PHP无原生async/await,所谓“异步”实为并发模拟:curl_multi_exec实现多请求并行等待,stream_socket_client+stream_select实现轻量非阻塞,Swoole/ReactPHP才是真异步但需重构环境。
-
Apache监听多端口需显式修改httpd.conf中Listen指令,为每个端口配置独立VirtualHost并指向CI4的public目录,启用mod_rewrite及AllowOverrideAll,确保.env位于项目根目录且编码正确。