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