php短址转换实现

从昨天下午到现在 推翻了一个又一个的信息存储方案,从mysql到加上内存不受限制的file_get_contents,再到格式化输入的fscanf,最终选择了比较成熟稳定的读取ini的方法。

允许转载,转载须注明出处。

整个主程序只有两个文件 zipurl.php、index.php

zipurl.php:

<?php 
#此文件用于转换url
#整理url
function dealurl($url)
{
	if($url[4]!=':')$url='http://'.$url;
	return $url;
}
function ranum()
{
$str="0123456789abcdefghijklmnopqrstuvwxyz";
$tmp=$str[mt_rand(0,35)].$str[mt_rand(0,35)].$str[mt_rand(0,35)].$str[mt_rand(0,35)].$str[mt_rand(0,35)];
return $tmp;
}
#存号
function zipurl($urls)
{
	#查号去重
	$handle = fopen("url.tmp","r+");
	$array=parse_ini_file("url.tmp",true);
	if(array_search($urls, $array))return array_search($urls, $array);
	$num=ranum();
	fprintf($handle,"%s=%s\r",$num,$urls);
	fclose($handle);
	return $num;
}
function main()
{
	if($url=$_GET['url'])
	{
		$url=dealurl($url);
		$url=zipurl($url);
		echo "http://localhost/?".$url;
	}

}
main();
?>
<meta charset="utf-8">
<title>ZIP your URL</title>
<link rel="stylesheet" href="assets/css/amazeui.min.css">
<div class="am-g">
  <div class=" col-md-8 col-sm-centered">
    <form class="am-form" action="zipurl.php" method="get">
      <fieldset class="am-form-set">
        <input type="text" id="url" name="url" placeholder="输入你想转换的网址">
      </fieldset>
      <div><button type="submit" class="am-btn am-btn-primary am-btn-block">转换</button></div>
    </form>
  </div>
</div>
index.php

<?php
#查号 
#短址访问部分
function readfiles($strs)
{
	$array=parse_ini_file("url.tmp",true);
	var_dump($array);
	return $array[$strs];
}
function main()
{
	#转到模块
	if($str=$_SERVER['QUERY_STRING'])
	echo '<script language="javascript">location.href="'.readfiles($str).'";</script>';
}
main();
#统计部分
?>
<meta charset="utf-8">
<title>ZIP your URL</title>
<link rel="stylesheet" href="assets/css/amazeui.min.css">
<div class="am-g">
  <div class=" col-md-8 col-sm-centered">
    <form class="am-form" action="zipurl.php" method="get">
      <fieldset class="am-form-set">
        <input type="text" id="url" name="url" placeholder="输入你想转换的网址">
      </fieldset>
      <button type="submit" class="am-btn am-btn-primary am-btn-block">转换</button>
    </form>
  </div>
</div>

临时文件url.tmp

aaaaa=http://baidu.com


技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。