从短url获取正常url(php,objective-c ios)

微博的兴起将很多长的url转换成了短url地址,但是有时候我们需要先通过短url拿到长url,再进行进一步的处理。

ios方法

  1. +(NSString*)unshortUrl🙁NSString*)shortUrl{
  2.     shortUrl = @“http://rrurl.cn/xxoo”;
  3.     NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:shortUrl]];
  4.     NSHTTPURLResponse *response = [[[NSHTTPURLResponse alloc] init] autorelease];
  5.     [NSURLConnection sendSynchronousRequest:request returningResponse:>response error:nil];
  6.     return response.URL.absoluteString;
  7. }

php方法

  1. $url = “http://rrurl.cn/xxoo”; 
  2. echo unshorten($url); 
  3. function unshorten($url) { 
  4. $url = trim($url); 
  5. $headers = get_headers($url); 
  6. $location = $url; 
  7. $short = false; 
  8. foreach($headers as $head) { 
  9. if($head==“HTTP/1.1 302 Found”) $short = true; 
  10. if($short >> startwith($head,“Location: “)) { 
  11. $location = substr($head,10); 
  12. } 
  13. } 
  14. return $location; 
  15. } 

php操作mysql数据库

在采用了php和mysql作为开发服务器端工具之后,首先就是怎么在php中去读取,修改数据库中的数据。
php内置了很多以mysql_开头的函数来进行mysql数据库的操作,非常方便。这里用一个例子来说明常用函数的使用吧。

以feedback功能为例,设计一个数据库表格,有以下字段
fbID,fbContent,fbEmail,fbName,fbTime

首先用户通过http post方法进行一次反馈操作,那么遇到的数据库操作就有:打开数据库连接,选择数据库,执行insert语句,断开数据库。即:
1.连接数据库
$db = @mysql_connect('localhost','dbusername','dbpassword') or die('db connect error');
2.选择数据库
@mysql_select_db('testapi',$db) or die('db select error');
3.执行insert查询语句将数据插入数据库
$sqlInsert = "insert into feedbacks (fbContent,fbEmail,fbName,fbTime) value ('".$feedBackArray['content']."','".$feedBackArray['email']."','".$feedBackArray['name']."','".$feedBackArray['time']."')";
@mysql_query($sqlInsert,$db) or die('db insert error');

4.断开数据库连接
mysql_close($db);
以上就是在php中插入数据到mysql数据库中的一个方法,对其中的insert语句做一些变化,也就实现了各种对数据库的操作了。

接下来的另一个方面是如何从mysql中查询数据,以及如何使用查询得到的数据。其中连接数据库,选择数据库,断开连接同上,只是第三步有说区别:

  1. $fbResultsFromDB = @mysql_query ( ‘select * from feedbacks’, $db ) or die ( ‘db select error’ );
  2. $row = mysql_fetch_row ( $fbResultsFromDB );
  3. echo ‘<table><tr><td>ID</td><td>Content</td><td>Email</td><td>Name</td><td>GMTTime</td></tr>’;
  4. while ( ! empty ( $row ) ) {
  5.     echo “<tr>”;
  6.     echo “<td>” . $row [0] . “</td>”;
  7.     echo “<td>” . $row [1] . “</td>”;
  8.     echo “<td>” . $row [2] . “</td>”;
  9.     echo “<td>” . $row [3] . “</td>”;
  10.     echo “<td>” . $row [4] . “</td>”;
  11.     echo ‘</tr>’;
  12.     $row = mysql_fetch_row ( $fbResultsFromDB );
  13. }
  14. echo ‘</table>’;
  15. mysql_free_result ( $fbResultsFromDB );

使用mysql_query函数来得到查询结果,对查询结果不断调用mysql_fetch_row方法来获取每一行的数据,得到的数据是一个array。以上代码片段是将查询到的数据以表格形式打印在浏览器上。

http中content-type对照表【转】

常见文件的http中content-type头的值(MIME类型)

An official listing of defined MIME types:

.ai - application/postscript
.aif - audio/x-aiff
.aifc - audio/x-aiff
.aiff - audio/x-aiff
.asc - text/plain
.au - audio/basic
.avi - video/x-msvideo
.bcpio - application/x-bcpio
.bin - application/octet-stream
.c - text/plain
.cc - text/plain
.ccad - application/clariscad
.cdf - application/x-netcdf
.class - application/octet-stream
.cpio - application/x-cpio
.cpt - application/mac-compactpro
.csh - application/x-csh
.css - text/css
.dcr - application/x-director
.dir - application/x-director
.dms - application/octet-stream
.doc - application/msword
.drw - application/drafting
.dvi - application/x-dvi
.dwg - application/acad
.dxf - application/dxf
.dxr - application/x-director
.eps - application/postscript
.etx - text/x-setext
.exe - application/octet-stream
.ez - application/andrew-inset
.f - text/plain
.f90 - text/plain
.fli - video/x-fli
.gif - image/gif
.gtar - application/x-gtar
.gz - application/x-gzip
.h - text/plain
.hdf - application/x-hdf
.hh - text/plain
.hqx - application/mac-binhex40
.htm - text/html
.html - text/html
.ice - x-conference/x-cooltalk
.ief - image/ief
.iges - model/iges
.igs - model/iges
.ips - application/x-ipscript
.ipx - application/x-ipix
.jpe - image/jpeg
.jpeg - image/jpeg
.jpg - image/jpeg
.js - application/x-javascript
.kar - audio/midi
.latex - application/x-latex
.lha - application/octet-stream
.lsp - application/x-lisp
.lzh - application/octet-stream
.m - text/plain
.man - application/x-troff-man
.me - application/x-troff-me
.mesh - model/mesh
.mid - audio/midi
.midi - audio/midi
.mif - application/vnd.mif
.mime - www/mime
.mov - video/quicktime
.movie - video/x-sgi-movie
.mp2 - audio/mpeg
.mp3 - audio/mpeg
.mpe - video/mpeg
.mpeg - video/mpeg
.mpg - video/mpeg
.mpga - audio/mpeg
.ms - application/x-troff-ms
.msh - model/mesh
.nc - application/x-netcdf
.oda - application/oda
.pbm - image/x-portable-bitmap
.pdb - chemical/x-pdb
.pdf - application/pdf
.pgm - image/x-portable-graymap
.pgn - application/x-chess-pgn
.png - image/png
.pnm - image/x-portable-anymap
.pot - application/mspowerpoint
.ppm - image/x-portable-pixmap
.pps - application/mspowerpoint
.ppt - application/mspowerpoint
.ppz - application/mspowerpoint
.pre - application/x-freelance
.prt - application/pro_eng
.ps - application/postscript
.qt - video/quicktime
.ra - audio/x-realaudio
.ram - audio/x-pn-realaudio
.ras - image/cmu-raster
.rgb - image/x-rgb
.rm - audio/x-pn-realaudio
.roff - application/x-troff
.rpm - audio/x-pn-realaudio-plugin
.rtf - text/rtf
.rtx - text/richtext
.scm - application/x-lotusscreencam
.set - application/set
.sgm - text/sgml
.sgml - text/sgml
.sh - application/x-sh
.shar - application/x-shar
.silo - model/mesh
.sit - application/x-stuffit
.skd - application/x-koan
.skm - application/x-koan
.skp - application/x-koan
.skt - application/x-koan
.smi - application/smil
.smil - application/smil
.snd - audio/basic
.sol - application/solids
.spl - application/x-futuresplash
.src - application/x-wais-source
.step - application/STEP
.stl - application/SLA
.stp - application/STEP
.sv4cpio - application/x-sv4cpio
.sv4crc - application/x-sv4crc
.swf - application/x-shockwave-flash
.t - application/x-troff
.tar - application/x-tar
.tcl - application/x-tcl
.tex - application/x-tex
.texi - application/x-texinfo
.texinfo - application/x-texinfo
.tif - image/tiff
.tiff - image/tiff
.tr - application/x-troff
.tsi - audio/TSP-audio
.tsp - application/dsptype
.tsv - text/tab-separated-values
.txt - text/plain
.unv - application/i-deas
.ustar - application/x-ustar
.vcd - application/x-cdlink
.vda - application/vda
.viv - video/vnd.vivo
.vivo - video/vnd.vivo
.vrml - model/vrml
.wav - audio/x-wav
.wrl - model/vrml
.xbm - image/x-xbitmap
.xlc - application/vnd.ms-excel
.xll - application/vnd.ms-excel
.xlm - application/vnd.ms-excel
.xls - application/vnd.ms-excel
.xlw - application/vnd.ms-excel
.xml - text/xml
.xpm - image/x-xpixmap
.xwd - image/x-xwindowdump
.xyz - chemical/x-pdb
.zip - application/zip

PHP文件操作

打开文件 <<<<<<<<<<<<<
$handle = fopen($filename, 'a');
mode说明
‘r’ 只读方式打开,将文件指针指向文件头。
‘r+’ 读写方式打开,将文件指针指向文件头。
‘w’ 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
‘w+’ 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
‘a’ 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
‘a+’ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
‘x’ 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
‘x+’ 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
读取二进制文件最好加b标记,比如$handle = fopen($filename, 'ab');


>>>>>>>>>>>>>> 关闭文件 <<<<<<<<<<<<<
fclose($handle);


>>>>>>>>>>>>>> 读取文件 <<<<<<<<<<<<<
$char = fgetc($fp);//读取一个字符
string fgets ( int handle [, int length])//读取一行(最长到length,默认1K)


>>>>>>>>>>>>>> 写文件 <<<<<<<<<<<<<
int fwrite ( resource handle, string string [, int length])//最长写到length


>>>>>>>>>>>>>> 看一个简单的例子 <<<<<<<<<<<<<



参考:
http://www.php100.com/manual/php/