-
答案:PHP读取XML主要用DOM和SimpleXML扩展。1.DOM将XML加载为树结构,适合复杂或需修改的场景,示例:创建DOMDocument对象,加载文件,通过getElementsByTagName获取节点并提取值,优点是功能强,缺点是代码繁琐、性能低。2.SimpleXML将XML转为对象,适合快速读取,示例:用simplexml_load_file加载文件,直接访问属性如$book->title,支持数组语法读取属性如$book['id'],优点是简洁直观,缺点是不支持复杂修改。3.选
-
不能。PHP接口中声明的static方法不可通过接口名直接调用(如MyInterface::doSomething()),因接口无法实例化且不提供运行时实现,仅作为契约约束;必须由实现类调用(如MyClass::doSomething())。
-
PHP单例模式能减少类实例化和重复connect()的CPU与内存开销,但不跨进程共享连接;在PHP-FPM下每个worker内仅创建一次PDO实例,连接复用需依赖PDO::ATTR_PERSISTENT及服务端配置。
-
对象用==或===比较仅判断是否为同一实例,需手动实现equals()方法按内容比较;PHP不调用__toString()等魔术方法,类型检查、字段逐个===比较及递归处理嵌套对象是安全实现要点。
-
stripos()最稳妥,但需用!==false判断;中文用mb_stripos();LIKE查询前用addcslashes()转义%_;百万数据勿PHP层匹配,应交数据库或建倒排索引。
-
strtotime()返回false的主因是输入格式不匹配其默认模糊规则,如纯数字日期、中文日期、自定义分隔符或时区标识不被识别;应优先用DateTime::createFromFormat()精确解析并严格校验。
-
Eloquent不支持自动多语言字段,需通过命名约定(如title_zh)、accessor动态拼接locale、显式fallback机制实现;API返回需声明$appends或用JsonResource显式赋值,写入必须明确指定字段或封装方法。
-
PHP无手机环境概念,阶乘需用gmp_fact()或自研bcfact()避免溢出,必须校验输入合法性并返回结构化错误而非崩溃。
-
count和sizeof在PHP中功能完全相同,均为获取数组或可数对象元素数量的函数,底层共享同一实现,性能无差异;但count是官方推荐名称,语义更准确,而sizeof易引发误解且工具链支持较弱。
-
PHP系统命令中文乱码需统一编码:一、用iconv转换(Windows转CP936→UTF-8);二、用mb_convert_encoding自动检测转换;三、putenv设置LANG/LC_ALL为zh_CN.UTF-8(Linux)或chcp65001(Windows);四、proc_open控制流并配合编码处理;五、参数传入前先转系统原生编码再escapeshellarg。
-
PHP上传表单易成木马入口,因$_FILES仅校验客户端可控的后缀与MIME;须在代码层用二进制头校验,如读取前4字节比对JPEG(\xff\xd8\xff)、PNG(\x89PNG)、GIF(GIF8)等签名。
-
使用mPDF等库可实现PHP动态生成PDF。优先选择mPDF或Dompdf处理HTML转PDF,FPDF适用于轻量控制,TCPDF适合高兼容性需求。通过Cell、MultiCell组织内容,设置字体编码支持中文,利用循环绘制表格,重写Header/Footer添加页眉页脚,并用GetY判断分页。实战中用mPDF的WriteHTML方法将含中文的HTML输出为PDF,需通过Composer安装并处理路径与异常。注意异步处理防高并发压力,定期清理缓存目录,调整内存限制,确保wkhtmltopdf环境兼容。选对
-
腾讯云SCF当前仅支持PHP7.4和8.2,入口函数须为全局functionmain_handler($event,$context),返回HTTP响应需含statusCode、headers、body字符串。
-
答案:调试PHP接口需确保数据合规与隐私保护。1.梳理数据流向,识别敏感字段,仅在本地调试时用error_log记录;2.验证输入合法性,使用filter_var、正则等过滤数据;3.检查响应是否脱敏,日志和数据库避免明文存储敏感信息;4.验证认证授权机制,防止越权访问;5.使用PHPStan、OWASPZAP等工具辅助检测。合规应贯穿开发全过程。
-
可采用四种运行时缓存机制:一、PHP静态变量封装;二、LaravelCache门面配合请求作用域键;三、config()函数临时覆盖配置;四、Optional类结合闭包延迟求值。