- 浏览: 13764652 次
- 性别:
- 来自: 洛杉矶
-
文章分类
- 全部博客 (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 7232最终实例在下方 以前 ... -
MySQL入门 (七) : 储存引擎与资料型态
2016-09-03 07:49 46181 表格与储存引擎 表格(table)是资料库中用来储存 ... -
MySQL入门 (六) : 字元集与资料库
2016-09-03 07:47 46281 Character Set与Collation 任何 ... -
MySQL入门 (五) : CRUD 与资料维护
2016-09-03 07:46 55461 取得表格资讯 1.1 DESCRIBE指令 「 ... -
MySQL入门 (四) : JOIN 与UNION 查询
2016-09-03 07:42 45571 使用多个表格 在「world」资料库的「countr ... -
PHP: 关键字global 和 超全局变量$GLOBALS的用法、解释、区别
2016-08-31 12:07 5096$GLOBALS 是一个关联数组,每一个变量为一个 ... -
MySQL入门 (三) : 运算式与函式
2016-08-31 12:01 4441运算式(expressions)已经 ... -
MySQL入门 (二) : SELECT 基础查询
2016-08-31 11:56 47431 查询资料前的基本概念 1.1 表格、纪录 ... -
MySQL入门 (一) : 资料库概论与MySQL的安装
2016-08-31 11:51 45121. 储存与管理资料 储存与管理资料一直是资讯应用上最基本 ... -
MySQL入门 (九) : 子查询 Subquery
2016-08-30 02:26 45111 一个叙述中的查询叙述 子查询(subquery)是一 ... -
PHP: 用readonly取代disabled来获取input值 submit a disabled input in a form could not ge
2016-08-30 02:21 2774The form is like below; <f ... -
PHP7革新与性能优化
2016-08-30 02:20 2204有幸参与2015年的PHP技 ... -
Mysql: 图解 inner join、left join、right join、full outer join、union、union all的区别
2016-08-18 06:03 3181对于SQL的Join,在学习起来可能是比较乱的。我们知道, ... -
Comet 反Ajax: 基于jQuery与PHP实现Ajax长轮询(LongPoll)
2016-08-18 06:00 1432传统的AJAX轮询方式,客服端以用户定义的时间间隔去服务器上 ... -
PHP:ServerPush (Comet推送) 技术的探讨
2016-08-18 05:58 1094PHP中Push(推送)技术的探讨 [http://vi ... -
PHP: 手把手编写自己的 MVC 框架实例教程
2016-08-16 05:33 18471 什么是MVC MVC模式(Model-View-Con ... -
PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD)
2016-07-29 12:55 1831原文: PHP5: mysqli 插入, 查询, 更新 ... -
MongoDB 教程索引 (附有视频)
2016-07-27 10:54 813MongoDB 教程索引 MongoDB 教程一: ... -
Node.js 模块之Nimble流程控制
2016-07-18 12:59 1092NodeJS异步的特性有时候 ... -
Node.js web应用模块之Supervisor
2016-07-18 12:56 2340在开发或调试Node.js应 ...
相关推荐
`var_export`是PHP中的一个内置函数,用于输出或返回一个变量的结构化字符串表示,这个表示是符合PHP语法的,可以直接在代码中被解析执行。这个函数在调试、生成配置文件或者创建测试数据时非常有用。下面我们将详细...
在PHP编程中,`var_export`和`var_dump`都是用于输出变量信息的函数,但是它们的功能和输出形式存在明显区别。`var_export`函数的一个独特之处在于它能够返回变量的合法PHP代码表示,这意味着你得到的输出可以作为一...
- `var_export`类似于`var_dump`,但它返回的是可复制的PHP代码,可以用来重新创建变量的值,而不是直接输出。 在实际开发中,根据需要选择合适的输出函数,`var_dump`因其详细性和递归特性,常用于调试阶段检查...
var table = document.getElementById('myTable'); // 调用库的API进行导出 ExcelExport(table, 'output.xlsx'); } ``` 在这个例子中,当用户点击“导出到Excel”按钮时,`exportTable()`函数会被调用,它...
VarExporter组件VarExporter组件允许将任何可序列化PHP数据结构导出为纯PHP代码。 虽然这样做,它保留了与PHP的序列化机制(相关联的所有语义__wakeup , __sleep , Serializable , __serialize , _... 与var_export
相比于`print_r`,`var_export`更适用于数据恢复,因为它可以创建可执行的PHP代码。 ```php $file='./cache/phone.php'; $array=array('color'=> array('blue','red','green'),'size'=> array('small','medium',...
9. **字符串表示**:在PHP中,可以使用`var_export()`函数生成变量的字符串表示,这对于调试和输出变量内容非常有用。例如: ```php $array = array('key' => 'value'); echo var_export($array, true); ``` 这...
通过`iconv`对`var_export`产生的字符串进行转换,然后用`eval`执行这个字符串,创建出一个新的编码正确的数组。 虽然这个方法能够解决GBK到UTF-8的转换问题,但在处理大型或复杂多维数组时,可能效率不高。因为`...
当使用var_export()导出对象时,此函数可指定如何表示对象的内部状态,以便于后续的导入。 13. **\_\_autoload()**:当尝试使用尚未定义的类时自动调用,用于自动加载类的定义文件。自PHP 5.3.0起,已由spl_...
例如,var_export()函数通常用于输出变量的结构信息,而error_log()函数则可以用于将错误信息发送到不同的目的地,比如到PHP邮件、到Web服务器错误日志或者到自定义文件。 通过上述知识,我们可以总结出PHP基于...
- `print_r()`, `var_dump()`, `var_export()`: 用于查看变量的详细信息。 以上就是PHP网络开发中的一些关键知识点,掌握这些内容能够帮助开发者更好地理解和编写PHP代码。在实际开发过程中,还需要学习更多高级...
- `var_export()`:输出或返回变量的字符串表示形式。 - `printf()` 和 `sprintf()`:格式化字符串输出。 5. **编码转换**: - `mb_convert_encoding()`:将字符串从一种编码转换到另一种编码。 - `iconv()`:...
3. `var_export()`:输出或返回一个变量的可解析字符串形式。 4. `printf()` 和 `sprintf()`:格式化字符串输出。 **日期和时间**: 1. `date_default_timezone_set("PRC")`:设置默认时区。 2. `date()`:根据当前...
__set_state魔术方法用于var_export()函数导出类的静态变量。最后,__clone魔术方法用于对象的复制,当使用clone关键字复制对象时会自动调用此方法。 正确使用这些魔术方法可以极大地增强PHP代码的灵活性和功能。...
当使用`var_export`导出变量时,如果对象实现了`__set_state()` 方法,则该方法会被调用以生成导出结果。 **示例代码:** ```php class MyClass { public function __set_state($properties) { return new self($...
`var_export()` 的输出可以保存为PHP文件,作为缓存或预编译的数据源。 3. **file()** `file()` 函数将文件内容作为一个数组返回,数组的每个元素对应文件中的一行,包括换行符。例如: ```php $lines = file('...
- **定义与用途**:`__set_state()` 在 `var_export()` 返回对象时被调用;`__autoload()` 在尝试使用尚未定义的类时被调用,用于自动加载类文件。 - **示例**: ```php class MyClass { public function __set_...
接着,构造缓存文件的路径,并创建一个PHP文件格式的字符串,其中包含一个名为`$data`的变量,该变量用`var_export`函数序列化 `$caches` 的内容。`var_export`确保数据以PHP语法的形式输出,以便稍后可以被解析。...