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

PHP调用YouTube API时setDescription方法添加多余转义斜杠问题

解决YouTube API上传时单引号带转义斜杠的问题

问题根源分析

出现这个情况大概率是字符串被重复转义,或者PHP的magic_quotes_gpc配置开启(老版本PHP常见),导致表单/请求传入的内容被自动加上转义斜杠,后续处理又没正确还原。

具体解决步骤

  • 先检查magic_quotes_gpc状态
    执行这段代码确认配置:

    echo get_magic_quotes_gpc();
    

    如果返回1,说明该配置开启,它会自动对GET/POST/COOKIE的内容转义。这时候要递归处理所有请求变量:

    function stripslashes_deep($value) {
        $value = is_array($value) ?
                    array_map('stripslashes_deep', $value) :
                    stripslashes($value);
        return $value;
    }
    
    // 处理POST/GET/COOKIE变量
    $_POST = stripslashes_deep($_POST);
    $_GET = stripslashes_deep($_GET);
    $_COOKIE = stripslashes_deep($_COOKIE);
    

    处理后再获取$video_description,就能拿到未被自动转义的原始内容。

  • 去掉多余的双引号包裹
    你的代码里用了"$video_description",完全没必要,直接传入变量即可:

    $videoSnippet->setDescription($video_description);
    

    双引号包裹会让PHP解析变量内的转义字符,反而可能导致转义逻辑混乱。

  • 针对单个变量强制还原
    如果上面的方法没用,直接对变量做多次转义还原(适用于被多次转义的情况):

    // 先判断是否有转义斜杠,再逐步还原
    while (strpos($video_description, '\\') !== false) {
        $video_description = stripslashes($video_description);
    }
    $videoSnippet->setDescription($video_description);
    
  • 排查代码中多余的转义操作
    检查接收$video_description的代码,有没有用addslashes()、mysqli_real_escape_string()之类的函数手动转义?如果有,去掉这些多余的操作——YouTube API会自行处理字符串的安全传输,不需要提前转义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 10:32:24