当$result['data']['checkout_url']长度超100时添加二维码图片的实现方法
实现URL长度超100时添加二维码的PHP逻辑修改
需求说明:当$result['data']['checkout_url']的字符长度超过100时,在转账提示的成功消息中插入指定的二维码图片;长度未超过时保留原提示内容不变。
修改后的完整PHP代码:
if (filter_var($result['data']['checkout_url'], FILTER_VALIDATE_URL)) { return redirect()->to($result['data']['checkout_url']); } else { // 初始化基础提示文本 $successMsg = 'Silahkan transfer sebesar Rp ' . number_format($data_post['quantity'],0,',','.') . ' ke ' . $result['data']['checkout_url'] . ' melalui ' . $data_method[0]['name'] . ' sebelum 1x24 jam.'; // 判断URL长度是否超过100,满足条件则追加二维码 if (strlen($result['data']['checkout_url']) > 100) { // 转义URL内容避免HTML注入和参数解析问题 $escapedUrl = htmlspecialchars($result['data']['checkout_url']); $qrCode = '<img src="https://chart.googleapis.com/chart?chs=300x300&cht=qr&choe=UTF-8&chl=' . $escapedUrl . '" width="200">'; // 用换行分隔文本与二维码,可根据前端布局调整位置 $successMsg .= '<br>' . $qrCode; } $this->session->setFlashdata('success', $successMsg); return redirect()->to(str_replace('index.php/', '', site_url(uri_string()))); } } else { $this->session->setFlashdata('error', $result['message']); return redirect()->to(str_replace('index.php/', '', site_url(uri_string()))); } }
关键修改说明:
- 用
strlen()函数判断URL长度是否达标 - 新增
htmlspecialchars()转义URL,避免出现HTML语法错误或安全问题 - 将二维码HTML片段拼接到原提示文本后,保持原有业务逻辑完全不变
内容的提问来源于stack exchange,提问作者fication
相关产品推荐
相关产品推荐

