每天都在写PHP脚本,但你真的会调试CLI程序吗?

第一章:PHP CLI开发的核心价值与场景

PHP不仅仅局限于Web开发,在命令行界面(CLI)下的应用同样具备强大潜力。通过PHP CLI,开发者能够构建无需依赖Web服务器的独立脚本,实现后台任务处理、定时作业执行、数据迁移、日志分析等关键功能。

为何选择PHP进行CLI开发

  • 复用现有PHP技能与代码库,降低学习成本
  • 无缝对接Laravel、Symfony等现代PHP框架的Artisan或Console组件
  • 支持面向对象、命名空间和Composer依赖管理,便于构建结构化CLI应用

典型应用场景

场景说明
定时任务通过cron调用PHP脚本执行每日数据备份或报表生成
数据同步从外部API拉取数据并写入本地数据库
系统维护清理缓存、重建索引或执行批量用户操作

一个基础的CLI脚本示例

<?php
// cli-script.php
if (php_sapi_name() !== 'cli') {
    die('此脚本仅可在CLI模式下运行');
}

// 接收命令行参数
$arguments = $argv;
$command = $arguments[1] ?? 'help';

switch ($command) {
    case 'greet':
        $name = $arguments[2] ?? 'World';
        echo "Hello, $name!\n";
        break;
    case 'help':
        echo "可用命令:\n";
        echo "  php cli-script.php greet [名称] - 打招呼\n";
        break;
    default:
        echo "未知命令: $command\n";
}
?>

执行方式:php cli-script.php greet John,输出:Hello, John!

graph TD A[用户输入命令] --> B{解析参数} B --> C[执行对应逻辑] C --> D[输出结果到终端]

第二章:CLI脚本调试基础与工具链

2.1 理解PHP CLI模式与SAPI的差异

PHP在运行时可通过多种服务器抽象接口(SAPI)执行,其中命令行接口(CLI)与其他SAPI(如FPM、Apache模块)存在显著差异。
执行环境对比
CLI模式专为终端执行设计,无需Web服务器支持,常用于脚本调度、测试和运维任务。而FPM等SAPI则服务于HTTP请求响应周期。
行为差异示例
<?php
// CLI环境下输出直接打印到终端
echo "Running as " . php_sapi_name(); // 输出:Running as cli

// Web SAPI中则返回给客户端
?>
该代码通过php_sapi_name()函数判断当前运行接口类型,CLI下返回"cli",FPM下返回"fpm-fcgi"。
主要差异汇总
特性CLIWeb SAPI
输入输出标准输入/输出流HTTP请求/响应
内存限制通常无限制受memory_limit约束
执行时间无超时默认30秒

2.2 使用var_dump与print_r进行基础调试

在PHP开发中,var_dump和print_r是两个最常用的基础调试函数,用于输出变量的结构和值,帮助开发者快速排查问题。
var_dump:详细变量信息输出
$data = ['name' => 'Alice', 'age' => 25, 'active' => true];
var_dump($data);
该函数输出变量类型与值,对数组和对象提供层级结构。例如上述代码会显示数组的键名、类型及具体值,适合需要精确类型判断的场景。
print_r:可读性更强的输出
print_r($data);
print_r更注重可读性,仅输出值而不强调类型,常用于快速查看数组内容。配合true参数可返回字符串而非直接输出。
  • var_dump:适合调试类型错误,输出全面
  • print_r:适合查看数据结构,格式简洁

2.3 利用error_log和自定义日志记录调试信息

在PHP开发中,error_log() 是最直接的调试信息输出方式,它能将错误或调试信息写入服务器错误日志文件,避免暴露给前端用户。
使用 error_log 输出调试信息

// 将变量信息写入错误日志
$debugData = ['user_id' => 123, 'action' => 'login'];
error_log("调试信息: " . print_r($debugData, true));
该代码利用 print_r 格式化数组,并通过 error_log 写入系统日志。参数为字符串,常用于记录异常状态或流程追踪。
自定义日志记录函数
为提升可维护性,可封装日志函数:

function log_message($message, $level = 'INFO') {
    $timestamp = date('Y-m-d H:i:s');
    $logEntry = "[$timestamp] [$level] $message\n";
    error_log($logEntry, 3, '/var/log/myapp.log');
}
log_message("用户登录成功", 'INFO');
此处使用 error_log 的第三个参数指定自定义日志文件路径,实现应用级日志分离,便于集中分析。

2.4 集成Xdebug实现CLI脚本断点调试

配置PHP CLI环境支持Xdebug
要对命令行脚本进行断点调试,首先需确保Xdebug扩展已正确加载至CLI环境。可通过以下命令验证:
php -m | grep xdebug
若未启用,需在php.ini中添加zend_extension=xdebug.so路径,并确保与FPM或Web环境使用同一版本。
启用远程调试参数
在php.ini中设置关键参数以支持远程调试:
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
其中client_port需与IDE监听端口一致(如VS Code默认为9003),start_with_request确保CLI启动时自动连接。
IDE端配置与断点触发
在编辑器中启用监听并设置断点后,执行任意PHP脚本即可中断:
php /path/to/script.php
此时调试器将捕获执行流程,支持变量查看、单步执行等操作,极大提升复杂CLI任务的排查效率。

2.5 调试环境搭建与IDE配置实战

选择合适的IDE与调试工具
现代开发中,IDE不仅提供代码编辑功能,还集成了断点调试、变量监视和调用栈分析能力。推荐使用Visual Studio Code或IntelliJ IDEA,二者均支持多语言调试协议(DAP),可通过插件扩展适配Go、Python、Java等语言。
配置调试启动项
以VS Code为例,在项目根目录创建.vscode/launch.json文件:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch Go Program",
      "type": "go",
      "request": "launch",
      "mode": "auto",
      "program": "${workspaceFolder}/main.go"
    }
  ]
}
该配置定义了调试入口:`"mode": "auto"`表示自动选择编译运行方式;`"program"`指定主包路径。保存后可在调试面板启动带断点的会话。
启用远程调试支持
对于容器化服务,需结合dlv等工具暴露调试端口,并在IDE中配置远程连接地址,实现跨环境断点调试。

第三章:运行时控制与错误处理机制

3.1 错误报告级别设置与异常捕获策略

在现代应用开发中,合理的错误报告级别配置是保障系统稳定性的基础。通过精细化控制错误级别,开发者可区分不同严重程度的问题,避免日志泛滥或关键异常遗漏。
常见错误级别分类
  • E_ERROR:致命运行时错误,程序立即终止
  • E_WARNING:非致命警告,程序继续执行
  • E_NOTICE:提示性信息,可能隐藏潜在问题
  • E_EXCEPTION:未被捕获的异常
动态设置错误报告级别

// 仅显示错误和警告
error_reporting(E_ERROR | E_WARNING);

// 开发环境启用全部错误提示
error_reporting(E_ALL);
ini_set('display_errors', 'On');
上述代码通过 error_reporting() 函数设定当前脚本的错误报告级别,结合 ini_set() 控制错误是否输出到屏幕,适用于不同部署环境的灵活切换。
统一异常捕获机制
使用 try-catch 结构捕获异常,并结合注册全局异常处理器,确保所有未捕获异常均被记录。

set_exception_handler(function($exception) {
    error_log("Uncaught Exception: " . $exception->getMessage());
});
该机制将未被捕获的异常写入系统日志,防止敏感信息暴露给前端用户,同时便于后续排查。

3.2 自定义错误处理器与异常处理器实践

在构建健壮的Web服务时,统一的错误处理机制至关重要。通过自定义错误处理器,可以集中管理HTTP异常响应格式,提升API的可维护性与用户体验。
定义全局异常处理器
使用Go语言实现一个中间件来捕获运行时 panic 并返回结构化错误:
func Recoverer(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        defer func() {
            if err := recover(); err != nil {
                w.Header().Set("Content-Type", "application/json")
                w.WriteHeader(http.StatusInternalServerError)
                json.NewEncoder(w).Encode(map[string]string{
                    "error": "internal server error",
                })
            }
        }()
        next.ServeHTTP(w, r)
    })
}
该中间件通过 defer 和 recover 捕获后续处理链中的 panic,避免服务崩溃,并返回标准化JSON错误响应。
错误分类与响应映射
可通过类型断言区分不同错误,返回对应状态码:
  • ValidationError → 400 Bad Request
  • AuthorizationError → 403 Forbidden
  • NotFoundError → 404 Not Found
  • InternalError → 500 Internal Server Error

3.3 信号处理在CLI脚本中的应用技巧

在编写长时间运行的CLI脚本时,合理处理操作系统信号能显著提升程序的健壮性与用户体验。通过捕获中断信号,可以优雅地释放资源并退出进程。
常见信号类型与用途
  • SIGINT:用户按下 Ctrl+C 触发,常用于请求终止
  • SIGTERM:标准终止信号,支持优雅关闭
  • SIGUSR1:自定义信号,可用于触发日志轮转等操作
Go语言中的信号监听示例
package main

import (
    "fmt"
    "os"
    "os/signal"
    "syscall"
)

func main() {
    sigChan := make(chan os.Signal, 1)
    signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)

    fmt.Println("服务启动,等待信号...")
    sig := <-sigChan
    fmt.Printf("\n收到信号: %s,正在清理资源...\n", sig)
    // 此处执行清理逻辑
}
上述代码创建了一个信号通道,使用 signal.Notify 注册关注的信号类型。当接收到 SIGINT 或 SIGTERM 时,主进程会从阻塞状态恢复,执行后续的清理动作,实现平滑退出。

第四章:性能分析与高级调试技术

4.1 使用phpdbg进行轻量级性能剖析

phpdbg 是 PHP 内建的轻量级调试与性能分析工具,无需额外安装扩展,通过命令行即可启动,适合快速定位性能瓶颈。

启动 phpdbg 并运行脚本
phpdbg -qrr index.php

其中 -q 表示静默模式,-r 表示直接运行脚本,-rr 启用即时执行。该命令避免了 Web 服务器环境的复杂依赖,便于本地快速测试。

启用性能追踪
phpdbg -e -f index.php

使用 -e 参数生成执行摘要(Execution Trace),输出函数调用次数、耗时等关键指标,帮助识别高频或耗时函数。

  • 无需修改代码即可启用分析
  • 低开销,适合生产预演环境
  • 支持断点调试与跟踪混合使用

4.2 Xdebug性能分析生成与火焰图解读

启用Xdebug的性能分析功能需在php.ini中配置:
xdebug.mode=profile
xdebug.output_dir="/tmp/xdebug"
xdebug.profiler_output_name=cachegrind.out.%p
该配置将生成符合cachegrind格式的性能数据文件,记录函数调用时间、调用次数及内存使用。
火焰图生成流程
通过工具链转换原始数据以可视化调用栈:
  1. 使用qcachegrind或perf-tools解析cachegrind文件
  2. 导出调用栈信息为折叠栈格式
  3. 利用flamegraph.pl生成SVG火焰图
火焰图关键指标解读
区域宽度代表函数执行时间占比,越宽耗时越长
堆叠层次显示函数调用链,自下而上为调用关系
颜色区分通常按命名空间或模块着色,便于识别来源
通过定位“平顶”高峰可发现高频调用或递归瓶颈。

4.3 内存泄漏检测与优化实战

在高并发服务中,内存泄漏是导致系统性能下降的常见原因。通过合理工具和编码规范可有效识别并规避此类问题。
常用检测工具
Go语言推荐使用pprof进行内存分析:
import _ "net/http/pprof"
// 启动HTTP服务后访问/debug/pprof/heap获取内存快照
该代码启用pprof后,可通过浏览器或命令行工具采集堆内存数据,定位对象分配热点。
典型泄漏场景与规避
  • 全局map未设置过期机制,持续增长
  • goroutine阻塞导致栈内存无法释放
  • 注册监听未注销,引用链持对象不释放
优化前后对比
指标优化前优化后
内存占用1.2GB400MB
GC频率每秒5次每秒1次

4.4 脚本执行时间监控与瓶颈定位

在自动化运维中,脚本执行效率直接影响任务响应速度。通过精细化的时间监控,可快速识别性能瓶颈。
执行时间记录方法
使用内置时间模块记录脚本关键阶段耗时:

#!/bin/bash
start_time=$(date +%s)
# 执行核心逻辑
sleep 2
end_time=$(date +%s)
echo "脚本执行耗时: $((end_time - start_time)) 秒"
该方法通过时间戳差值计算总耗时,适用于 Shell 脚本的粗粒度监控,便于快速集成。
性能瓶颈分析策略
  • 分段计时:将脚本划分为多个逻辑块,分别记录耗时
  • 资源监测:结合 top 或 ps 命令观察 CPU 与内存占用趋势
  • 日志埋点:在关键函数前后输出时间戳,辅助定位延迟源头

第五章:构建高效稳定的CLI开发工作流

自动化构建与版本管理
在CLI工具开发中,持续集成(CI)是保障稳定性的核心。通过GitHub Actions配置自动测试与构建流程,可确保每次提交都经过验证。以下是一个典型的CI配置片段:

name: Build and Test CLI
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Go
        uses: actions/setup-go@v4
        with:
          go-version: '1.21'
      - name: Run tests
        run: go test -v ./...
      - name: Build binary
        run: go build -o mycli cmd/main.go
依赖管理与模块化设计
使用Go Modules管理依赖项,确保版本锁定和可复现构建。项目结构应清晰划分命令、服务与配置模块:
  • /cmd:主命令入口
  • /internal/cli:子命令逻辑
  • /pkg/config:配置加载与解析
  • /test:集成测试用例
日志与错误处理规范
CLI工具需提供结构化日志输出,便于调试与监控。推荐使用log/slog包并统一错误码体系:
错误类型退出码说明
输入参数错误1用户输入不符合预期格式
网络请求失败3API调用超时或返回5xx
发布流程与跨平台打包
利用goreleaser实现一键打包多平台二进制文件。配置文件.goreleaser.yml定义目标操作系统与架构,结合GitHub Release自动生成下载链接,提升分发效率。
海上风电经柔性直流送出系统的阻抗建模与稳定性分析 摘要 本文针对海上风电经柔性直流送出系统的稳定性问题,提出了一种基于阻抗建模的分析方法。研究建立了直驱永磁同步发电机(PMSG)的序阻抗解析模型和模块化多电平换流器(MMC)的交流侧小信号阻抗模型,通过Matlab/Simulink平台实现了完整的仿真验证系统。采用谐波线性化原理和端口阻抗分析法,揭示了风电机组与柔直换流器之间的阻抗匹配特性对系统稳定性的影响规律。研究结果表明,控制参数设置会显著改变系统阻抗特性,进而影响稳定裕度。文中提出的阻抗建模方法为分析海上风电柔直送出系统的宽频振荡问题提供了有效工具, 阅读详情

相关推荐

中小公司无线组网实战:用一台H3C AC和普通三层交换,实现办公网AP统一管理

本文详细介绍了中小型企业如何利用H3C AC控制器与普通三层交换机实现无线AP统一管理的实战方案。通过VLAN规划、DHCP配置和AC控制器设置,构建经济高效的办公网络,解决信号覆盖和连接稳定性问题,特别适合50-200人规模的企业部署。

weixin_42531516的博客 382

PHP 的 CLI 模式简介

文章目录什么是 CLICLI 的使用1、运行某php文件2、查看命令行下该php的版本信息3、查看CLI模式下phpinfo的信息4、校验某php文件是否有语法错误5、查看php都加载了哪些模块6、命令行下直接运行php代码7、上面列出的例子,可以这样去理解 什么是 CLI CLI其实是Command Line Interface的简写,从字面上不难理解,是命令行接口的意思。 CLI 的使用 ...

wujizhishui的博客 3588

自锁电路设计

Hi,uu们,是不是经常要用到自锁电路,通常不是使用555芯片就是用比较器来做自锁,今天我们来简单看下自锁电路的设计.图1采用了比较器构建了一个自锁电路,采用低电平复位,当需要复位的时候志需要将反向端的二极管拉低一下即可,免去 三极管控制同相端和电源短接的麻烦。图1:比较器构建的自锁电路也可以使用555去构建,如下图2所示.图2:使用555构建的自锁电路工作原理见555的真值表,真值表如表1所示.表1:555电路真值表相对来说555还是比较贵,所以我就想能不能有个便宜的方法做个自锁电路,构建电路如下图3所示

weixin_43884675的博客 7065

独立开发者系列(44)——PHP的CLI运行模式

config/swoole.php 到该文件里面进行配置 (如果是需要启动俩套代码,需要这样配置) 该配置可以更改swoole启动服务器的端口,启动后,默认是服务器的IP端访问,需要转发到主服务器的80端口,同时配置https相关证书。由于swoole默认情况下是常驻内存的,也就是代码的开发改动调试是需要重新启动加载一次代码的,也就是加载一次后,代码就在内存中,直到服务器结束运行,所以给调试带来很大的不方便,需要将代码配置成 热更新模式(这样就跟普通的php代码差不多)

大梁来了的博客 2185

不止于ACC:用CarSim的‘Multiple Objects’和路径跟踪器玩转复杂交通流场景

本文深入探讨了如何利用CarSim的'Multiple Objects'模块和路径跟踪器模拟复杂交通流场景,超越传统ACC测试的局限。通过批量控制、动态交互和参数化设计,实现多车智能响应和复杂轨迹模拟,适用于连续变道、拥堵博弈、匝道汇流等真实交通场景。

weixin_30954265的博客 497

AS7262六通道可见光传感器:从光谱原理到物联网色彩检测实战

光谱检测是嵌入式感知领域的关键技术,其核心原理是通过特定波长的滤光片分离光线并转换为电信号,从而实现对环境光或物体反射光的成分分析。这项技术的价值在于将复杂的光学分析简化为可编程读取的数字信号,极大降低了色彩检测在物联网和智能设备中的应用门槛。在智能农业、工业分拣、环境监测等场景中,精确的光谱数据能够驱动自动化决策,例如评估植物光照条件或识别物料颜色。本文以Adafruit AS7262传感器为例,深入解析其基于硅干涉滤光片的六通道设计,并通过Arduino与Python实战,演示如何快速构建从数据采集到可

weixin_28738173的博客 595

php中 cli和cgi的区别

在PHP中,CLI(Command Line Interface)和CGI(Common Gateway Interface)是两种不同的运行PHP脚本的方式,它们各自有不同的用途和特点。

手可摘星河 801

Win10安全模式下修改C盘权限的完整指南(附解决开始菜单失灵方案)

本文提供了一份在Win10安全模式下修复因C盘权限误改导致开始菜单失灵的完整指南。文章深入剖析了权限体系,特别是TrustedInstaller角色的重要性,并详细讲解了通过安全模式进入系统、使用ICACLS命令或图形界面精准重置C盘关键目录权限的步骤,最终恢复系统核心功能。

weixin_29250403的博客 234

在 PHP 中,cli模式一共包含哪些部分?使用场景是什么?

PHP 的 CLI 模式就像一个“命令行助手”,你可以通过它运行脚本并看到结果。CLI 模式的底层原理是通过 PHP 解释器直接解析并执行脚本文件,而不需要 Web 服务器的参与。CLI 模式是一种运行 PHP 脚本的方式,它通过命令行(如终端或控制台)直接执行 PHP 文件,而不是通过 Web 服务器(如 Apache 或 Nginx)。通过以上讲解和代码,你应该已经理解了 CLI 模式的作用、使用场景、底层原理以及具体实现。以下是一个具体的示例代码,展示如何使用 CLI 模式处理命令行参数并输出结果。

长风破浪会有时的博客 1589

uniapp(微信小程序):实现PDF在线预览+在线预览pdf文件完整示例源码,支持文件来源:服务器pdf外链URL预览、调用后端API接口获取PDF文件流二进制下载及解析打开、上传本地PDF文件预览

uni-app实现PDF预览功能,uniapp微信小程序预览PDF,uniapp开发微信小程序在线预览pdf等文件,uniApp微信小程序实现PDF在线预览,Uniapp app在线预览pdf文件流,微信小程序实现pdf预览(苹果安卓兼容),uniapp-微信小程序 实现pdf外链在线预览,uniapp小程序如何做在线预览pdf功能,uniapp小程序端 实现pdf文件预览,微信小程序(uniapp)PDF预览完整实现方案示例demo源码,uni-app预览PDF,小程序pdf预览插件插件,Uniapp微信

✅ 精选推荐文章 4704

swl安装无法与服务器建立链接,如何解决?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。

**My Coding Family** 2075

PHP命令行CLI的使用

PHP命令行界面(CLI)是一种使用命令行(终端)来运行PHP脚本的方式,与在Web服务器环境下运行PHP不同。CLI提供了一种与操作系统交互的方式,能够在命令行中直接执行PHP代码。php命令行选项:PHP CLI支持许多命令行选项,以控制脚本的行为。例如,可以使用-r选项来执行单行PHP代码,或者使用-f选项来指定要执行的PHP脚本文件。获取命令行参数:通过全局变量$argv来获取命令行参数数组。其中,$argv[0]是当前执行的脚本的名称,$argv[1]$argv[2]等依次为传递给脚本的参数。

挖掘大数据价值,让决策者快速洞悉趋势,让大众读懂数据背后的故事。 1337

【新版系统架构】系统架构设计师教程全篇知识点提炼

信息系统的5个基本功能:输入、存储、处理、输出和控制信息系统的发展:诺兰模型:初始阶段、传播阶段、控制阶段、集成阶段、数据管理阶段、成熟阶段信息系统的分类:传统的信息系统分为:业务(数据)处理系统、管理信息系统(MIS)、决策支持系统(DSS)、专家系统(ES)、办公自动化系统(OAS)等5类信息系统的生命周期:1、产生阶段2、开发阶段(总体规划、系统分析、系统设计、系统实施、系统验收阶段)3、运行阶段4、消亡阶段信息系统建设原则:1、高层管理人员介入原则。

分享技术干货和灵感、推荐新书和好玩的项目、分享Java面试题 1万+

php脚本cli怎么运行_使用cli(命令行)方式执行php程序进行高效的程序调试

php_cli模式简介php-cli是php Command Line Interface的简称,如同它名字的意思,就是php在命令行运行的接口,区别于在Web服务器上运行的php环境(php-cgi, isapi等) 也就是说,php不单可以写前台网页,它还可以用来写后台的程序。 PHP的CLI shell脚本适用于所有的PHP优势,使创建要么支持脚本或系统甚至与GUI应用程序的服务端!——注:...

weixin_31487917的博客 1426

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

php cli debug,关于cakephp:如何使用xdebug调试PHP CLI脚本?

我还不太清楚。 我发现的每篇文档都涵盖了如何使用xdebug调试在Apache中运行的脚本。 我需要调试php CLI脚本。因此,例如,如何传递XDEBUG_SESSION_START变量来启动xdebug?我专门尝试调试CakePHP shell。 因此,如果有人对此有任何其他了解,我将不胜感激。谢谢。您可能还想在这里查看:stackoverflow.com/questions/2288612/...

weixin_31047023的博客 304

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

OpenCV特征提取与图像分割实战指南:从关键点到GrabCut

在计算机视觉任务中,特征提取与图像分割是两项最基础的能力。特征提取通过关键点与描述子将图像浓缩为可比较的数值向量,回答“该关注哪些点”的问题;图像分割则在像素级区分前景与背景,回答“哪些像素属于同一区域”的问题。传统方法如ORB、Canny、GrabCut等,以低计算量、高确定性和易部署的优势,在工业质检、目标定位、嵌入式设备等场景中依然承担着核心工作。理解阈值、边缘、关键点响应等概念,也是掌握深度学习语义分割与目标检测的底层直觉来源。本文梳理特征提取与图像分割的主流算法,结合Python实战演示ORB特征

weixin_34408717的博客 378

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

vscode调试PHP(WEB+CLI调试)

docker搭建开发环境 1,vscode安装PHP Debug扩展 2,php容器安装xdebug pecl install xdebug && docker-php-ext-enable xdebug 3,本机配置docker-php-ext-xdebug.ini #extension的路径根据上一步安装的xdebug提示填写 zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20180731/xde

qq_19557947的专栏 678

php cli debug,玩转 PhpStorm 系列(九):基于 Xdebug 进行代码调试(上)—— PHP CLI 应用...

玩转 PhpStorm 系列(九):基于 Xdebug 进行代码调试(上)—— PHP CLI 应用由 学院君 创建于6个月前, 最后更新于 6个月前版本号 #71711 views1 likes0 collects前面的教程大多围绕的是如何提高 PhpStorm 的日常编码效率,无论是代码导航、插件、快捷键还是代码模板、代码重构,都是围绕着效率展开。接下来,学院君来给大家介绍一些效率以外的主题,...

weixin_30668061的博客 335

php cli echo,PHP CLI模式下echo换行

近日在执行导库程序的时候,需要在CLI模式下运行程序进行调试,如下图,这是什么鬼?不是我想要的结果后经过查资料发现代码中执行的输出为//错误方法实例echo '其他-683\n';//正确打开方式echo "其他-683\n";需要用双引号,不能用单引号,原因:1.单引号中的所有只作为字符输出2.在双引号中 \n 会被解析为ASCII码而在不同的系统中换行符不一样,比如:linux,unix:...

weixin_33575191的博客 484

php -d cli_php CLI应用的调试方法(图文)

本篇文章给大家带来的内容是关于PHP CLI应用的调试方法(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。我们在Eclipse里选中一个PHP文件,右键选择Debug As->PHP CLI Application。所谓CLI应用,是指这种脚本文件不需要任何Web服务器即可运行,当然, PHP运行时还是需要的。我们在弹出的debug窗口里看到了XDebug:XDebu...

weixin_30365269的博客 235

windows下切换PHP-cli版本

PHP-cli是PHP Command Line Interface的缩写,指的是PHP的命令行界面。PHP-cli支持很多常用的命令行选项和参数,可以使用PHP的各种语言特性和函数库,具有很高的灵活性和扩展性,是PHP开发的重要组成部分。3.接下来加入你需要的PHP版本 作为PHP-cli运行 然后将加入的PHP路径 上移到当前PHP版本的路径的上面。首先 windows+r 输入 cmd 打开cmd命令行 输入php -v 查看当前php-cli的版本。你会看到当前的PHP-cli版本的目录路径。

MrWangisgoodboy的博客 2185

php cli 判断,php cli 命令行详解【转】

CLI PHP 的优点多年以来,我一直都在应用不确定的工程师职责定义。我个人认为,工程师就是使用工具来实现与该工具最初开发目的无关的功能。虽然这种想法并不总是正确,但当您认真考虑它时,将发现大多数创新和发明确实来自于通过以前从未考虑过的方法使用工具。想象一下我是多么惊讶,然后,我忽然想到一个主意:使用我的老朋友 PHP,作为命令行工具,它对于 Web 页面来说一直都非常可靠。我绝对不是这样做的第一...

weixin_36371504的博客 398

paip.php 配置ZEND DEBUGGER 断点调试for cli..

paip.php  配置ZENDDEBUGGER 断点调试for cli.. 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.youkuaiyun.com/attilax   需要用PHP写个命令行脚本..所以需要断点调试.. 1.查看PHP版本号.. ------

attilax的专栏 2642

php -d cli_PHP命令行(CLI模式)

CLI模式CLI模式其实就是命令行运行模式,英文全称Command-Line Interface(命令行接口)$php -hUsage: php [options] [-f] [--] [args...]php [options] -r [--] [args...]php [options] [-B] -R [-E ] [--] [args...]php [options] [-B] -F [...

weixin_35939140的博客 1439

php模式 cli,PHP CLI模式

/***************by garcon1986***************/首先,进入PHP的CLI(Command line interface) modecyguin-> $ ./php --ini(显示配置文件信息)将显示:configuration file(php.ini) path: c:/WindowsLoaded configuration file: c:/w...

weixin_34672536的博客 352

php cli server,记一次错误调试,关于php命令行[php cli] php cli模式 php cli server php cli 多线...

这几天遇到一个需求,这个需求写在了php文件里,这个文件最好在命令行里执行。但是,出问题了。当我在浏览器里执行php文件的时候,ok,一切正常。但是,当我在命令行里执行的时候,报错!错误信息为:PHP Fatal error: Uncaught Exception: could not find driver in /var/www/html/huxintong_admin/include/li...

weixin_32285357的博客 270
上一篇: PHP安全防护核心技巧:3步杜绝SQL注入,5层过滤XSS攻击
下一篇: R语言批量处理慢?一招教你用foreach实现高效并行计算
ByteChat
博客等级 码龄1年 157粉丝 1991原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值