php base64解码函数无法解码base64图像字符串

标签 php javascript image xhtml base64

由于 ie7ie8 默认情况下无法解码 base64 图像字符串,因此我一直在寻找替代方法。在谷歌搜索这个问题后,我在 http://dean.edwards.name/weblog/2005/06/base64-ie/ 找到了一个很好的教程。 .

据我所知,解码过程由两个简短的脚本组成,如下所示:

一个。 php base64解码函数

在作者指导下命名为base64.php

<?php
$data = split(";", $_SERVER["QUERY_STRING"]);
$type = $data[0];
$data = split(",", $data[1]);
header("Content-type: ".$type);
echo base64_decode($data[1]);
?>

B. javascript

插入到页面的head标签中,嵌​​入base64图像字符串,最后将图像字符串传递给base64.php进行处理和解码。

<script type="text/javascript">
// a regular expression to test for Base64 data
var BASE64_DATA = /^data:.*;base64/i;
// path to the PHP module that will decode the encoded data
var base64Path = "base64.php";
function fixBase64(img) {
  // check the image source
  if (BASE64_DATA.png(img.src)) {
    // pass the data to the PHP routine
    img.src = base64Path + "?" + img.src.slice(5);
  }
};
// fix images on page load
onload = function() {
  for (var i = 0; i < document.images.length; i++) {
    fixBase64(document.images[i]);
  }
};
</script>

不幸的是,在我的例子中,php base64 解码函数无法将图像字符串解码为 ie7 & ie8

我的文档类型是 DTD XHTML 1.0 Transitional & charset=utf-8

知道这里出了什么问题吗?

演示链接:

base64-string-without-php-decoder: http://silentpond.eu5.org/base64-string-without-php-decoder.php

base64-string-with-php-解码器:http://silentpond.eu5.org/base64-string-with-php-decoder.php

谢谢,

最佳答案

在 IE 中,至少是版本 8 和更早版本。 url 的最大长度约为 2047 字节。可以在此处找到更多信息:http://support.microsoft.com/kb/208427

关于php base64解码函数无法解码base64图像字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15667258/

相关文章:

javascript - 是否可以仅通过 Javascript 获取外部图像并通过 REST API 发送它?

HTML + CSS - 扩展图像以容纳文本

java - 我应该如何在 Android 中给图像圆角?

php - autoprefixer PHP 无法正常工作,如示例所示

php - 如何在php中将TCPDF png条码保存到指定文件夹?

php - 如何将具有一些相同值的php数组拆分并插入到两个具有唯一值的mysql关系表中

javascript - 带回调的 jQuery 简单函数

javascript - 滚动到 div 的顶部无法正常工作

php - 方法可以在类之外定义吗?

javascript - D3 JS 绘制条形图