- 浏览: 13642337 次
- 性别:
- 来自: 洛杉矶
文章分类
- 全部博客 (1994)
- Php / Pear / Mysql / Node.js (378)
- Javascript /Jquery / Bootstrap / Web (435)
- Phone / IOS / Objective-C / Swift (137)
- Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux (335)
- Perl / Koha / Ruby / Markdown (8)
- Java / Jsp (12)
- Python 2 / Wxpython (25)
- Codeigniter / CakePHP (32)
- Div / Css / XML / HTML5 (179)
- WP / Joomla! / Magento / Shopify / Drupal / Moodle / Zimbra (275)
- Apache / VPN / Software (31)
- AS3.0/2.0 / Flex / Flash (45)
- Smarty (6)
- SEO (24)
- Google / Facebook / Pinterest / SNS (80)
- Tools (22)
最新评论
-
1455975567:
xuezhongyu01 写道wocan23 写道我想问下那个 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
xuezhongyu01:
wocan23 写道我想问下那个111.1是怎么得来的我也看不 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
18335864773:
试试 pageoffice 在线打开 PDF 文件吧. pag ...
jquery在线预览PDF文件,打开PDF文件 -
青春依旧:
opacity: 0.5; 个人喜欢这种方式!关于其他css特 ...
css透明度的设置 (兼容所有浏览器) -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
搞定网页打印自动分页问题
提交页面 shorten.php:
<form method="post" action="show.php"> <input type="text" name="url" value="" style="width:800px;padding:3px 7px;" /> <input type="submit" name="submit" value="Shorten Url" /> </form>
处理页面 show.php:
<?php include 'functions.php'; include 'shorturls.php'; $entry = $_POST['submit']; $url = $_POST['url']; $output = ''; if($entry == 'Shorten Url' AND $url) { if(!in_array($url,$shortUrls)) { $uif = alphaID(count($shortUrls),false,6); if(!array_key_exists($uif,$shortUrls)) { $shortUrls[$uif] = $url; $file = fopen('shorturls.php','w'); fwrite($file,'<?php $shortUrls = ' . var_export($shortUrls,true) . ';?>'); fclose($file); $output = 'Original Url : '.$url.'<br> Shorten Ulr : <a href="http://www.yourdomain.com/api/s='.$uif.'" target="_blank">http://www.yourdomain.com/api/s='.$uif.'</a>'; } else $output = 'access error'; } else { $uif = array_search($url,$shortUrls); $output = 'Original Url : '.$url.'<br> Shorten Ulr : <a href="http://www.yourdomain.com/api/s='.$uif.'" target="_blank">http://www.yourdomain.com/api/s='.$uif.'</a>'; } echo $output.'<br><br> <a href="shorten.php">Back</a>'; } ?>
关联页面 functions.php
<?php function alphaID($in, $to_num = false, $pad_up = false, $passKey = null) { $index = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; if ($passKey !== null) { // Although this function's purpose is to just make the // ID short - and not so much secure, // with this patch by Simon Franz (http://blog.snaky.org/) // you can optionally supply a password to make it harder // to calculate the corresponding numeric ID for ($n = 0; $n<strlen($index); $n++) $i[] = substr( $index,$n ,1); $passhash = hash('sha256',$passKey); $passhash = (strlen($passhash) < strlen($index)) ? hash('sha512',$passKey) : $passhash; for ($n=0; $n < strlen($index); $n++) $p[] = substr($passhash, $n ,1); array_multisort($p, SORT_DESC, $i); $index = implode($i); } $base = strlen($index); if ($to_num) { // Digital number <<-- alphabet letter code $in = strrev($in); $out = 0; $len = strlen($in) - 1; for ($t = 0; $t <= $len; $t++) { $bcpow = bcpow($base, $len - $t); $out = $out + strpos($index, substr($in, $t, 1)) * $bcpow; } if (is_numeric($pad_up)) { $pad_up--; if ($pad_up > 0) $out -= pow($base, $pad_up); } $out = sprintf('%F', $out); $out = substr($out, 0, strpos($out, '.')); } else { // Digital number -->> alphabet letter code if (is_numeric($pad_up)) { $pad_up--; if ($pad_up > 0) $in += pow($base, $pad_up); } $out = ""; for ($t = floor(log($in, $base)); $t >= 0; $t--) { $bcp = bcpow($base, $t); $a = floor($in / $bcp) % $base; $out = $out . substr($index, $a, 1); $in = $in - ($a * $bcp); } $out = strrev($out); // reverse } return $out; } ?>
关联页面 shorturls.php
<?php $shortUrls = array ();?>
原理: 将提交的网址存放数组里面,同时为之产生一个唯一的键,之后将该数组存放文本中,当然你也可以存放到数据库中,此实例为存放到文本中。
一些函数的解释:
1. array_search() 函数
array_search(value,array,strict)
array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false。
2. var_export() 函数
此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。
您可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。
比较 var_export() 和 var_dump().
最后是 接受页面 redirect.php
<?php include 'shorturls.php'; $uid = $_GET['uid']; $addr = ($uid AND array_key_exists($uid,$shortUrls)) ? $shortUrls[$uid]: '/'; header('location:'.$addr);
此页面需要结合 .htaccess or .waccess 使用
RewriteEngine On RewriteRule ^s=(.*)$ /redirect.php?uid=$1 [R=301,L]
关联:
php创建短ID Create short IDs with PHP - Like Youtube or TinyURL
如果问题,敬请留言~
发表评论
-
PHP: 在类(class)中加载动态函数, 变量函数或半变量函数 variable function/method
2016-09-03 07:54 7102最终实例在下方 以前 ... -
MySQL入门 (七) : 储存引擎与资料型态
2016-09-03 07:49 45051 表格与储存引擎 表格(table)是资料库中用来储存 ... -
MySQL入门 (六) : 字元集与资料库
2016-09-03 07:47 45101 Character Set与Collation 任何 ... -
MySQL入门 (五) : CRUD 与资料维护
2016-09-03 07:46 54241 取得表格资讯 1.1 DESCRIBE指令 「 ... -
MySQL入门 (四) : JOIN 与UNION 查询
2016-09-03 07:42 44461 使用多个表格 在「world」资料库的「countr ... -
PHP: 关键字global 和 超全局变量$GLOBALS的用法、解释、区别
2016-08-31 12:07 4984$GLOBALS 是一个关联数组,每一个变量为一个 ... -
MySQL入门 (三) : 运算式与函式
2016-08-31 12:01 4332运算式(expressions)已经 ... -
MySQL入门 (二) : SELECT 基础查询
2016-08-31 11:56 46371 查询资料前的基本概念 1.1 表格、纪录 ... -
MySQL入门 (一) : 资料库概论与MySQL的安装
2016-08-31 11:51 43961. 储存与管理资料 储存与管理资料一直是资讯应用上最基本 ... -
MySQL入门 (九) : 子查询 Subquery
2016-08-30 02:26 44011 一个叙述中的查询叙述 子查询(subquery)是一 ... -
PHP: 用readonly取代disabled来获取input值 submit a disabled input in a form could not ge
2016-08-30 02:21 2655The form is like below; <f ... -
PHP7革新与性能优化
2016-08-30 02:20 2098有幸参与2015年的PHP技 ... -
Mysql: 图解 inner join、left join、right join、full outer join、union、union all的区别
2016-08-18 06:03 3073对于SQL的Join,在学习起来可能是比较乱的。我们知道, ... -
Comet 反Ajax: 基于jQuery与PHP实现Ajax长轮询(LongPoll)
2016-08-18 06:00 1333传统的AJAX轮询方式,客服端以用户定义的时间间隔去服务器上 ... -
PHP:ServerPush (Comet推送) 技术的探讨
2016-08-18 05:58 993PHP中Push(推送)技术的探讨 [http://vi ... -
PHP: 手把手编写自己的 MVC 框架实例教程
2016-08-16 05:33 17661 什么是MVC MVC模式(Model-View-Con ... -
PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD)
2016-07-29 12:55 1704原文: PHP5: mysqli 插入, 查询, 更新 ... -
MongoDB 教程索引 (附有视频)
2016-07-27 10:54 696MongoDB 教程索引 MongoDB 教程一: ... -
Node.js 模块之Nimble流程控制
2016-07-18 12:59 1041NodeJS异步的特性有时候 ... -
Node.js web应用模块之Supervisor
2016-07-18 12:56 2289在开发或调试Node.js应 ...
相关推荐
本文实例讲述了php格式输出文件var_export函数的用法。分享给大家供大家参考。具体如下: var_export:php 4 >= 4.2.0, php 5 var_export — 输出或返回一个变量的字符串表示. 描述:mixed var_export (mixed ...
下面的示例看看这三个函数的具体的区别,其中var_dump和var_export比较少用,但他们两者又很相似。所以可以看看:复制代码 代码如下:<?php$a = array(1,1,32,322,3433,array(32,232,23232));$b = 1234;$c = ...
php/** * PHP 实现var_export();功能 */ $arr = array(“1″,”2″,”3”); $arr1 = array(‘a’=>NULL,’b’=>array(‘1’=>3)); var_export($arr); //var_export($arr1); function varExport($arr){ $ret ...
问题发现在跟踪yratings...这就是:问题原因var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。 而这个变量就会取得和被var_export一样的类型的值 但是, 当变量
1、output basic type ...file_put_contents(index.log, var_export($n, true) . PHP_EOL, FILE_APPEND); file_put_contents(index.log, print_r($n, true) . PHP_EOL, FILE_APPEND); file_put_contents(index.log
fwrite($fp,var_export($times,true)); fclose($fp); 您可能感兴趣的文章:php输出echo、print、print_r、printf、sprintf、var_dump的区别比较php echo, print, print_r, sprintf, var_dump, var_expor的使用区别...
PHP的var_export()强大而漂亮的替代品。 介绍 PHP的函数是将变量导出为可执行PHP代码的便捷方法。 与源代码一样,存储可以由OPCache缓存的数据,之后又能以非常快的速度进行检索,这比使用unserialize()或json_...
一 var_dump (PHP 3 >= 3.0.5, PHP 4, PHP 5) var_dump — 打印变量的相关信息 描述 void var_dump ( mixed expression [, mixed expression [, …]] ) 此函数显示关于一个或多个表达式的结构信息,包括表达式的类型...
tvp var_tvp-var_tvpvar参考书籍_tvp模型_tvpvar代码_var_源码.zip
php var_dump 函数作用是判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.来看看var_dump 语法:复制代码 代码如下:var_dump (var,var,bar);下面来看看我刚才的一个实例吧.复制...
ILove_var_pvarlove程序包_pvar程序包_pvar_love_love博士安装包.zip
FirePHP 比 var_dump 更好的调试PHP代码 附带,chrome,firefox 插件
tvp var_tvp-var_tvpvar参考书籍_tvp模型_tvpvar代码_var.zip