php短址转换实现方法

yipeiwu_com5年前PHP代码库

本文实例讲述了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

运行效果如下图所示:

希望本文所述对大家的php程序设计有所帮助。

相关文章

PHP中通过语义URL防止网站被攻击的方法分享

什么是语义URL 攻击? 好奇心是很多攻击者的主要动机,语义URL 攻击就是一个很好的例子。此类攻击主要包括对URL 进行编辑以期发现一些有趣的事情。 例如,如果用户chris 点击了你...

php 启动报错如何解决

复制代码 代码如下: [root@abc lnmp]# service php-fpm start Starting php-fpm eAccelerator: Could not al...

PHP 七大优势分析

虽然ASP是一种不错的技术,但从长远考虑我相信PHP在将来的技术领域里会有不凡的表现。   我认为有七个理由可以说明PHP比ASP更优秀:   1、速度、速度、速度   当我第一次运行P...

详解PHP的Yii框架的运行机制及其路由功能

详解PHP的Yii框架的运行机制及其路由功能

运行机制概述 每一次 Yii 应用开始处理 HTTP 请求时,它都会进行一个近似的流程。 用户提交指向 入口脚本 web/index.php 的请求。 入口脚本会加载 配置数组...

php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)

本文实例需要验证的内容:邮件地址、Url地址、电话号码、邮政编码,验证方法分享给大家供大家参考,具体内容如下 1、电子邮件地址的校验 <?php /* 校验邮件地址*...