|
网站技术 , 编程技术 ,数据库技术
|
技术文章 -
php
|
|
Written by Administrator
|
|
Wednesday, 07 July 2004 11:54 |
|
{php}echo 'this is code';{/php} |
|
Last Updated ( Monday, 19 May 2008 20:43 )
|
|
Read more...
|
|
|
技术文章 -
WEB2.0
|
|
Tuesday, 23 September 2008 01:00 |
|
Welcome to My.donews.com. This is your first post. Edit or delete it, then start blogging!
|
|
Read more...
|
|
技术文章 -
WEB2.0
|
|
Thursday, 25 September 2008 21:00 |
|
Linux shell脚本区别内容相同的文件. - 开源 - CSDN技术中心
以前使用’网络蜘蛛’抓取了不少文件.但后来发现这些文件中有很多是内容完全相同的,如何只保留一份内容相同的文件而把其它相同的去除掉哪?我使用了linux shell脚本处理这个问题:
以前使用’网络蜘蛛’抓取了不少文件.但后来发现这些文件中有很多是内容完全相同的,如何只保留一份内容相同的文件而把其它相同的去除掉哪?我使用了linux shell脚本处理这个问题:
for file in * #遍历文件
do
if ! [ -f “$file” ] #如果文件存在的话,因为有的文件可能被剔除了.
then
echo $file” not exist”
else
for i in *
do
if [ “$file” != “$i” ] #如果文件名不同
then
if cmp -s $file $i
then
mv $i ../same/
fi
fi
done
mv $file ../unique/
fi
done
我一共处理4000多个文件,运行的挺慢的,用了1天零2夜才处理完,我汗,竟剔出了近2000,我再汗.
为了提高效率,后来考虑只对文件大小相同的文件才进行比较.脚本如下:
for file in * #遍历文件
do
if ! [ -f “$file” ] #如果文件存在的话,因为有的文件可能被剔除了.
then
echo $file” not exist”
else
leno=`ls -l $file | awk ‘{print $5}’` #使用ls和awk提出文件大小
for i in *
do
leni=`ls -l $i | awk ‘{print $5}’`
if [ “$file” != “$i” -a “$leno” = “$leni” ] #如果文件名不同,并且文件大小相同
then
if cmp -s $file $i
then
mv $i ../same/
fi
fi
done
mv $file ../unique/
fi
done
找了一小部分文件测试了一下,速度竟比第一个还慢,可能是频繁调用ls和awk的问题.
先到此,如果有更好的办法,再作补充.
|
|
Read more...
|
|
技术文章 -
WEB2.0
|
|
Written by Administrator
|
|
Thursday, 25 September 2008 22:00 |
|
{mm random=news,(title)} Linux shell脚本区别内容相同的文件. - 开源 - CSDN技术中心 以前使用'网络蜘蛛'抓取了不少文件.但后来发现这些文件中有很多是内容完全相同的,如何只保留一份内容相同的文件而把其它相同的去除掉哪?我使用了linux shell脚本处理这个问题: 以前使用'网络蜘蛛'抓取了不少文件.但后来发现这些文件中有很多是内容完全相同的,如何只保留一份内容相同的文件而把其它相同的去除掉哪?我使用了linux shell脚本处理这个问题: for file in * #遍历文件 do if ! [ -f "$file" ] #如果文件存在的话,因为有的文件可能被剔除了. then echo $file" not exist" ... |
|
Last Updated ( Saturday, 15 March 2008 13:26 )
|
|
Read more...
|
|
技术文章 -
LINUX
|
|
Written by Administrator
|
|
Wednesday, 31 December 2008 13:20 |
|
Bash最常见的激活模式
Bash最常见的激活模式是交互式和非交互式:
1.交互式激活
指其标准输入和输出都连接在终端上.又分为三种类型:login,非login,posix 以及受限的shell.
确定一个shell是否是交互式的可以通过检测$PS1环境变量.
(1) 当Bash作为login shell被激活时,它将依次读取并执行以下文件:
/etc/profile,~/.bash_profile,~/.bash_login,~/.profile
使用--noprofile选项激活Bash可以禁止其读任何初始化文件 在退出时执行 ~/.bash_logout 文件
(2) 当Bash作为非login shell被激活时,它将读取并执行~/.bashrc
使用--norc选项激活Bash可以禁止执行任何初始化文件,使用 --rcfile file可以指定执行的初始化文件.
(3) 当Bash作为posix模式被激活时,它将先检查$ENV变量是否定义.
若定义,Bash读取并执行有$ENV变量扩展而得到的文件,否则不再 执行任何初始化文件。
(4) 当Bash作为受限模式被激活时,它除了禁止某些操作以外,其他行为于其他模式相同.受限操作有:改变目录,修改$SHELL和$PATH变量, 运行exec,以绝对路径运行程序以及使用重定向.Bash 1.x中不包含 受限模式.
2.非交互式激活
主要用来运行Shell脚本.启动后,Bash检查$BASH_ENV变量,若定义, 这执行该变量指定文件中包含的命令.
Bash 的激活选项
-c string 该选项表明string中包含了一条命令.如 bash -c ls ~
-i 使Bash以交互式方式运行
-r 使Bash以受限方式运行
--login 使Bash以登录Shell方式运行
--posix 使Bash遵循POSIX标准
--verbose 使Bash显示所有其读入的输入行
--help 打印Bash的使用信息
--version 打印版本信息
--noprofile
--norc
--rcfile file |
|
技术文章 -
dotnet
|
|
Written by Administrator
|
|
Friday, 09 January 2009 10:51 |
C++数据类型与C#对应关系
C++ 输入输出 C#
==================================
char chr[255] O StringBuilder
KCA_DIR I int
LPCSTR I string
int I int
LPSTR O StringBuilder
int* O out int
DWORD I int
DWORD* O out int
BOOL I bool
Rc_DBMgr I IntPtr
long* O out long |
|
API与C#的数据类型对应关系表
|
| API数据类型 |
类型描述 |
C#类型 |
API数据类型 |
类型描述 |
C#类型 |
| WORD |
16位无符号整数 |
ushort |
CHAR |
字符 |
char |
| LONG |
32位无符号整数 |
int |
DWORDLONG |
64位长整数 |
long |
| DWORD |
32位无符号整数 |
uint |
HDC |
设备描述表句柄 |
int |
| HANDLE |
句柄,32位整数 |
int |
HGDIOBJ |
GDI对象句柄 |
int |
| UINT |
32位无符号整数 |
uint |
HINSTANCE |
实例句柄 |
int |
| BOOL |
32位布尔型整数 |
bool |
HWM |
窗口句柄 |
int |
| LPSTR |
指向字符的32位指针 |
string |
HPARAM |
32位消息参数 |
int |
| LPCSTR |
指向常字符的32位指针 |
String |
LPARAM |
32位消息参数 |
int |
| BYTE |
字节 |
byte |
WPARAM |
32位消息参数 |
int |
|
Wtypes.h 中的非托管类型
|
非托管 C 语言类型
|
托管类名
|
说明
|
| HANDLE |
void* |
System.IntPtr |
32 位 |
| BYTE |
unsigned char |
System.Byte |
8 位 |
| SHORT |
short |
System.Int16 |
16 位 |
| WORD |
unsigned short |
System.UInt16 |
16 位 |
| INT |
int |
System.Int32 |
32 位 |
| UINT |
unsigned int |
System.UInt32 |
32 位 |
| LONG |
long |
System.Int32 |
32 位 |
| BOOL |
long |
System.Int32 |
32 位 |
| DWORD |
unsigned long |
System.UInt32 |
32 位 |
| ULONG |
unsigned long |
System.UInt32 |
32 位 |
| CHAR |
char |
System.Char |
用 ANSI 修饰。 |
| LPSTR |
char* |
System.String 或 System.StringBuilder |
用 ANSI 修饰。 |
| LPCSTR |
Const char* |
System.String 或 System.StringBuilder |
用 ANSI 修饰。 |
| LPWSTR |
wchar_t* |
System.String 或 System.StringBuilder |
用 Unicode 修饰。 |
| LPCWSTR |
Const wchar_t* |
System.String 或 System.StringBuilder |
用 Unicode 修饰。 |
| FLOAT |
Float |
System.Single |
32 位 |
| DOUBLE |
Double |
System.Double |
64 位 |
|
|
技术文章 -
php
|
|
Written by Administrator
|
|
Monday, 16 February 2009 01:18 |
|
摘要:作为程序员,在一般情况下入职前总要经过面试。如果你是一个面试官,你会问PHP面试者什么问题呢?如果你希望找到一个优秀的PHP程序员,你又将如何去做呢?你又是否知道一个优秀的PHP程序员至少应该了解些什么呢?你或许会从本文中得到答案。
我在SitePoint做面试官的时候一定会问的问题是:你认为PHP代码的优劣体现在哪里?因为这个问题可以让我大体知道应聘者是哪种类型的程序员,而不是单纯地考察他对PHP函数的掌握程度(这一点Zend的PHP认证做得不错,雅虎的PHP程序员面试题也属于此类)。重要的是,这个问题可以让我知道应聘者是否经历过这样的事情——从一个懒散程序员手中接过一段凌乱的代码进行重用,或者要帮助团队中的其他成员来处理这类事情。
诚然,对于这个问题我自己也没有一个满意的答案,不过我知道哪些答案是我想听到的:
优秀的PHP代码应该是结构化的。大段的代码应该被分割整理成一个个函数或方法,而那些不起眼的小段代码则应该加上注释,以便日后清楚它们的用途。而且应该尽可能地把前台代码如HTML、CSS、Javascript等从程序中分离出来。PHP的面向对象编程特性可以很好地帮助程序员将代码整理有序。
优秀的PHP代码应该是规范化的。无论是为变量名和函数名设定命名规则,还是对一些会重复使用的过程如数据库操作和错误处理进行标准化,抑或是简单到规定好代码是怎样缩进的,这些规范化都可以让代码的可读性大大提高。
优良的PHP代码应该是自适应的。PHP有许多特性如magic quotes和short tags,这些特性的打开和关闭会影响到程序的运行。所以,一个好的程序员应该在他的代码中加入适当的语句来使程序能够根据环境进行调整。
优良的PHP代码应该是安全的。虽然PHP是一种高效、灵活的语言,没有固定的框架,但却把安全问题留给了程序员们。对潜在安全漏洞的深刻理解,如跨站脚本攻击(XSS)、跨站请求伪造(CSRF)、代码注入漏洞、字符编码循环漏洞等,对于今天的当应聘者在回答这些问题的时候,我就能清楚地知道是否该录用他。当然,有时程序员并不能很好地阐明这个问题,这时我们会让他们做一些PHP测试。测试中的许多问题表面上看起来非常简单,但这也给了应聘者们一个展现自我的机会,因为只要观察得仔细,就能找出问题。 下面这一小段“劣质”的PHP代码是一道简化了的测试题。这种问题就像在问:你该怎样优化这段代码?
这段代码的主要问题在于它把用户提交的数据直接显示到了网页上,从而产生XSS漏洞。其实有很多方法可以填补这个漏洞。那么,什么代码是我们想要的呢?
这是最低要求。XSS漏洞用htmlspecialchars函数填补了,从而屏蔽了非法字符。
能写出这样代码的人应该是我想要录用的人了:
可惜的是,能给出这样让人满意答复的程序员少之又少。我们花了3个月的时间才招聘到让我们满意的程序员. 那么,你会怎样回答文章开头提出的问题呢?你认为PHP代码的缺点体现在哪里?你认为一个PHP程序员还应具有哪些品质?
|
|
|
|
|
|
|
Page 1 of 4 |
|
|
Who's Online
We have 252 guests online
|