导航:首页 > 源码编译 > iconv源码

iconv源码

发布时间:2022-05-13 15:33:04

1. 以下编码转换linux运行出错iconv: Invalid or incomplete multibyte or wide character,怎么改才能转换

outlen的初始化长度应该和output的空间大小一致

2. 一键上传淘宝php源码

PHP实现采集抓取淘宝网单个商品信息,本文是一种实现思路,使用file_get_contents函数实现,并给出了采集正则,需要的朋友可以参考下
调用淘宝的数据可以使用淘宝提供的api,如果只需调用淘宝商品图片名称等公开信息在自己网站上,使用php中的 file_get_contents 函数实现即可。
思路:
file_get_contents(url) 该函数根据 url 如 http://www..com 将该网页内容(源码)以字符串形式输出(一个整字符串),然后配合preg_match,preg_replace等这些正则表达式操作就可以实现获取该url特定div,img等信息了。当然前题是淘宝在单个商品页面的结构是固定的,如500图的img中id就是J_ImgBooth!
具体实现方法:(获取500图,名称,价格,属性及商品描述)
复制代码 代码如下:
$text=file_get_contents("http://item.taobao.com/item.htm?id=2380347279"); //将url地址上页面内容保存进$text
A.获取500图:
复制代码 代码如下:
preg_match('/<img[^>]*id="J_ImgBooth"[^r]*rc=\"([^"]*)\"[^>]*>/', $text, $img);
//运用正则抓取img标签中id为J_ImgBooth的img,$img[0]为该500图img标签,$img[1]为500图的图片地址;
B. 获取名称:
复制代码 代码如下:
preg_match('/<title>([^<>]*)<\/title>/', $text, $title);
//因为正文中的商品名称标签没有特殊class或id正则不好抓取,就抓<title>标签中的内容了,一般来说title中内容就是商品名称了(实际有些出入),$title[0]整个title标签 $title[1]标签中内容;
$title=iconv('GBK','UTF-8',$title);
//如果你的网站是utf8编码,那么需要进行一下转码(淘宝是gbk编码)
C.获取价格:
复制代码 代码如下:
preg_match('/<([a-z]+)[^i]*id=\"J_StrPrice\"[^>]*>([^<]*)<\/\\1>/is', $text, $price);
//同理获取id为J_StrPrice的标签内容$price[2], $price[0]是整个标签, $price[1]为strong标签名;
$price=floatval($price);//放入数据库估计还有转一下变量类型
D.获取属性:
这之前获取的内容都是在单标签中相对只需一个正则就可搞定,然而如果要获取如
复制代码 代码如下:

<div id=”xxx”>

<ul>

</ul>
<div>…
<div>…
</div>
</div>
</div>

这样特定div中有未知n个<>标签,获取该特定div将会非常的困难,搜了下网上,最接近的也只是”/<([a-z]+)[^>]*>([^<>]|(?R))*<\/\\1>/”这样使用递归抓取标签对,但是他不能抓特定标签,所以想要轻松抓取class=”attributes”的div我是没法办到了。但是淘宝网页有其特殊性,就是它的各个标签结构基本是固定的…<div>…</div>标签后面不是</div><div id=”description”>就是</div><div>,所以我们可以采用变通法达到获取属性标签内容的目的。
复制代码 代码如下:
preg_match('/<(div)[^c]*class=\"attributes\"[^>]*>.*<\/\\1>/is', $text, $text0);
//这个正则会抓取<div开始到整个页面最后一个</div>标签,当然我们属性标签就在这个的前面部分。
$text1=preg_replace("/<\/div>[^<]*<(div)[^c]*id=\"description\"[^>]*>.*<\/\\1>/is","",$text0);
//匹配到</div ><div id=”description”>至最后</div>然后用””代替(就是把匹配的删除了),所以如果attributes的div后面紧跟的是description那么我们已经达到目的了。
$attributes=preg_replace("/<\/div>[^<]*<(div)[^c]*class=\"box J_TBox\"[^>]*>.*<\/\\1>/is","",$text1);
//如果attributes后面紧跟box J_Tbox标签,那么我们还需要使用以上这步来剔除box J_Tbox标签,当然如果attributes的div后面紧跟的是description,这一步将不会匹配到任何即什么都不会做。
E.获取描述:
通过上面方法你肯定觉得淘宝页面上任何标签都可以很简单获取了吧(我之前也是这么想的),但是使用这个方法获取描述时得到的内容将会是“描述加载中”,是的,这个描述内容不是在源码中的,它是打开页面加载进一大堆js后,不知道从淘宝的哪个角落中加载进来的。
好吧,那么我们也可以模仿它放一些js进去。不知道哪些对加载描述有用?没事,全加载进来肯定没错。不知道需要放那些特定div上去有作用?抓一个源码,删掉一些div一步步试试看,你会发现“<div id=”detail”> </div>
复制代码 代码如下:
<div id="description">
<div id="J_DivItemDesc">描述加载中</div>
</div>
这几个div是加载描述所必须的,那么下面就是写代码了:
复制代码 代码如下:
preg_match_all('/<script[^>]*>[^<]*<\/script>/is', $text, $content);//页面js脚本
$content=$content[0];
$description='<div id="detail"> </div>
<div id="description">
<div id="J_DivItemDesc">描述加载中</div>
</div>';
foreach ($content as &$v){$description.=iconv('GBK','UTF-8',$v);};
//将这个$description放进页面,描述就会自动的加载进来了,当然多个商品描述在同一个页面也会只有一个描述会被加载的。

3. php获取网页源码内容有哪些办法

可以参考以下几种方法:

方法一: file_get_contents获取

<span style="white-space:pre"></span>$url="http://www..com/";

<span style="white-space:pre"></span>$fh= file_get_contents

('http://www.hxfzzx.com/news/fzfj/');<span style="white-space:pre"></span>echo $fh;

拓展资料

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。

用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

4. 易语言 下载文件

我们以网络云客户端的直链为例,提取直链中BaiYunGuanjia_5.3.6.exe的BaiYunGuanjia_5.3.6的文本文字。

运行易语言,进入“新建工程”文件对话框,选择“Windows窗口程序”然后点击“确定”按钮,进入“Windows窗口程序”设计界面。

在启动窗口我们添加一个编辑框和按钮,便于一会便于展示提取出来的文本。

点击按钮进入窗口程序集界面,我们先添加精易模块V3.3,然后按Ctrl+L键创建一个变量,变量名:文件名,类型:文本型。

开始写源码,如下图,使用的是精易模块里的文本_取出中间文本,我们要取出直链里的文本。

然后我们再写一个命令,把提取出来的文件名放入编辑框中,来确认下提取的是不是正确。

完成后我们直接运行,点击按钮,看,我们需要的文件名直接出现在了编辑框里。

文件名提取是为了在不改名字的情况下,把下载的文件写入电脑,然后自动执行。有很多的扩展思路。

5. 易语言 http读文件() 怎么读出来的网页源码是乱码呀

原因是:操作错误导致的,具体解决方法步骤如下:

1.首先打开电脑,在电脑中运行“易语言”主程序,弹出“新建项目对话框”,选择“Windows窗口程序”,点击“确定”,进入“Windows窗口编程界面”。

6. 为什么PHP源码上传上去有问号本地源码是正常的!是不是编码不对

我看了一下,你的编码指定的是Utf-8,不知道你有问号的是数据库读出来的还是静态的,使用utf-8编码的话,你用editplus打开看一下你的php文件和模板文件都要是Utf-8格式的,你可以打开另存为,下面有个选择编码的选项。

如果问好部分是动态的,看你数据库里面编码是否是utf-8,如果是其他编码要用iconv把编码转换一下

php中header也要声明是Utf-8

7. liunx转码和去空格怎么一起用

用法: iconv [选项...] [FILE...]
转换给出文件的编码从一种到另外一种.

输入/输出格式规范
-f, --from-code=NAME 原始文本编码
-t, --to-code=NAME 输出编码

信息
-l, --list 列出所有已知编码字符集

输出控制:
-c 忽略输出中的无效字符
-o, --output=FILE 输出文件
-s, --silent suppress warnings
--verbose 打印进程信息

-?, --help 显示此帮助列表
--usage 提供简短的使用信息
-V, --version 显示程序版本号

一般 iconv -c -fgbk -tutf8 XXX.txt -o XXX-u8.txt就可以了,-c选项很有用,遇到错误还可以继续而不是退出。

问题是现在文件有成千上万,试图用for循环完成这个任务:
for i in `ls *.txt` ; do iconv -c -fgbk -tutf8 $i -o u$i ;done
但事与愿违,检查了下发现是因为有写文件名带有空格,导致变量i赋值不对,比如对文件“十二楼 清 李渔.txt”,i被赋值三次,得到如下出错信息
iconv: 无法打开输入文件'十二楼': 没有该文件或目录
iconv: 无法打开输入文件'清': 没有该文件或目录
iconv: 无法打开输入文件'李渔.txt': 没有该文件或目录

研究了下,想到一个办法可以勉强完成任务,源码如下:

#! /bin/bash

# convert txt files in current dir fro gbk to utf8
# output saved to the dir `pwd`_u

PWD=`pwd`
UDIR="$PWD"_u
mkdir $UDIR
for i in `ls -l *.txt|cut -c51-120 |tr [:blank:] _` ; do
iconv -c -fgbk -tutf8 "${i//_/ }" -o "$UDIR/$i"
done

上面用到cut和tr先将空格转换,以便变量i正确赋值,调用时再通过字符替换(${i//_/ })转回来。效果是将本目录下的所有txt文件从GBK转码为UTF8的同名文件(如文件名有空格则被下划线替换),如当前目录为mydir/test/,则转换后的文件放在mydir/test_u/下面。

还没想好如何处理当前目录下的子目录,估计要用find命令,关键是先建立一个与当前目录结构相同的平行目录。如果你有好办法,请留言。

_____________________
updated in 05/13/2010
1. google了下,发现处理带空格文件名不用这么麻烦,用 for i in *.txt 就可以了,上面用for i in `ls *.txt`是画蛇添足了。(cf: http://blog.csdn.net/sabalol/archive/2009/11/12/4804607.aspx)

2. 复制目录结构用find和-exec就可实现,如在当前test目录下执行:
find . -type d -exec mkdir -p ../test_u/{} \;

8. php遍历代码修改: 我的源码现在是这样的: <php include_once 'comm/config.php'; include 'c...

给你一个思路,你参考一下吧;
把所有的数据拼成一个大数组,
然后拼sql,再进行一次插入,
这样效率会高的多,
$preg = "/item_id=([0-9]*).*.target=\"_blank\">/";
preg_match_all($preg,$con,$iid); //参数(正则,获取的内容,返回的数据)
$preg = "/data-ks-lazyload=\"([^<]*)\"\/><\/a>/";
preg_match_all( $preg, $con, $img);//获取图片地址
$sql="insert into ju_itemss(iid,title) values";
for($i=0;$i<count($iid);$i++)
{
$sql=$sql."(".$iid[$i].",'".$title[$i]."'),";

}
$sql=substr($sql,0,-1);//去掉最后多的那个逗号
$result=mysql_query($sql);

这样应该是最快的了

9. 如何从android源码中编译webkit

android本来自带了webkit浏览器,但是要对其进行custom就需要android源代码才行, 但是在没有源码的情况下,那么就需要用到ndk了,比如,我是在xoom上做custom webkit的。
1、虽然ndk提供的库很少,而且没有skia,但是好在有bitmap,这样显示慢了点,没有硬加速,但不是不可能。
2、webkit需要的第三方库,freetype,png,jpeg,sqlite3等虽然android源码中有,但是ndk没有开放,因此所有的第三方库,freetype,png,jpeg,sqlite3,cairo,curl,fontconfig,pixman,iconv等都需要用ndk cross-compile成静态库,然后链接到最终的动态库中。
3、选择iconv是icu太大,而且没有多语言的需求,选择cairo+pixman是skia的移植性不好,而且cairo支持很多种backend。
4、编译第三方库需要用到autoconfig,ndk中有如何生成交叉编译链的文档,然后在configure时使用这个工具链就可以了,但是android用到的是bionic库,因此会有很少的地方需要修改,有些库也不能生成test程序,但是静态库是没问题的。
5、利用ndk生成的交叉工具链,在加上webkit自带的cmake编译系统,生成webkit的动态库是没有问题的,当然是webkit的内核,而且有些平台相关的部分代码需要修改。
6、但是只要是以linux平台为基础,修改还是很容易的,我移植的webkit是先移植到linux平台上,然后移植到android平台上的,所以修改相对少了很多,但是修改大多都在WebCore/platform下,在选择了的平台相关库后,做相应的配置和修改。
7、其次是在WebKit目录,这个主要是支持和使用WebCore,因此在需求不是整个浏览器,而只是正常地显示网页时,还是可以写的比较简单的。

10. windows下如何用iconv.h

头文件"iconv.h"。iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件。
它的作用是在多种国际编码格式之间进行文本内码的转换。
linux下的函数原型
size_t iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
iconv是一个计算机程序以及一套应用程序编程接口的名称。
作为应用程序的iconv采用命令行界面,允许将某种特定编码的文件转换为另一种编码。
iconv基于GPL公开源代码,是GNU项目的一部分。在各种UNIX操作系统下均可使用,而在Windows系统,需要特殊的环境如cygwin或者GnuWin32等软件平台下方可使用。现在在SourceForge上也有运行于Windows系统的,需要同时安装gettext程序。
目前版本为2.3.26,支持的内码包括:Unicode相关编码,如UTF-8、UTF-16等等,各国采用的ANSI编码,其中包括GB2312、BIG5等中文编码方式。
输入/输出格式规范:
-f,--from-code=NAME始文本编码-t,--to-code=NAME输出编码
信息:
-l,--list列举所有已知的字符集
-c从输出中忽略无效的字符-o,--output=FILE输出文件-s,--silentsuppresswarnings--verbose打印进度信息-?,--help给出该系统求助列表--usage给出简要的用法信息-V,--version打印程序版本号示例:
列出支持的字符编码
[root@new55~]#iconv-..(aliases).所有已知字符集

阅读全文

与iconv源码相关的资料

热点内容
ubuntu压缩zip 浏览:2
vigenere算法的方法是什么 浏览:666
pdf保护破解 浏览:341
仿微信聊天系统源码广州公司 浏览:106
怎么查看我的世界服务器日志 浏览:430
怎么从程序员走到成功 浏览:824
把软件放入文件夹中如何移出 浏览:209
红包源码企业即时聊天软件 浏览:581
xp安装python 浏览:10
西门子参数编程读取半径值 浏览:403
洗首饰解压小视频 浏览:966
01背包问题的算法解决 浏览:373
sd卡放哪个文件夹 浏览:301
解释器模式java 浏览:104
android垂直自动滚动条 浏览:153
计算器java小程序 浏览:27
java的简称 浏览:68
云服务器公网ip地址 浏览:581
php对数据库操作 浏览:237
java爬图片 浏览:868