首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SVG映像中有执行PHP代码的方法吗?

在SVG映像中有执行PHP代码的方法吗?
EN

Stack Overflow用户
提问于 2022-04-24 22:55:16
回答 1查看 451关注 0票数 0

即使经过几个小时的研究,我仍然找不到任何方法让php代码通过运行php的apache服务器上的svg映像来执行。

可以在svg映像中执行php代码吗?

如果是,怎么做?

更新:处理文件的功能是:

代码语言:javascript
复制
libxml_disable_entity_loader(false);
$doc = new DOMDocument();
$doc -> loadXML(file_get_contents($imageFile), LIBXML_NOENT | LIBXML_DTDLOAD); // $imageFile contains the .svg
$svg = $doc->getElementByTagName('svg');
echo $svg->item(0)->C14N();

现在,我想执行我在SVG中编写的自定义PHP代码,并获得echo $svg->item(0)->C14N();显示的结果。

PHP代码必须在包含上述功能的后端服务器上执行.

EN

回答 1

Stack Overflow用户

发布于 2022-04-24 23:40:00

您可以将服务器配置为这样做,但这不是最佳实践。

将第四行添加到httpd.conf

代码语言:javascript
复制
AddType application/x-httpd-php .php
AddType application/x-httpd-phps .phps
AddType application/x-httpd-php3 .php3 .phtml
AddType application/x-httpd-php .svg

这样做的缺点是,当.svg作为php运行时,对它的每一个请求都要花费更长的时间。在每个svg文件上都需要修改

或者,您可以在目录中使用.htaccess,因此当您调用mysvg.svg时,它运行mysvg.php

代码语言:javascript
复制
RewriteEngine on
RewriteRule ^(.+)\.svg$ $1.php [L]

但最佳实践是从php中发送svg。示例:How do I load a SVG file that's been generated with PHP?为什么要隐藏由php动态创建SVG的事实?

Update:如果您想运行由正在呈现的SVG触发的某些php代码。

代码语言:javascript
复制
<svg width="200" height="200"
  xmlns="http://www.w3.org/2000/svg">
  <image href="http://example.com/pixel/" height="1" width="1"/>
</svg>

注意:http://example.com/pixel/index.php脚本提供一个png像素并运行一些代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71992995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档