gpt4 book ai didi

php - file_get_contents 编码 - 适用于 Chrome 和 Safari,不适用于 Firefox、Opera、IE

转载 作者:行者123 更新时间:2023-12-01 08:07:38 24 4
gpt4 key购买 nike

几天以来,我尝试实现一些代码以将一些示例内容从另一个站点加载到我的站点。我的编码有问题 - 波兰语。源站点为 ISO-8859-2,目标站点为 UTF-8。 它可以在 Chrome 和 Safari 中运行,但不能在 FF、Opera 和 IE 中运行。我做错了什么?

index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test_site</title>



<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script type="text/javascript">
$("document").ready(function() {

$("#content").load("curl.php #news_ajax");

});
</script>


</head>
<body>

<h1>Test site</h1>
<div id="content"><img src="ajax-loader.gif" alt="Loading..." /></div>

</body>
</html>

curl.php

<?php
$url = 'http://www.dominikanie.pl/';
$htm = file_get_contents($url);
$domain = "http://www.dominikanie.pl/";
$htm = preg_replace("/(href|src)\=\"([^(http)])(\/)?/", "$1=\"$domain$2", $htm);
$htm = mb_convert_encoding($htm, "ISO-8859-2",
mb_detect_encoding($htm, "UTF-8, ISO-8859-2", true));
echo $htm;

?>

我尝试了 iconv 但没有结果。测试site

最佳答案

  • 网络浏览器与 file_get_contents 无关。

  • 使用 CURL 而不是 file_get_content。文档 here

  • 此外,dominikanie.pl(源)采用 UTF-8 格式,而不是 ISO 格式。这就是您的编码不起作用的原因。

  • 通过 AJAX 查询数据时,您可以尝试将数据作为 XML 或 jSon 对象发送。

  • 使用较新的 jQuery

  • iconv vs mb - 我更喜欢 iconv。另外,我的经验是编码检测并不总是按其应有的方式工作。特别是当没有太多数据可供测试或存在一些奇怪的实体(如 MsWord 特殊字符(如波兰语“”)时

  • str_repleace 有时会出现波兰字符问题。这种情况很少见,但我过去遇到过一些问题。也不要使用 htmlentities()。它真的很喜欢破坏 PL 字符:]

关于php - file_get_contents 编码 - 适用于 Chrome 和 Safari,不适用于 Firefox、Opera、IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15519356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com