免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2374 | 回复: 0
打印 上一主题 下一主题

笔记2006-10-08->2006-12-11 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-12 10:07 |只看该作者 |倒序浏览

默认为false的confirm窗口2006-12-11 09:51:23 bailing
// 感谢csdn网友 梅花雨 提供这段代码
/*@cc_on @*/
/*@if (@_win32 && @_jscript_version>5)
function window.confirm(str)
{
    execScript("n = msgbox('"+ str +"', 257)", "vbscript");
    return(n == 1);
}
@end @*/
php和命令行交互 - php目录下的dll解释2006-12-07 09:43:22 bailing
命令行运行php , 以下代码即可
define('NEWSTDIN', fopen("php://stdin", "r"));
trim(fgets(NEWSTDIN, 256));
把php目录下的dll都拷到apache的bin目录下,效果等同拷到windows系统目录下。php.ini也是如此。
php目录下的dll
ssleay32.dll和libeay32.dll是openssl所用的
fdftk.dll 生成/解释fdf文件
fribidi.dll 集成了几乎全部的运算规则 "Unicode Bidirectional Algorithm, Working Draft Unicode Technical Report #9"
   双向
gds32.dll 这是interbase使用的一个dll
ntwdblib.dll 似乎是使用datawindows的一个驱动,pb执行环境必须。可能是sql server驱动之一。
libswish-e.dll 文件索引建立工具,开源
安装subversion手记2006-11-30 11:47:19 bailing
winxp + apache 2.0.49
下载地址
http://subversion.tigris.org/project_packages.html#binary-packages
http://dog.xmu.edu.cn/modules.php?op=modload&name=News&file=article&sid=246&mode=thread&order=0&thold=0
http://www.iusesvn.com/bbs/viewthread.php?tid=6
Subversion的目录结构是很自由的,所有的规划都必须是你自己规定,考虑一个subversion仓库的目录树,你
可以把任何一个目录认定为一个项目,你可以只checkout这个目录下的所有文件进行编码,跟CVS不同,CVS显
式指定一个个module。所以你可以在一个仓库内保存多个项目,也可以一个仓库保存一个项目而使用多个仓库
。我个人比较喜欢第二种,因为Subversion的每次commit都会导致整个仓库版本号增加一个,会使得多个项目
的版本号出现断层。而且如果多个项目参与人不同,就必须使用apache2进行细粒度的权限控制,不是太方便。
一个仓库一个项目,显得更优雅一些。
以下是我研究出的仓库规划。
在server端,新建一个目录用来存放所有的仓库。比如c:\svnrepos。然后在这个目录下建立每个项目独立的仓
库。
svnadmin create "c:\svnrepos\rolex"
svnadmin create "c:\svnrepos\omega"
使用 svnserve -d -r "c:\svnrepos" 启动。这样你的项目的url是:
svn://IP/rolex
svn://IP/omega
在客户端新建一个目录,作为import的内容,比如c:\svnimport\rolex,然后在里面建立
branches,tags,trunk子目录,把你需要源代码管理的项目放入trunk目录,注意删除垃圾文件。在
c:\svnimport\rolex上点击Import...,选择url为svn://IP/rolex,导入。你可以使用仓库浏览器查看导入的
效果。
需要工作时,新建一个目录比如c:\svnclient\rolex\trunk,然后在trunk上checkout出svn://IP/rolex/trunk
上的内容。
php调windows系统命令取局域网内的MAC地址2006-11-29 16:44:51 bailing
先来个ping 1-255.
然后,arp -a 1-255
娃哈哈。
php bug? php的exit函数和apache的mod_include混用导致的问题2006-11-28 16:09:04 bailing
请求一个页面,然后疯狂地自动重新请求这个页面本身。
去掉exit/die后,好了。
不影响404处理里的exit.
不影响include包含的文件里的exit.
链接被重置问题
404调用php文件处理时。
【转贴】版本命名规则2006-11-28 16:08:13 bailing
alpha/ beta/ gama|rc/ release/ stable
alpha 版:開發實驗版,意味極不穩定,並且暗示將來的發展可能是極劇烈的變動。通常這樣的版本會為了「便於修正錯誤」的目的而釋放出來,
邏輯大概是:丟出一個明知有問題的東西,等著聽取使用者的問題回報(或者埋怨),然後開發人員再根據這些回報逐一去修正bug。
  beta 版:已修正alpha 版階段的錯誤,在運作功能上大抵無誤,這個版本暗示使用者可以認真考慮正式採用,但也要有將來可能必須自行安裝
補強檔的心理準備。
  gama 版:也叫rc 版,就是候選正式版的意思。
  release 版:正式版。
  stable 版: 正式版的再進化版,通常在特殊必須補強正式版的情況下,會有這樣的追加版本出現。
Testing|Experimental|Alpha|Beta|Stable 状况:试验的|根据实验的|测试一版|测试二版|稳定的...Stable (状况:稳定的)
转 在Windows环境下进行PHP扩展的开发 2006-11-23 15:43:42 bailing
F:\www\php-src\ext>msdev uploadprogress\uploadprogress.dsp /MAKE "uploadprogress - Win32 Release_TS"
msdev aaa\aaa.dsp /MAKE "aaa - Win32 Release_TS"
msdev ffmpeg-php\ffmpeg-php.dsp /MAKE "ffmpeg-php - Win32 Release_TS"
/*
* 版权归PHPSalon.com所有,未经许可,严禁任何形式转载
*
* Author: Wenlong Wu
*/
一、准备工作:
开发环境:要编译 PHP 你需要 Microsoft 开发环境。推荐使用 Microsoft Visuaul C++ 6.0,当然 Microsoft Visuaul C++.NET也可以。
其他工具:如果使用自动生成 PHP 扩展代码的话,还需要 Cygwin 运行环境,要安装bison、flex、awk等工具。
PHP 源代码:可以从PHP官方网站下载最新发行版本的源代码的打包文件或者快照,当然也可以通过匿名 CVS 得到最新的开发版本,
本文假定PHP源代码包存放在  d:\ezapp\php-4.3.7 目录下。
编译好开发PHP扩展时所需的文件,如php4ts.lib、php.exe等,当然也可从已编译好的包里拷贝一份。
二、生成框架:
      PHP 源代码包里提供了一个自动生成 PHP 扩展的源代码框架,可以加快你的开发进度。
      进入命令行模式,执行如下命令(本文假定开发一个名为 myext 的扩展):
      cd d:\ezapp\php-4.3.7\ext
      ..\Release_TS\php-cli.exe ext_skel_win32.php --extname=myext
      执行完以上命令后,会在 ext 目录下自动建立一个名为 myext 的目录,里面的文件就是扩展的源代码的完整框架,
   现在就可以编译该扩展了。
      msdev myext\myext.dsp /MAKE "myext - Win32 Release_TS"
      编译完成后,会在 d:\ezapp\php-4.3.7\Release_TS 目录下生成一个 myext.dll 文件。拷贝这个文件到你的PHP目录下了
   (如:c:\php\extension),并在 php.ini 中加入 extension=myext.dll ,然后重起WEB服务器,现在打开浏览器输入
   http://localhost/myext.php 浏览一下结果(假定已将myext.php 文件拷到WEB根目录下)。
      该扩展目前仅包含一个名 confirm_extname_compiled 函数。
三、加入自己的代码:
      这里以加入一个带参数的 hello 函数,操作步骤如下:
打开 php_myext.h 文件,增加一条申明语句,如图一所示:
(图一)
打开 myext.c 文件,加入自定义的 hello 函数,如图二、三所示:
(图二)
(图三)
重新编译 myext
msdev myext\myext.dsp /MAKE "myext - Win32 Release_TS"
拷贝 myext.dll 文件到你的PHP扩展目录下(如:c:\php\extension),并重起WEB服务器。
新建一个 hello.php 文件,内容如下,并打开浏览器运行
屏幕上将会输出:Hello EZ Development Team
四、后记
本文仅是一篇入门级文章,旨在带你进入 PHP 扩展开发的行列,本人也将陆续写些高级开发的文章,敬请期待。
gmail的js技术2006-11-23 10:41:53 bailing
点击mailto:的地址,它弹出的是一个写信的页面。
自动探测服务器的连接情况。
多层数据同一页显示的效率设计2006-11-22 13:26:06 bailing
效率问题,如果查出记录再按记录查子记录,那么如果一页列15条的话,就要查16次数据库。
预编索引解决法。
新增一表,存放 页码 ,每页列出数目 , 此页包含的子记录ID集合。
字段3个
p limit ids
此方法适用于更新并不频繁的数据表。更新的频率小于读取的频率,比率超过1:3就应该是比较有效率的。
ftp的限制列表数 Truncated listings 缩减了的列表2006-11-21 17:09:13 bailing
列表数目有限制,是服务器的限制。
Truncated listings
If you connect to a server and you see 266-Options: -1 or 226 Output truncated to 2000 matches,
it means the server cannot display more than 2000 items in file listings. This is a limitation of the server and not CuteFTP.
226-Options: -a -l
226 Output truncated to 8000 matches
php.ini详细解释 - 5.22006-11-20 11:48:03 bailing
填空,哈哈. \n";
foreach( $matches[1] as $line )
{
if( preg_match("#^[ ]*\[.+\][ ]*$#i",$line) )
{
  $str .="".$line."\n";  
}else
  $str .="".$line." 空缺  建议 \n";
}
$str .="\n";
echo($str);
?>
body{font:12px verdana;}
.tableBorder
{
    BORDER: 0px #5C609E solid;  
BORDER-COLLAPSE:collapse;
    BACKGROUND-COLOR: #FFFFFF;
    FONT: 12PX;
}
.tableBorder  TD{ BACKGROUND-COLOR:#FEFEFE; PADDING-LEFT: 15px; border-bottom:1px dotted #E0E0E0; }
.tableBorder  TH{ PADDING-LEFT: 15px; border-bottom:1px dotted #E0E0E0; text-align: left; background: #DDD}
.tableBorder caption
{
border-bottom:2px solid #E0E0E0;
background-color:#EFEFEF;
border-width:4px;
border-color:#FFF;
    COLOR: #000;
    FONT-SIZE: 12PX;
    FONT-WEIGHT:BOLD;
PADDING: 5px;
}

mysql大小写敏感2006-11-14 13:52:08 bailing
---------------------
在 BLOB 和 TEXT 类型之间的唯一差别就是,对 BLOB 值是以字母大小写敏感的方式进行排序和比较的,
而对 TEXT 值以忽略字母大小写方式进行排序和比较。换句话说,TEXT 是一个忽略字母大小写的 BLOB。
---
用upper或lower函数
---
CHAR 和 VARCHAR 列值以省略字母大小写的方式进行排序和比较,除非在表建立时 BINARY 属性被指定。BINARY 属性意味着,
该列值根据 MySQL 服务器正在运行的机器的 ASCII 表顺序进行字母大小写敏感的方式排序和比较。BINARY 并不影响该列如何被存储和检索。
如果字段是char/varchar类型并且申明为binary的,那么大小写敏感。
所以查询ascii字符匹配的时候只好
"upper(字段) like'%".strtoupper(var)."%'"
注意不能对中文这么用,中文会被分解成
-----
列名与列的别名在所有的情况下均是忽略大小写的。表的别名是区分大小写的。
如果记忆数据库和表名的字母大小写有困难,建议采用一个一致一约定,例如总是以小写字母创建数据库和表。
避免这个问题的另一个办法就是以 -O lower_case_table_names=1 参数启动 mysqld。缺省地在 Windows 中这个选项为 1 ,在 Unix 中为 0。
增强的implode2006-11-13 15:31:16 bailing
把key也implode进来
function Pimplode( $spliter="&" , $arr , $encode=true , $filterArr = array()  )
{
foreach( $arr as $gkey=>$gv)
{
  if (!in_array( $gkey , $filterArr ))
  {
   if ($encode)
   {
    $getstring .= urlencode($gkey)."=".urlencode($gv).$spliter;
   }
   else
   {
     $getstring .= $gkey."=".$gv."&";
   }
  }
}
$getstring = substr($getstring , 0 , -1);
return $getstring;
}
apache mod_include配置2006-11-10 10:29:17 bailing
打开mod_include so
增加mime-type映射
AddType application/x-httpd-php .php
Action application/x-httpd-php "f:/www/php/php.exe"
AddType application/x-httpd-php .phtml
AddOutputFilter INCLUDES .phtml
AddOutputFilter INCLUDES .html
里加上
Options +Includes
补上默认文件 index.phtml
DirectoryIndex  index.html index.phtml index.php default.html default.php
ctrl+鼠标滚轮,调节chm文档的字体大小2006-11-09 14:15:14 bailing
ctrl+鼠标滚轮,调节chm文档的字体大小,不知道调节编码的是什么快捷键。
死都不换行的css2006-11-08 17:45:41 bailing
1.
white-space:nowrap; overflow: hidden; width: 17em !important ; width: 18em;
注意: white-space不支持td,th等。
2.
用.fixTable{ table-layout: fixed; overflow:hidden; }加上nobr标签实现隐藏
404处理的重要问题,一定要在404脚本的开头加上header("HTTP/1.1 200 OK")2006-11-02 15:26:14 bailing
如果是页面自动生成是用404做的,一定要在404脚本的开头加上header("HTTP/1.1 200 OK");
否则google不会收录你的页面。
当然,确实是非法请求,那么写上 header("HTTP/1.1 404 Not Found")
利用304缓存php页面的函数2006-11-02 15:15:13 bailing
/*
利用304缓存php页面的函数 , (axgle写的函数明显的逻辑错误)
bailing
2006-11-02
*/
set_cache_limit(20);
echo date("Y-m-d H:i:s");
function set_cache_limit($second=1)
{
$second=intval($second);
if($second==0) {
  return;
}

$id = $_SERVER['HTTP_IF_NONE_MATCH'];
$etag=time()."||".base64_encode( $_SERVER['REQUEST_URI'] );
if( $id=='' )
{//无tag,发送新tag
  header("Etag:$etag",true,200);
  return;
}
list( $time , $uri )=explode ( "||" , $id );
if($time
七奇八怪的js错误之一2006-10-26 15:28:32 bailing
没有alert程序就不能执行下去?
-------------------
document.scripts['ga'].src=adjs;
alert(adjs);
可以使google广告显示出来。
去掉alert(adjs);
那么就会弹出一个错误“internet explorer无法打开... , 已终止操作”
如果更换地址为本地的一个js文件,里面写上调试输出,可以在点确定后,看到结果。
换为远程的google的js则不会看到结果。
从google广告的js里脱出来的奇怪代码
(function()
{
function A(b){alert('')}
function E(){alert('')}
E();A();
}
)()
[正则的负向预查]Compilation failed: PCRE does not support \L, \l, \N, \U, or \u2006-10-26 13:07:58 bailing
[\u4e00-\u9fa5] , \u , pcre的正则不支持。
ANSI:汉字区的内码范围高字节从B0-F7,低字节从A1-FE
Unicode:汉字的Unicode编码范围为\u4E00-\u9FA5 \uF900-\uFA2D,如果不在这个范围内就不是汉字了.
奇怪的结果
代码
$data = "123abcDx=123";
$reg = "#.(?![0-9a-zA-Z])#" ;
preg_match_all($reg,$data,$matches);
prt($matches);
出来的结果是
Array
(
    [0] => Array
        (
            [0] => x
            [1] => 3
        )
)
用推来实现主从站数据同步更新2006-10-25 11:11:41 bailing
适用于对同步时间要求十分宽松的环境(>=1天)
主站:1
子站:N
主站推设定接口,此接口处理子站注册身份,注册限定每域名/多少子站,以及每ip多少子站,以及推确认。
定时推送,查询子站表,按子站注册时发来的确认key ,推送数据到子站。
子站接收推数据接口 ,推设定,设定推的确认key,注册身份。
更新本地的数据。
这样就实现了自动同步,而同步的起源就是需要能在主站设定一个定时脚本。
winbinder尝鲜2006-10-24 13:54:19 bailing
www.winbinder.org.
这是个用php代码开发winForm的IDE。
可惜不支持编译运行,事实上执行机制还是要调php来解释。无法打包成一个独立的可执行文件。
同php-gtk
唉...
activeX控件的编写2006-10-18 09:03:08 bailing
打包工具
http://download.microsoft.com/download/platformsdk/cab/2.0/w98nt42kmexp/en-us/Cabsdk.exe
文章
http://www.disound.com/zblog/post/335.html
寻找一个支持配置文件批量下载的工具2006-10-17 16:36:18 bailing
php生成配置文件,让工具来下载,好处是可以断点续传。
找那个不到。。。。
wget
session_start() 在greenbrowser里的死锁问题2006-10-16 09:56:38 bailing
session_start() 在greenbrowser里的死锁问题
不能同时打开2个页面.只有等第一个页面结束后,第二个页面才能打开.
iis php exec unable to fork 怎么办2006-10-13 16:20:39 bailing
手册上有说明
shell_exec函数下面的解说
Got the error "Unable to execute..." when trying to run an external program with shell_exec under Windows XP,
IIS 5, php 4.3.7  Solved by giving the IIS user (IUSR_...) execution privileges on the system file
%systemroot%\system32\cmd.exe  This should be used carefully because may represent a server's security hole.
给cmd.exe赋予IUSER_.......用户可以读运行的权限,问题解决。
赋予权限
cacls c:\windows\system32\cmd.exe  /e /c /p IUSER_.....:r
撤销权限
cacls c:\windows\system32\cmd.exe  /e /c /r IUSER_.....
iis php 无法找到该页 的错误解决2006-10-12 12:35:12 bailing
在2003server的iis上装Php,下的zip包.
都配好了,发现访问php文件出现 "无法找到该页"的错误.
拷,东搞搞,西搞搞.依然如故.
上google搜发现了这个...
然后在“Internet 服务管理器”左边的“WEB服务扩展”中设置ISAPI 扩展允许,Active Server Pages 允许
搞定...
这可能是2003默认设置过于严格的问题.
php自定义错误显示2006-10-11 15:21:20 bailing
@取消了错误显示.
ini_set('track_errors',1);
系统就会设置错误信息到$php_errormsg这个变量里.
$r=@rename (a , a);
if(!$r)
echo( "错误($php_errormsg)" );
editplus 捕获输出 系统找不到指定的文件2006-10-11 13:41:40 bailing
取消捕获输出后,可以执行工具.
安装汉化版后,发现了一个laucher.exe赫然在目.
想起来昨天卡巴扫了趟毒,删掉了被污染的laucher.exe.
拷回来.ok.天下太平
[摘]软件: 网页设计师必须有的15个Firefox插件2006-10-11 08:58:39 bailing
摘自:solidot.org
14,15是我补充的.
matrix 写道 "如果你是一位喜欢使用Firefox的网页设计师,为了让工作完成的更好可以使用这里提供的13个插件。
1.HTML Validator,检查源代码是否有错
2.FireFTP,免费安全的FTP客户端
3.Professor X,预览网页头
4.NikkelWHOIS,
5.IE Tab,在IE上进行测试
6.FireBug,调试代码
7.Codetech,编辑代码
8.Server Switcher,实时服务调试
9.SEO for Firefox,Google和Yahoo!相关的搜索信息,如PR,Age,links,Alexa rank,WHOIS等
10.Yet Another Window Resizer ,调整大小
11.AdSense Preview ,预览网页上的Google AdSense广告
12.Screen grab,屏幕截图
13.Server Spy"
14.tab mix plus 标签浏览
15.drag de go 拖拽浏览(手势->链接)
16.Stop Autoplay 禁止背景音乐
basename的bug2006-10-09 14:27:54 bailing
正常输出 sss资源.chm
echo(basename('E:\\tech\\sss资源.chm'));
只输出  .chm
echot(basename('E:\\tech\\资源.chm'));
-----------------------
在linux服务器上,不知道为什么不能basename取得
d:\duote\duote\1\fds.exe这种文件名
只好写一个替代的
function basename2($file)
{
$file = str_replace("\\\\","/",$file);
$file = str_replace("//","/",$file);
//echo $file;
$pos = strrpos($file,"/");
if(false===$pos)
  $pos = strrpos($file,"\\");
return substr($file , $pos+1);
}
寻找大量数据导入库的高效办法2006-10-09 09:27:42 bailing
一条条insert实在太耗时。
肯定有批量导入的急速办法
批量更新的办法
对where中的字段做索引
结果速度提高了100倍.
usb接口2006-11-22 09:14:30 bailing
usb接口应该放在机箱顶部,一个平放的凹槽,U盘插入后,有盖可盖上。对于体积大的usb设备,接口可翻转向上。
由于体积大的设备都是用usb连线。所以,无所谓。这种设计方便插拔,以及
待解决的疑问2006-12-06 09:50:17 bailing
Q:gdbm是什么格式
A:gdbm is a database indexing library replacement for the traditional 'dbm' and'ndbm' libraries.
gdbm is useful for those who need to write C applications and need access to a simple and efficient database.
DBM: UNIX系统的数据库,使用hash保存非结构化数据。它不支持SQL。
GDBM:DBM的GNU版本。
dbm、gdbm适合存储静态的,索引化的数据结构。它在创建数据项时非常慢,但检索数据项时非常快。
Q:php中连接数据库有多种函数,它们分别能连哪些数据库。
A:dba_FUNCTIONS, dbx_FUNCTIONS , dbase_FUNCTIONS , DBM Functions [deprecated] , DB++ Functions
[dbx_FUNCTIONS]
FrontBase (available from PHP 4.1.0).
Microsoft SQL Server
MySQL
ODBC
PostgreSQL
Sybase-CT (available from PHP 4.2.0).
Oracle (oci8) (available from PHP 4.3.0).
SQLite (CVS only).
[dba_FUNCTIONS]
dbm
ndbm
gdbm
db2db3
db4
cdb
cdb_make
flatfile
inifile
qdbm


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/14107/showart_213825.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP