作者qrtt1 (愚人)
看板PHP
标题Re: [分享]0rz.net短网址的php函数
时间Mon Jun 26 17:24:47 2006
嘿嘿! 俺也分享一下。如果你没有curl但是有socket可以用啦XD
code:
http://nopa.csie.org/c8ad1
======================================================================
function tinyurl($url){
// create socket and connect to tinyurl.com
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($sock, "tinyurl.com", 80) or die ("connection failure!");
#$url = '
http://www.google.com.tw';
// set post data
$post_data="url=".urlencode($url);
// make up http talk
$talk = "POST /create.php HTTP/1.0\r\n";
$talk .= "HOST:tinyurl.com\r\n";
$talk .= "Keep-Alive:300\r\n";
$talk .= "Content-Type:application/x-www-form-urlencoded\r\n";
$talk .= "Referer:
http://tinyurl.com/\r\n";
$talk .= "Content-Length:".strlen($post_data)."\r\n\r\n";
$talk .= $post_data;
$talk .= "\r\n\r\n";
// send http talk
socket_write($sock, $talk);
// receive html
$recv_len = 1;
$html = "";
while($recv_len >0 ){
$recv_len = socket_recv($sock, $data, 512, 0);
$html .= $data;
}
socket_close($sock);
// parsing html get tiny url
$lines = split("\n", $html);
$line_match = preg_grep("/blockquote.*tinyurl\.com/", $lines);
preg_match('/href="(http.*)" target/', array_shift($line_match),
$tiny_url);
return $tiny_url[1];
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.26.34.105
1F:→ qrtt1:原来#也可以当注解啊, 写完了才发现>"< 最近perl写太多了xd 06/26 17:35
2F:→ ileadu:不过大部分都是用// 当注解 推测原因#不太好按 :p 06/26 17:51
3F:→ qrtt1:我按习惯了orz..整整写了二周的perl不习惯也都惯了>"< 06/26 18:03
4F:推 ast9869:原来socket也可以这样写! Orz~ 06/26 18:15
5F:推 Janoss:推一个 06/27 13:51