代码如下 | 复制代码 |
<?php curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $param['app_id'] = "app_id=x"; $data = "app_id=x&access_token={$access_token['access_token']}&token={$code}&phone=15091421612&url=http://wx.podapi.com/test.php&exp_time=2×tamp={$timestamp}&sign=".$sign; |
html:
代码如下 | 复制代码 |
<form action=”insertPic.php” method=”post” enctype=”multipart/form-data” name=”mainForm” id=”mainForm”> <input type=”file” name=”myFile” /> <input type=”submit” name=”Submit” value=”Submit”/> </form> |
将图片保存到数据库:
代码如下 | 复制代码 |
<?php //由于上传过来的图片被保存在一个临时文件中,所以 //我们仅需要读取该文件就可以获取传过来的图片 $fp = fopen($_FILES["myFile"]["tmp_name"],”rb”); $buf = addslashes(fread($fp,$_FILES["myFile"]["size"])); //创建一个PDO对象 $dbh = new PDO(“mysql:host=localhost;port= 3306;dbname=test”, “root”, “123456″); //执行插入操作并将结果保存在一个变量中 $result = $dbh->query(“INSERT INTO img (images) VALUES (‘$buf’)”); //获取影响的行数 if ($result->rowCount() >0) { echo(“数据已插入。”); } else { echo(“不能执行插入操作。”); } //显式的关闭PDO连接 $dbh = NULL; ?> 显示图片:(show.php) <?php $conn=@mysql_connect(“localhost”,”root”,”123456″) or die(“服务器连接错误!”); //链接数据库 @mysql_select_db(“test”,$conn) or die(“未发现数据库!”); $query=”select * from img where Id=”.$_GET['id']; $result=mysql_query($query); www.111cn.net $num=mysql_num_rows($result); $data = mysql_result($result,0,”images”); header(“Content-type: image/” . $num['imgType']); echo $data; ?> |
或者
代码如下 | 复制代码 |
<img" width=100% src=”show.php?id=5″ /> |
1、fopen函数。
fopen()函数用于打开文件或者URL。语法如下:
int fopen(string filename, string mode);
字符串参数mode可以是下列的情形:
“r”开文件方式为只读,文件指针指到开始处。
“r+”开文件方式为可读写,文件指针指到开始处。
“w”开文件方式为写入,文件指针指到开始处,并将原文件的长度设为0。若文件不存在,则建立新文件。
“w+”开文件方式为可读写,文件指针指到开始处,并将原文件的长度设为0。若文件不存在,则建立新文件。
“a”开文件方式为写入,文件指针指到文件最后。若文件不存在,则建立新文件。
“a+”开文件方式为可读写,文件指针指到文件最后。若文件不存在,则建立新文件。
“b”若操作系统的文字及二进位文件不同,则可以用此参数,UNIX系统不需要使用本参数。
2、Addslashes函数。
Addslashes函数用于将字符串加入斜线。语法如下:【注:我测试的时候是把这个函数去掉后成功了,道理你懂的。自己试下就明白了】
string addslashes(string str);
该函数使需要让数据库处理的字符串,引号的部份加上斜线,以供数据库查询(query)能顺利运作。这些会被改的字符包括单引号(’)、双引号(”)、反斜线backslash()以及空字符NULL(the null byte)。
3、fread函数。
fread函数用于读到指定长度的位组或到文件尾EOF。语法如下:
string fread(int fp, int length);可安全用于二进制文件
fread() 从文件指针 file 读取最多 length 个字节。该函数在读取完最多 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时,或(在打开用户空间流之后)已读取了 8192 个字节时就会停止读取文件,视乎先碰到哪种情况。
二进制转换成图片
注:$newFilePath 对生成的图片名和路径做处理,这里自己去实现。
代码如下 | 复制代码 |
$newFilePath='1.jpg'; $data = $GLOBALS[HTTP_RAW_POST_DATA];//得到post过来的二进制原始数据 if(empty($data)){ www.111cn.net $data=file_get_contents("php://input"); } $newFile = fopen($newFilePath,"w");//打开文件准备写入 fwrite($newFile,$data);//写入二进制流到文件 fclose($newFile);//关闭文件 |
可以把读取到的二进制流存到数据库,也可以直接写入成一个图片。
获取二进制头文件,从而得知属于什么类型文件
代码如下 | 复制代码 |
$bin = substr($content,0,2); $strInfo = @unpack("C2chars", $bin); $typeCode = intval($strInfo['chars1'].$strInfo['chars2']); $fileType = ''; switch ($typeCode) { case 7790: $fileType = 'exe'; break; case 7784: $fileType = 'midi'; break; case 8297: $fileType = 'rar'; break; case 255216: $fileType = 'jpg'; break; case 7173: $fileType = 'gif'; break; case 6677: $fileType = 'bmp'; break; case 13780: $fileType = 'png'; break; default: echo 'unknown'; } |
因为我登陆了几次,连接速度巨慢,所以我就放弃了。当然留言插件也不胜枚举,比如现在比较火的多说,但对于没有注册多说的朋友,头像仍是个问题。对于多说的社交账号绑定,我测试多次,QQ,人人这些主流平台的绑定经常出错,而且有的朋友(像我)讨厌繁琐的授权。
鉴于此,我在想一个大众化的,比较简单的方法。我想到的是对于没有头像的朋友调用其QQ头像,因为QQ现在至少是人手一个,所以只需要留言时填写QQ号,然后调用其头像。这样一来就方便多了。
首先是获取QQ的头像了,这也是这个想法的第一步,即今天的主题:
第一种方法:
代码如下 | 复制代码 |
<?php |
第二种方法:
代码如下 | 复制代码 |
<?php |
这两种方法的区别:
第一种方法的优点是可以输出头像的原图,如果你的头像是动态的gif,那么输出的也是动态图。缺点是速度比较慢,不适合作为调用头像的方法。
第二种方法的优点是相比第一种速度比较快,但只抓取头像的静态图,不会显示动态头像,比较适合作为调用头像的方法。
在 php 获取图片尺寸的方法我们可以使用 getimagesize 获取图片尺寸的效率是很低的,首先需要获取整个的图片信息,然后再进行操作,下面的例子更科学算法更好,我们一起来看看吧。下方法可以用于快速获取图片尺寸信息
1.获取JPEG格式图片的尺寸信息
代码如下 | 复制代码 |
<?php * 获取JPEG格式图片的尺寸信息,并且不需要下载/读取整个图片。 * 经测试这个函数不是对所有JPEG格式的图片都有效。 * http://www.111cn.net */ // Retrieve JPEG width and height without downloading/reading entire image. function getjpegsize($img_loc) { $block_size = unpack("H*", $new_block[$i] . $new_block[$i+1]); $sof_marker = array("xC0", "xC1", "xC2", "xC3", "xC5", "xC6", "xC7", "xC8", "xC9", "xCA", "xCB", "xCD", "xCE", "xCF"); $size_data = $new_block[$i+2] . $new_block[$i+3] . $new_block[$i+4] . $new_block[$i+5] . $new_block[$i+6] . $new_block[$i+7] . $new_block[$i+8]; $i += 2; |
2.
代码如下 | 复制代码 |
$url='http://www.111cn.net /images/201203/08/1331189004_28093400.jpg'; |
代码如下 | 复制代码 |
<?php $login_url = 'http://passport.renren.com/PLogin.do'; $post_fields['email'] = '';//人人的帐号
//$uid = "305115027"; $send_url='http://www.renren.com/'.$uid; //发布信息 $head = array( |
原文来自:http://www.mapenggang.com/