Category Archive: 技术

PHP获取IP地址实现不同地区城市跳转的功能

PHP获取IP地址

  这个比较简单了,利用PHP自带函数就可以了,PHP中文手册看一下,都有现成的例子,就不过多说明了,直接上代码,A段:
  1. <?
  2. //PHP获取当前用户IP地址方法
  3. $xp_UserIp = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
  4. $xp_UserIp = ($xp_UserIp) ? $xp_UserIp : $_SERVER["REMOTE_ADDR"];
  5. ?>

php根据ip跳转到不同的地区城市

PHP通过IP地址判断用户所在城市

   上文已经获得了用户IP地址,接下来,我们就是根据这个IP地址获得用户所在城市了。开始之前,我们需要下载一个现成的数据库QQ IP数据库。

Category: 技术 TAG: , ,

php mysql 导出excel,支持大数据量

 

在日常的应用开发中,导出数据,是非常普通的需求,几乎成了必备项。在导出的文件格式中,常见的有 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);
}
Category: 技术 TAG: , , ,

dirname(__FILE__) 用法

dirname(__FILE__) 就是取得当前文件所在的目录
通常在配置文件路径的时候用dirname(__FILE__)是非常有效的方法,但是因为__FILE__的路径是当前代码所在文件(而不是url所在文件)完整路径,所以定义配置文件通常要放在根目录下定义网站的根地址,但是下面的方法可以解决配置文件的存放问题。
dirname(dirname(__FILE__)); // 假设__FILE__为 /home/web/config/config.php ,输出为 /home/web
dirname(dirname(__FILE__)); 得到的是文件上一层目录名
dirname(__FILE__); 得到的是文件所在层目录名

Category: 技术 TAG: ,

Warning: session_start() [function.session-start]: Cannot send session…

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)”的复选框;把它取消选择;然后应用即可····

Category: 技术 TAG: ,

Dreamweaver CS5 破解方法

Kangka | | COMMENTS:No Comments »

激活方法(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下载

Category: 技术 TAG: , , ,

RewriteRule-htaccess详细语法使用教程

一、正则表达式教程

有一个经典的教程: 正则表达式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 。

Read the rest of this entry >>

Category: 技术 TAG: ,

最新实战讲解.htaccess文件rewrite规则

Kangka | | COMMENTS:No Comments »

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]
Category: 技术 TAG: ,

临沂之行

  • 周六中午3点去的,我,七哥,程程。表哥
  • 晚上8点多到的。费县的有个叫明伟的接待的我们。
  • 晚上住到一个不错的地方
  • 中午吃的临朐全羊,我没喝,他没上来直接玩的心中想
  • 下午3点半开始回,主要是我开车。
  • 晚上8点半到的家。

 

 

 

 

Category: 技术 TAG:

我的iphone开发(2)

Kangka | | COMMENTS:No Comments »

 

  1. library里基本控件inputs & values各个控件差不多都了解了。
  2. 下午了解下Timer,但是到现在还不是怎么会用。
  3. 对progressView也不是很熟悉。
  4. 下午办的VISA卡到了,但是有个帐号密码怎么也找不回了,没有邮箱地址找回,只有输入月日,好像是被部分冻结了,郁闷。

 

 

 

 

 

 

 

 

 

 

Category: 技术 TAG: , ,

iphone程序的开始画面设置

* iPhone软件启动后的第一屏图片是非常重要的往往就是loading载入中的意思。设置它说来也简单,但是却无比重要

只需要在resource里面将你希望设置的图片更名为Default.png,这个图片就可以成为iPhone载入的缺省图片

屏幕快照 2009-07-25 上午10.50.19

Category: 技术 TAG: ,