抓取网页数据php(抓取网页数据phpphonediv的数据包在上下游的datarange中传输,此时php的方法)
优采云 发布时间: 2022-02-12 20:04抓取网页数据php(抓取网页数据phpphonediv的数据包在上下游的datarange中传输,此时php的方法)
抓取网页数据phpphonediv的数据包在上下游的datarange中传输,此时php的方法是构造字符串传递给datarange的构造函数,而对应的header中的字符串编码必须是base64编码的。直接printdatarange.data().unicode()得到的格式为3,不正确的结果是:"\u32b6\u32b8\u32bd\u32bd\u32bc\u324\u32fb\u32db\u32d"怎么办呢?我们首先可以先打开php.ini文件,看下datarange的配置,设置为3后,再使用printdatarange.data().unicode()观察header中的格式是否正确。
代码已经运行,可是得到的内容是"aaa",但这并不是正确的结果。我们看下objectdata文件中传递的字符串,接收方也是unicode字符串,那么怎么直接把unicode中的格式转换成字符串数据呢?我们还是先打开php.ini文件,配置php的配置文件,aliasapp=app.install(self.datarange)调用php的substring函数,把字符串的unicode格式转化为utf-8格式,此时调用php的datarange函数,得到结果为"aaa"我们再来看下php.ini中传递的header方法,此方法传递数据的格式是"aaa",接收方的字符串编码是utf-8,php.ini配置文件中没有给定编码,通过unicode转换来得到正确的数据格式,但要注意,接收方的编码一定要和php内置的utf-8编码格式相匹配,也就是说utf-8编码的编码规则是"/utf-8"。
/utf-8:^\\\u32b6\\\u32b8\\\u32bd\\\u32bd\u32bc\\\u32fb\u32db\u32d\..其实,我们都明白,php是不支持指定编码的,这里如果没有指定编码格式,得到的就是一串乱码。转换格式php的header方法返回了encode()字符,该字符是一个unicode字符串编码,它不能通过decode()或encode()字符编码进行转换。
那么怎么解决这个问题呢?php有个类infopreview,我们可以找到php.ini里面的format方法,使用该方法,我们可以得到接收方的编码格式为\u32b6\u32b8\u32bd\u32bd\u32bc\u324\u32d\..说明接收方编码格式为“/utf-8”我们再来调用php.ini的header方法,php.ini是一个配置文件,可以在任何时候查看,查看它传递的编码格式的内容,再调用php.ini的convert方法把接收方的编码格式编码到php。