PHP获取IP地址
- <?
- //PHP获取当前用户IP地址方法
- $xp_UserIp = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
- $xp_UserIp = ($xp_UserIp) ? $xp_UserIp : $_SERVER["REMOTE_ADDR"];
- ?>

PHP获取IP地址
- <?
- //PHP获取当前用户IP地址方法
- $xp_UserIp = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
- $xp_UserIp = ($xp_UserIp) ? $xp_UserIp : $_SERVER["REMOTE_ADDR"];
- ?>

在日常的应用开发中,导出数据,是非常普通的需求,几乎成了必备项。在导出的文件格式中,常见的有 excel, txt, pdf, csv等。通常情况下EXCEL的格式,就是利用 CSV 的形式来实现的。
对于PHP的应用,操作EXCEL,有一些开源的类库,例如:PHPExcel 。
本文介绍的不是使用第三方的类库,而是使用PHP自带的功能,那就是 fputcsv 这个函数,fputcsv是PHP5引入的函数。
如果你使用的是PHP4,那么请使用自定义函数。
<?php // 输出Excel文件头 header('Content-Type: application/vnd.ms-excel;charset=gbk'); header('Content-Disposition: attachment;filename="文件名.csv"'); header('Cache-Control: max-age=0'); // 从数据库中获取数据 $sql = 'select * from `table` where ……'; $stmt = @mysql->query($sql); // PHP文件句柄,php://output 表示直接输出到浏览器 $fp = fopen('php://output', 'a'); // 输出Excel列头信息 $head = array('姓名', '性别', '年龄', 'Email', '电话', '……'); foreach ($head as $i => $v) { // CSV的Excel支持GBK编码,一定要转换,否则乱码 $head[$i] = iconv('utf-8', 'gbk', $v); } // 写入列头 fputcsv($fp, $head); // 计数器 $cnt = 0; // 每隔$limit行,刷新一下输出buffer,节约资源 $limit = 100000; // 逐行取出数据,节约内存 while ($row = $stmt->fetch(FETCH_NUM)) { $cnt ++; if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题 ob_flush(); flush(); $cnt = 0; } foreach ($row as $i => $v) { $row[$i] = iconv('utf-8', 'gbk', $v); } fputcsv($fp, $row); }
dirname(__FILE__) 就是取得当前文件所在的目录
通常在配置文件路径的时候用dirname(__FILE__)是非常有效的方法,但是因为__FILE__的路径是当前代码所在文件(而不是url所在文件)完整路径,所以定义配置文件通常要放在根目录下定义网站的根地址,但是下面的方法可以解决配置文件的存放问题。
dirname(dirname(__FILE__)); // 假设__FILE__为 /home/web/config/config.php ,输出为 /home/web
dirname(dirname(__FILE__)); 得到的是文件上一层目录名
dirname(__FILE__); 得到的是文件所在层目录名
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at D:\orther object\phptest\session.php:1) in D:\orther object\phptest\session.php on line 2
错误原因:大家如果用dreamwever的话;请在某个页面上右键==>页面属性==>标题/编码
就会看到一个“包括Unicode 签名(BOM)(S)”的复选框;把它取消选择;然后应用即可····
激活方法(1):
1、安装软件,在网上找个序列号:
2、用记事本编辑“C:\Windows\System32\Drivers\etc\”目录下的 hosts 文件, 在末尾加上:
127.0.0.1 activate.adobe.com
127.0.0.1 practivate.adobe.com
127.0.0.1 ereg.adobe.com
127.0.0.1 activate.wip3.adobe.com
127.0.0.1 wip3.adobe.com
127.0.0.1 3dns-3.adobe.com
127.0.0.1 3dns-2.adobe.com
127.0.0.1 adobe-dns.adobe.com
127.0.0.1 adobe-dns-2.adobe.com
127.0.0.1 adobe-dns-3.adobe.com
127.0.0.1 ereg.wip3.adobe.com
127.0.0.1 activate-sea.adobe.com
127.0.0.1 wwis-dubc1-vip60.adobe.com
127.0.0.1 activate-sjc0.adobe.com
以防止其连接 Adobe 的激活验证服务器。这样产品就一直是激活成功的状态了。
激活方法(2):
下载以下文件直接覆盖掉安装目录下的同名文件即可
amtlib下载
一、正则表达式教程
有一个经典的教程: 正则表达式30分钟入门教程,大家可以搜索一下。
这个教程的确很简单,看完基本上写一些简单的正则就没有问题了。正则是一个需要长期使用的工具,隔段时间不用会忘记,所以我每次都看一遍这个教程。其实学过之后重要的就是一点内容。
简单罗列如下:
.换行符以外的所有字符
/w 匹配字母或数字或下划线或汉字
/s 匹配任意的空白符
/d 匹配数字
/b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,}重复n次或更多次
{n,m} 重复n到m次
应用替换时,前面第一个()中匹配的内容后面就用$1引用,第二个()中匹配的就用$2应用……
分析一下 discuz搜索引擎优化 htaccess 里面的重写。
RewriteRule ^forum-([0-9]+)-([0-9]+)/.html$ forumdisplay.php?fid=$1&page=$2
首先加入用户通过 linuxidc.com/forum-2-3.html 访问discuz论坛,那么先通过.htaccess过滤,看看是否需要.htaccess引导一下用户,如果满足列出的一系列RewriteCond的 条件那么就进行重写,
discuz的没有列出RewriteCond 所以应该全部都进行重写。所以开始进行转写,forum-2-3.html 这个正好符合 列出的^forum-([0-9]+)-([0-9]+)/.html$ 正则表达式。并且 $1 为 2 ,$2为3 ,所以代
入后面,即 forumdisplay.php?fid=2&page=3 加上前面的RewriteBase 指定的文件目录,那么就带他到制定目录的forumdisplay.php?fid=2&page=3 。
htaccess文件大家都不陌生吧。不认识的自己去搜一下……顺便告诉你,这是个好东西,值得一学。
似乎网上关于.htaccess编写方法的教程很有限,相信博主们也没有几个是自己写的吧?
我在这里就搜了几个常用规则,总结一下rewrite规则的用法。当然这只是.htaccess功能的一小部分,但是相当实用。
如果熟练掌握rewrite规则的编写,能够加强对网站URL的控制,对用户体验、SEO都十分有利。
一、防盗链功能
1 |
RewriteEngine On |
2 |
RewriteCond %{HTTP_REFERER} !^http://(.+.)?mysite.com/ [NC] |
3 |
RewriteCond %{HTTP_REFERER} !^$ |
4 |
RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L] |
* iPhone软件启动后的第一屏图片是非常重要的往往就是loading载入中的意思。设置它说来也简单,但是却无比重要
只需要在resource里面将你希望设置的图片更名为Default.png,这个图片就可以成为iPhone载入的缺省图片
