PHP未加载SVG模式纹理

PHP未加载SVG模式纹理,php,html,svg,Php,Html,Svg,我正在处理一些SVG和PHP代码,我发现了一个我无法解决的非常恼人的问题。 我有一个带有一些形状的SVG图像。使用fill属性和def标记,我可以通过一个简单的GET变量成功地将纹理应用于所需的形状。这就是我的SVG: 而且,如果我想应用任何纹理,我都可以完美地看到它: 所以,问题是,当我嵌入带有img标记的图像时,我看不到纹理。 我已经配置了一个PHP文件,因此,如果我向该文件传递一些值,我可以更改颜色和纹理。例如: test.php?color=FF0000将用红方块渲染我的图像 te

我正在处理一些SVG和PHP代码,我发现了一个我无法解决的非常恼人的问题。
我有一个带有一些形状的SVG图像。使用
fill
属性和
def
标记,我可以通过一个简单的GET变量成功地将纹理应用于所需的形状。这就是我的SVG:

而且,如果我想应用任何纹理,我都可以完美地看到它:

所以,问题是,当我嵌入带有img标记的图像时,我看不到纹理。
我已经配置了一个PHP文件,因此,如果我向该文件传递一些值,我可以更改颜色和纹理。例如:

  • test.php?color=FF0000将用红方块渲染我的图像
  • test.php?pat=pat1将使用patterns文件夹中的模式渲染我的图像
如果我想显示图像,这很有用,但是如果我把它放在
img
标签中,它只适用于颜色,因此:

  • 将成功渲染带有红方块的图像
  • 不会渲染我的纹理;它以白色显示正方形
这是我的
test.php
文件(包含SVG代码的php):



当您将SVG显示为图像(即通过标记)或背景图像时,它必须在单个文件中完成,即不允许外部引用

您必须转换外部图像

xlink:href="img/patterns/<?=isset($_GET['pat']) ? $_GET['pat'] : 'pat1'?>.jpg"
xlink:href=“img/patterns/.jpg”

将SVG显示为图像(即通过标记或背景图像)时,必须在单个文件中完成,即不允许外部引用

您必须转换外部图像

xlink:href="img/patterns/<?=isset($_GET['pat']) ? $_GET['pat'] : 'pat1'?>.jpg"
xlink:href=“img/patterns/.jpg”

进入a,这样才能工作。

那么肯定是浏览器而不是PHP导致了问题?那么肯定是浏览器而不是PHP导致了问题?是的,就是这样!!如果有人感兴趣,我在中使用了这篇文章。谢谢你的帮助,它很有魅力!!是的,就是这样!!如果有人感兴趣,我在中使用了这篇文章。谢谢你的帮助,它很有魅力!!