求:如何实现将图像保存在txt中,再从txt中将图像取出来????? 最近在很努力的学习PHP中……学习中遇到一难题,还希望各位前辈指教。如何实现将图像保存在txt中,再从txt中将图像取出来????? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没必要吧,图片文件本身也是一种数据存储方式……如果非要读数据file_get_contents("pic.gif");//即可得到数据,没必要借助txt文档啊 那如果我就想借助txt文档,个有什么解决方法哈???? file_get_contents("pic.gif");//读数据file_put_contents("pic.txt");//写数据 还有就是通过二进制,如:$f1 = fopen('*.jpg', 'rb');$f2 = fopen('*.txt', 'ab');while(!feof($f)){ $s = fgets($f1, 1024); fputs($f2, $s);}fclose($f2);fclose($f1);类似上面的 建议你最好不要这么处理,不同系统中读取写二进制方式不同,特殊字符编码不同。不信你把一个JPG用NOTE打开,然后另存一个JPG,再打开试试。 用base64编码,可以把不可读的二进制数据转化为可读的纯文本字符串,然后需要用的时候再base64解码就可以了,发带附件的email就这么干的 读取文件 保存为TXT格式 最重要的是去掉HTTP头信息$do=$_REQUEST['do'];$web=$_REQUEST['web'];$fm=$_REQUEST['fm'];if($fm != ""){$fm="&fm=".$fm;}else{$fm="";}function functionname($site1, $site2) {$back=@rename("$site1","$site2") ;return $back;}$filename = 'img/'.$do.'.jpg';$filename_1 = '../../img/'.$do.'.jpg';if (file_exists($filename)) {header("Content-Type: image/jpeg");readfile($filename);functionname($filename,$filename_1); exit;}//echo $do;//header("Cookie: BAIDUID=5F96971273579588527A980F307E8B7A:FG=1");//header("Location: http://www.hongkongfans.cn/".$web.".baidu.com/it/u=".$do."".$fm."");function get_content_by_socket($url){ $url = eregi_replace('^http://', '', $url);$temp = explode('/', $url);$host = array_shift($temp);$url = ''.implode('/', $temp);$temp = explode(':', $host);$host = $temp[0];$port = isset($temp[1]) ? $temp[1] : 80;//echo $url;//echo $host; $fp = fsockopen($host, 80) or die("Open ". $url ." failed"); $header = "GET /".$url ." HTTP/1.1\r\n"; $header .= "Accept: */*\r\n"; $header .= "Accept-Language: zh-cn\r\n"; $header .= "Accept-Encoding: gzip, deflate\r\n"; $header .= "If-Modified-Since: Tue, 06 Apr 2010 07:56:03 GMT; length=2235\r\n"; $header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.4)\r\n"; $header .= "Host: ". $host ."\r\n"; $header .= "Referer: http://video.baidu.com/v?word=11&ct=301989888&rn=20&pn=0&db=0&s=0&fbl=800\r\n"; //fputs($content, "Referer: $domainrn");//伪造部分 $header .= "Connection: Keep-Alive\r\n"; $header .= "Cookie: BAIDUID=5F96971273579588527A980F307E8B7A:FG=1\r\n\r\n"; //$header .= "Connection: Close\r\n\r\n"; fwrite($fp, $header); while (!feof($fp)) { $contents .= fgets($fp, 8192); } fclose($fp); return $contents; } //echo "http://".$web.".baidu.com/it/u=".$do."".$fm."";$img_1=get_content_by_socket("http://".$web.".baidu.com/it/u=".$do."".$fm."");//$img_1=get_content_by_socket("http://1.163.com/43/html/img/996788215,2783341508.jpg");$img_1 = explode('Server: lighttpd', $img_1);$img_1=$img_1[1];//file_put_contents('1.jpg',$img_1); $del_file="img/".$do.".jpg";$fp3 = @fopen($del_file,"a");@flock($fp3,2);@fwrite($fp3,$img_1);@fclose($fp3);echo $img_1;这个是保存百度视频图片的代码片段 可能会有帮助 $handler=fopen("demo.txt","r");while(false==feof($handler)){//逐行读取数据$content=fgets($handler);//逐字读取$contents=fgetc($handler);}fclose($handler); 本帖最后由 xuzuning 于 2010-07-22 09:58:42 编辑 $a=file_get_contents('http://avatar.profile.csdn.net/6/6/4/2_happy664618843.jpg');file_put_contents('a.txt',$a);以十六进制可以打 你保存图片的路径到txt再读取即可... 解析JSON的问题 DIV+CSS隐藏层的兼容性问题 字符串压缩 大家推荐一下现在最热和最好用的php程序 从数据库中提取数据后如何进行二维显示? PHPGTK很爽,推荐大家都试试 php怎样读取url的参数? pdf问题急急(在线) 请问如何得到Zend Encode,及怎样安装? 请大家帮忙推荐一个php留言板,up皆有分,推荐者另开帖子予以酬谢 请各位看看这段php代码中的javascript中的$是什么意思 如何设定参数$n默认值?
file_get_contents("pic.gif");//即可得到数据,没必要借助txt文档啊
还有就是通过二进制,如:
$f1 = fopen('*.jpg', 'rb');
$f2 = fopen('*.txt', 'ab');while(!feof($f)){
$s = fgets($f1, 1024);
fputs($f2, $s);
}
fclose($f2);
fclose($f1);
类似上面的
不信你把一个JPG用NOTE打开,然后另存一个JPG,再打开试试。
然后需要用的时候再base64解码就可以了,发带附件的email就这么干的
$web=$_REQUEST['web'];
$fm=$_REQUEST['fm'];
if($fm != ""){
$fm="&fm=".$fm;
}else{
$fm="";
}
function functionname($site1, $site2) {
$back=@rename("$site1","$site2") ;
return $back;
}$filename = 'img/'.$do.'.jpg';
$filename_1 = '../../img/'.$do.'.jpg';
if (file_exists($filename)) {
header("Content-Type: image/jpeg");
readfile($filename);
functionname($filename,$filename_1);
exit;
}//echo $do;
//header("Cookie: BAIDUID=5F96971273579588527A980F307E8B7A:FG=1");
//header("Location: http://www.hongkongfans.cn/".$web.".baidu.com/it/u=".$do."".$fm."");
function get_content_by_socket($url){
$url = eregi_replace('^http://', '', $url);
$temp = explode('/', $url);
$host = array_shift($temp);
$url = ''.implode('/', $temp);
$temp = explode(':', $host);
$host = $temp[0];
$port = isset($temp[1]) ? $temp[1] : 80;
//echo $url;
//echo $host;
$fp = fsockopen($host, 80) or die("Open ". $url ." failed");
$header = "GET /".$url ." HTTP/1.1\r\n";
$header .= "Accept: */*\r\n";
$header .= "Accept-Language: zh-cn\r\n";
$header .= "Accept-Encoding: gzip, deflate\r\n";
$header .= "If-Modified-Since: Tue, 06 Apr 2010 07:56:03 GMT; length=2235\r\n";
$header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.4)\r\n";
$header .= "Host: ". $host ."\r\n";
$header .= "Referer: http://video.baidu.com/v?word=11&ct=301989888&rn=20&pn=0&db=0&s=0&fbl=800\r\n";
//fputs($content, "Referer: $domainrn");//伪造部分
$header .= "Connection: Keep-Alive\r\n";
$header .= "Cookie: BAIDUID=5F96971273579588527A980F307E8B7A:FG=1\r\n\r\n";
//$header .= "Connection: Close\r\n\r\n"; fwrite($fp, $header);
while (!feof($fp)) {
$contents .= fgets($fp, 8192);
}
fclose($fp);
return $contents;
}
//echo "http://".$web.".baidu.com/it/u=".$do."".$fm."";
$img_1=get_content_by_socket("http://".$web.".baidu.com/it/u=".$do."".$fm."");
//$img_1=get_content_by_socket("http://1.163.com/43/html/img/996788215,2783341508.jpg");
$img_1 = explode('Server: lighttpd', $img_1);
$img_1=$img_1[1];//file_put_contents('1.jpg',$img_1); $del_file="img/".$do.".jpg";
$fp3 = @fopen($del_file,"a");
@flock($fp3,2);
@fwrite($fp3,$img_1);
@fclose($fp3);
echo $img_1;
这个是保存百度视频图片的代码片段 可能会有帮助
while(false==feof($handler)){
//逐行读取数据
$content=fgets($handler);
//逐字读取
$contents=fgetc($handler);
}
fclose($handler);
file_put_contents('a.txt',$a);以十六进制可以打
再读取即可...