You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将滑块验证码相关Node.js功能代码转换为PHP实现

PHP 实现与Node.js逻辑完全等效的滑块验证码配置

以下代码完全对齐给出的Node.js滑块验证码逻辑,核心实现JSON格式POST提交验证参数的校验能力:

逻辑对齐点

  • 默认远程校验地址和原配置一致:api/Captcha
  • verify方法行为完全匹配:接收验证参数数组、目标请求地址,请求头携带Accept: application/json、Content-Type: application/json,将参数序列化为JSON作为请求体提交,最终返回接口响应结果,请求失败默认返回false

完整代码

<?php
class SliderCaptcha
{
    protected $config;

    public function __construct(array $config)
    {
        $this->config = array_merge([
            'remoteUrl' => '',
            'verify' => null
        ], $config);
    }

    /**
     * 执行滑块验证
     * @param array $params 验证参数数组
     * @param string|null $url 自定义请求地址,不传则使用默认remoteUrl
     * @return bool|string
     */
    public function verify(array $params, ?string $url = null)
    {
        $requestUrl = $url ?: $this->config['remoteUrl'];
        if (is_callable($this->config['verify'])) {
            return call_user_func($this->config['verify'], $params, $requestUrl);
        }
        return false;
    }
}

// 实例化验证码,配置与原Node代码一一对应
$captcha = new SliderCaptcha([
    'remoteUrl' => 'api/Captcha',
    'verify' => function (array $arr, string $url) {
        $ret = false;
        // 初始化cURL发起POST请求,等效原Node的fetch逻辑
        $ch = curl_init($url);
        $requestBody = json_encode($arr);
        curl_setopt_array($ch, [
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_POST => true,
            CURLOPT_HTTPHEADER => [
                'Accept: application/json',
                'Content-Type: application/json',
                'Content-Length: ' . strlen($requestBody)
            ],
            CURLOPT_POSTFIELDS => $requestBody,
            CURLOPT_TIMEOUT => 5
        ]);
        $response = curl_exec($ch);
        curl_close($ch);
        
        if ($response !== false) {
            $ret = $response;
        }
        return $ret;
    }
]);

// 调用示例
// $verifyResult = $captcha->verify([
//     'sliderX' => 132, // 滑块滑动距离
//     'captchaId' => 'xxx' // 验证码唯一标识
// ]);

运行前提:PHP环境需开启cURL扩展,代码请求行为和原Node.js逻辑完全一致,无额外参数增减。

内容的提问来源于stack exchange,提问作者Wasay Goraya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.08 16:15:17