如何使用内联 css 中的 php 转义 url?

how to escape url with php inside inline css?

感谢您查看此问题。

在测试带有动态调用到 wordpress 小部件背景的图像的页面时,我收到关于这行代码调用的图像的消息“正在安全页面上加载混合(不安全)显示内容”:

<div class="row sal-feature-wrap" style="
   background-repeat:no-repeat; 
   background-size:100% auto; 
   background-image: url('<?php echo (strpos($image_base_url,'http://') !== 0 ? 'http://'.$image_base_url: $image_base_url); ?>
            ');">

我试过将背景图像行替换为:

background-image: url('<?php echo esc_url((strpos($image_base_url,'http://') !== 0 ? 'http://'.$image_base_url: $image_base_url)); ?>
            ');">

还有:

background-image: url('<?php echo esc_url(strpos($image_base_url,'http://') !== 0 ? 'http://'.$image_base_url: $image_base_url); ?>
            ');">

都是return我想要的图片,但是错误信息依旧。

此外,在所有情况下,明显相同的错误消息都会出现两次,我不确定为什么。

如何正确转义这个输出?

谢谢

为了避免 Mixed content warning 在控制台中。使用 https 协议渲染您的 img:

<div class="row sal-feature-wrap" style="
   background-repeat:no-repeat; 
   background-size:100% auto; 
   background-image: url('<?php echo (strpos($image_base_url,'://') === false ? 'https://'.$image_base_url: str_replace( 'http://', 'https://', $image_base_url )); ?>
            ');">