Submitted by gouki on 2010, May 29, 11:18 PM
内容来自虫少侠的enjoyphp.com,因为很多时候我们都使用了fgetcsv,只是我们有时候都还在使用file,再explode处理,相反却忽略了这个系统函数,然而,用虫少侠的话来说,这个函数还是有BUG的,主要是在处理中文上,因此就有了这个函数:
function fgetcsv_reg(& $handle, $length = null, $d = ',', $e = '"') {
$d = preg_quote($d);
$e = preg_quote($e);
$_line = "";
$eof=false;
while ($eof != true) {
$_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length));
$itemcnt = preg_match_all('/' . $e . '/', $_line, $dummy);
if ($itemcnt % 2 == 0)
$eof = true;
}
$_csv_line = preg_replace('/(?: |[ ])?$/', $d, trim($_line));
$_csv_pattern = '/(' . $e . '[^' . $e . ']*(?:' . $e . $e . '[^' . $e . ']*)*' . $e . '|[^' . $d . ']*)' . $d . '/';
preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);
$_csv_data = $_csv_matches[1];
for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) {
$_csv_data[$_csv_i] = preg_replace('/^' . $e . '(.*)' . $e . '$/s', '$1', $_csv_data[$_csv_i]);
$_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]);
}
return empty ($_line) ? false : $_csv_data;
}
原文来自:http://www.enjoyphp.com/2009/lamp/php-lamp/php-fgetcsv/
Tags: fgetcsv
PHP | 评论:1
| 阅读:17965
Submitted by gouki on 2010, May 28, 9:20 AM
前两天一直在说scala,有几个朋友问我什么 是Scala,每次让他们翻一下google也太累了,所以我就贴在博客上,当然这也是找出来的东西,我没有能力写这么多。
我个人还是认为,不管怎么样,WEB、winform、console(shell)三种编程效果的程序语言最好都要熟悉一种,不管是为了将来的职业发展还是工作应用,都会有很大的方便。
OK,开始介绍:
Scala是一门现代的多范式编程语言,志在以简练、优雅及类型安全的方式来表达常用编程模式。它平滑地集成了面向对象和函数语言的特性。
- Scala是面向对象的:Scala是一个纯面向对象语言,在某种意义上来讲所有数值都是对象。对象的类型和 行为是由class和trait来描述的。Class的抽象可由子类化和一种灵活的基于mixin的组合机制(它可作为多重继承的简单替代方案)来扩展。
- Scala是函数式的: Scala还是一个函数式语言,在某种意义上来讲所有函数都是数值。Scala为定义匿名函数提供了一种轻量级的语法,它支持高阶(higher- order)函数、允许函数嵌套、支持局部套用(currying)。Scala的case类及其内置支持的模式匹配模型代数类型在许多函数式编程语言中 都被使用。
- Scala是静态类型的:Scala配备了一套富有表现力的类型系统,该抽象概念以一种安全的和一致的方式被 使用。
- Scala是可扩展的:Scala的设计承认了实践事实,领域特定应用开发通常需要领域特定语言扩展。 Scala提供了一个独特的语言组合机制,这可以更加容易地以类库的形式增加新的语言结构:
- 任何方式可以被用作中缀(infix)或后缀(postfix)操作符
- 闭包按照所期望的类型(目标类型)自动地被构造
两者结合使用可方便地定义新语句,无需扩展语法,也无需使用类似宏的元编程工具。
- Scala可与Java和.NET进行互操作:Scala 设计时就考虑了与流行编程环境良好交互,如Java 2运行时环境(JRE)和 .NET框架(CLR)。特别是与主流面向对象语言,如Java和C#尽量无缝交互。Scala有像Java和C#一样的编译模型(独立编译,动态装载 类),允许访问成千上万的高质量类库。
来源:http://www.oschina.net/p/scala
Tags: scala, java
Scala & Ruby | 评论:1
| 阅读:23008
Submitted by gouki on 2010, May 27, 12:13 PM
最近在做个小东西,想用PHP跑console,生成一个文件,然后由WEB去调用这个文件。可是却一直失败。
命令行下,用crontab跑,因为WEB是在Safemode下面,但我需要Exec,因此crontab调用php的时候,我就指定了phpini,类似/php -c phpinifilepath phpfilename,于是这样可以了。
但生成出来的文件被WEB调用后。一直显示是失败。郁闷了。。
纯记录,无意义
Tags: php, cli, web
PHP | 评论:3
| 阅读:20759
Submitted by gouki on 2010, May 26, 10:09 AM
在PHP中可以直接对字符串进行比较,比如
PHP代码
- $a = 'A';
- $b = 'B';
- var_dump( $a > $b);
当然,在JS中也可以
JavaScript代码
- var s = 'A';
- var t = 'B';
- alert( s < t);
为什么可以比大小呢?那是因为,他们是直接转成ascii值来进行比较的,PHP中是 ord($a) 转成了65,B就是66了,所以$a>$b是返回false
PHP有两个函数用来互换,一个是ord,一个是chr,那么js中怎么办呢?也有,一个是charCodeAt(),一个是fromCharCode();看例子吧。。。
PHP代码
- <?php
- $a = 'A';
- echo ord($a);
- echo chr( ord($a) );
JavaScript代码
- var s= 'A';
- alert( s.charCodeAt() );
-
- alert( String.fromCharCode( s.charCodeAt() ) );
js中对于fromCharCode和php不太一样了。
Tags: ord, chr, php
Javascript | 评论:0
| 阅读:35701
Submitted by gouki on 2010, May 26, 9:32 AM
昨天下载完了jdk1.6update20后,总以为启动netbeans的时候会自动更換jdk路径的。(原来我是想他是直接从系统路径里读取的。)但是在安装scala插件的时候,它还是提示我用的是jre而不是jdk。但是给了我一个帮助,地址为:http://wiki.netbeans.org/FaqRunningOnJre
OK,原来这么简单
1、先安装JDK full版
2、打开<netbeans安装目录>/etc/netbeans.conf,更換里面的netbeans的JDK的路径。。
3、保存,重启netbeans,Over了
第二种方式就是 --jdkhome command-line option e.g. ./bin/netbeans --jdkhome /usr/local/share/java/jdk1.6.0_07/
这是在快捷方式中指定jdkhome,这样比较适合你有很多JDK版本时适用。
Tags: netbeans, jdk, java, scala
Scala & Ruby | 评论:1
| 阅读:25298