php抓取网页连接函数(PHP编码声明与用header或meta实现PHP页面编码的区别)

优采云 发布时间: 2022-04-13 08:14

  php抓取网页连接函数(PHP编码声明与用header或meta实现PHP页面编码的区别)

  编码格式有两种,一种是php文件本身的编码格式,editplus等编辑器允许你在保存文件时指定文件编码格式;另一种是php输出的文本的编码格式,这个信息只在浏览器上生效,方法是。请注意,必须在任何输出之前调用标头方法。

  通常,PHP项目开发工具,如ZendStudio、PHPStorm等,都会设置项目的编码方式,以保证项目中的所有文件使用相同的编码格式。对于 WEB 输出,通常的方式是在 html 文件中指定所需的编码,浏览器根据此设置解释内容。

  PHP页面编码声明与PHP页面编码使用header或meta的区别

  php header 定义一个php页面为utf编码或GBK编码

  php页面是utf编码的header("Content-type: text/html; charset=utf-8");

  php 页面将标头编码为 gbk("Content-type: text/html; charset=gb2312");

  php页面是big5编码头("Content-type: text/html; charset=big5");

  通常上面的代码放在php页面的首页

  PHP 页面编码与 header 或 meta 一、页面编码的区别

  1. 使用标签设置页面编码

  这个标签的作用是声明客户端的浏览器使用什么字符集编码来显示页面,xxx可以是GB2312、GBK、UTF-8(不同于MySQL,MySQL是UTF8)等等。因此,大多数页面这个方法可以用来告诉浏览器在显示这个页面的时候使用什么编码,以免造成编码错误和乱码。也就是说,浏览器总是使用一种编码,我稍后会谈到。

  请注意,它属于html信息,它只是一个声明,它的作用是表明服务器已将HTML信息传递给浏览器。

  2. header("content-type:text/html; charset=xxx");

  这个函数header()的作用是将括号中的信息发送到http头。

  如果括号中的内容如文中所述,那么功能与标签基本相同。你可以比较第一个,发现字符相似。但不同的是,如果有这个功能,浏览器会一直使用你需要的xxx编码,永远不会不听话,所以这个功能非常好用。为什么会这样?那我们就不得不说一下HTTPS头和HTML信息的区别了:

  https 标头是服务器在使用 HTTP 协议向浏览器发送 HTML 信息之前发送的字符串。

  因为meta标签属于html信息,所以header()发送的内容首先到达浏览器。通俗点就是header()的优先级比meta高(不知道能不能这么说)。添加一个php页面同时有header("content-type:text/html; charset=xxx"),浏览器只识别之前的http header而不识别meta。当然这个功能只能在一个php页面中使用。

  同样的问题仍然存在,为什么前者绝对有效而后者有时无效?这就是为什么我们接下来要讨论 Apache。

  3. 添加默认字符集

  在Apache根目录的conf文件夹中,有整个Apache配置文件httpd.conf。

  使用文本编辑器打开 httpd.conf。第 708 行(不同版本可能不同)有 AddDefaultCharset xxx,其中 xxx 是编码名称。这行代码的含义:将整个服务器中的网页文件的https头中的字符集设置为你默认的xxx字符集。拥有这一行相当于在每个文件中添加一行 header("content-type:text/html; charset=xxx")。现在我明白为什么meta设置为utf-8,但浏览器总是使用gb2312。

  如果网页中有header("content-type:text/html; charset=xxx"),把默认字符集改成你设置的字符集,所以这个函数总是有用的。如果你在AddDefaultCharset xxx前面加了一个“#”,注释掉这句话,页面中没有header(“content-type...”),那么就该meta标签起作用了。

  总结:

  排序

  标头(“内容类型:文本/html;字符集=xxx”)

  AddDefaultCharset xxx

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线