我正在尝试使用php获取svg文件并将其输出到页面上。网站建立在Wordpress上。
<?php
echo file_get_contents("site.com/wp-content/themes/oaklandcentral/img/fb_logo.svg");
?>
什么都没有显示。实际链接是正确的,直接转到svg。有什么想法吗?
答案 0 :(得分:1)
在回显svg之前使用:header("Content-Type: image/svg+xml");
添加标题。有时浏览器假定默认情况下收到的数据是html。
答案 1 :(得分:0)
尝试使用以下代码。
$ opts = array(
的 'http'=&GT;阵列(
'方法'=&gt; “中GET”,
'header'=&gt;“Accept-language:en \ r \ n”。
“Cookie:foo = bar \ r \ n”
)
);
$ context = stream_context_create($ opts);
$ file = file_get_contents('site.com/wp-content/themes/oaklandcentral/img/fb_logo.svg',false,$ context);
答案 2 :(得分:0)
Path is wrong, use file_get_contents( get_template_directory() . '/img/fb_logo.svg' )
答案 3 :(得分:0)
echo file_get_contents("site.com/wp-content/themes/oaklandcentral/img/fb_logo.svg");
假设:
你的&#34;文件名&#34;字符串以协议开头,例如&#34; HTTP://&#34;
您可以直接从浏览器访问该文件(即不是 文件/文件夹权限问题);
file_get_contents返回FALSE? (E_WARNING告诉我吗? 你呢?)
我记得看到某些服务器未配置为允许file_get_contents (或带有URL的readfile),所以我会先检查一下(可能 allow_url_fopen 的php.ini ???)。
如果不是这种情况(或主机提供商的限制)并且您找不到问题的原因,那么CURL 应工作(在大多数服务器上!)。
$url = 'http://example.com/path-to/fb_logo.svg';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, $_SERVER['REQUEST_URI']);
$svg = curl_exec($ch);
curl_close($ch);
echo $svg;
修改强>
include
if you remove the xml header tag from your SVG file。<img src="<?php echo $mySvgFileUrl"; ?>">
?答案 4 :(得分:0)
可能是什么问题。
该文件不在您认为的位置。
文件权限不允许代码读取文件。
尝试调试:
<?php
$file = "site.com/wp-content/themes/oaklandcentral/img/fb_logo.svg";
if ( file_exists($file) ) {
echo file_get_contents($file);
} else {
echo "File $file does not exist";
}
?>
尝试使用curl获取页面。看一下标题和原始的https响应。
curl -v URL_TO_PAGE