<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>寂静的深海 &#187; Function</title>
	<atom:link href="http://www.deepseath.com/?feed=rss2&#038;tag=function" rel="self" type="application/rss+xml" />
	<link>http://www.deepseath.com</link>
	<description></description>
	<lastBuildDate>Mon, 29 Jan 2024 09:55:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>HTML中的文本区textarea发送换行的测试</title>
		<link>http://www.deepseath.com/?p=863</link>
		<comments>http://www.deepseath.com/?p=863#comments</comments>
		<pubDate>Fri, 01 Jul 2011 17:55:33 +0000</pubDate>
		<dc:creator>Deepseath</dc:creator>
				<category><![CDATA[日积月累]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[开发]]></category>

		<guid isPermaLink="false">http://www.deepseath.com/?p=863</guid>
		<description><![CDATA[一直都在想在HTML前端页面表单的文本区textarea输入换行的时候，服务器接收到的这个文本区的数据是什么样的。 都知道不同的操作系统对于换行的表达不一样，Windows的换行符号是“\r\n”、类Unix系统换行符号是“\n”、而Mac OS换行符号则是“\r”（Mac OS 9以前是“\r”，以后就是“\n”了） 我其实就是想了解一下： 如果客户端是Win系统，服务端是类Unix系统，那么在客户端提交的表单内的换行符号是什么？ 反之呢？ 我开始想应该是同服务器无关，同客户端有关系的，根据客户端的系统进行显示的。 今天在mac os（安装在虚拟机上的）上测试了一下，发现结果跟想像的是不同的。 貌似与服务和客户端都没关系，通过表单发送的数据换行符号就是“\r\n”（CRLF） 感觉真的很奇怪~~或许是我困了？搞糊涂了？疑惑中…… 话说服务器端容易判断，可以根据操作系统判断，也可以使用PHP自带的一个常量（PHP_EOL，它会根据服务器操作系统输出“\r\n”或“\n”）进行判断。 其实这个没什么大不了的，只是想刨根问底的了解一下而已。 在开发中，我实际经常将“\r\n”做为固定的换行符，而不去考虑服务器操作系统是什么，在所有涉及此类操作的时候都认定换行符为“\r\n”。 对于用户发送过来的数据，也会格式化一下换行符号变成“\r\n”。 自己写了一个函数去处理这个操作，很简单，无非是利用字符替换函数将“\r\n”、“\r”、“\n”，先替换成一个自定义的字符串（需要复杂一些，理由你懂得），然后再将这个自定义字符串替换成“\r\n”， 其实这样还不完善，有可能会导致明明是一个换行符但给格式化成两个（或以上）了，不过，此类情况一般都是非正常的输入，很有可能是非法伪造的数据，因此不用理会。 function format_linebreak($string,$newlb = "\r\n"){ if ( is_array($string) ) { foreach ( $string AS $key=>$val ) { $string[$key] = format_linebreak($val,$newlb); } } else { $sysnbstr = ''; $string = str_replace($sysnbstr,'',$string); if ( strpos($string,"\r\n") !== false ) { [...]]]></description>
		<wfw:commentRss>http://www.deepseath.com/?feed=rss2&#038;p=863</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ISBN的校验</title>
		<link>http://www.deepseath.com/?p=791</link>
		<comments>http://www.deepseath.com/?p=791#comments</comments>
		<pubDate>Mon, 27 Sep 2010 16:29:58 +0000</pubDate>
		<dc:creator>Deepseath</dc:creator>
				<category><![CDATA[实验室]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[ISBN]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[函数]]></category>
		<category><![CDATA[算法]]></category>

		<guid isPermaLink="false">http://www.deepseath.com/?p=791</guid>
		<description><![CDATA[维基百科提供的ISBN码校验算法： 校验码的计算方法（10码） 假设某国际标准书号号码前9位是：7-309-04547 计算加权和S：S = 7×10＋3×9＋0×8＋9×7＋0×6＋4×5＋5×4＋4×3＋7×2 = 226 计算S÷11的余数M：M = 226 mod 11 = 6 计算11 – M 的差N：N = 11 ? 6 = 5 如果N = 10，校验码是字母”X” 如果N = 11，校验码是数字”0&#8243; 如果N为其他数字，校验码是数字N 所以，本书的校验码是5；如果用户提供的ISBN码是7-309-04547-6，那么校验失败 校验码的计算方法（13码） 假设某国际标准书号号码前12位是：978-986-181-728 计算加权和S：S = (9×1)+(7×3)+(8×1)+(9×3)+(8×1)+(6×3)+(1×1)+(8×3)+(1×1)+(7×3)+(2×1)+(8×3) = 164 计算S÷10的余数M：M = 164 mod 10 = 4 计算10 – M 的差N：N = 10 ? 4 [...]]]></description>
		<wfw:commentRss>http://www.deepseath.com/?feed=rss2&#038;p=791</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>看到一个人的博客想写的……</title>
		<link>http://www.deepseath.com/?p=581</link>
		<comments>http://www.deepseath.com/?p=581#comments</comments>
		<pubDate>Tue, 19 Jan 2010 14:34:25 +0000</pubDate>
		<dc:creator>Deepseath</dc:creator>
				<category><![CDATA[程序人生]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[代码]]></category>

		<guid isPermaLink="false">http://www.deepseath.com/?p=581</guid>
		<description><![CDATA[先说一段引子吧，我特喜欢用Opera，虽然还有一些不尽如人意的地方，但越来越喜欢上这个浏览器了。最爱用的功能就是RSS（Opera叫做网摘订阅功能），我订阅了n多的RSS列表，呵呵，大多数都是技术类的，毕竟现在信息量太大找也不好找，而且有的时候忙着也没空满网络乱翻，订阅这个时不时阅读一下挺好的^_^ 话说，今儿读到一篇来自博客园的某位PHPer看样子应该是新注册博客园的，发了个博文具体名字不写了，反正是关于求3值最大数的函数的，不知道是自己写的还是转载的，反正函数是： function sum_3($a,$b,$c){ $a&#62;$b?$max=$a:$max=$b; return $max&#62;$c?$max:$c; } 虽然是小函数，可这样的写法实在…… 为什么不这样写？ function sum_3($a,$b,$c){ return max($a,$b,$c); } 即便不用内置的max函数，也可以这样： function sum_3($a,$b,$c){ return $c &#62;= ($tmp = ($a &#62;= $b) ? $a : $b) ? $c : $tmp; } 就我自身能力而言，就写代码来说，个人倾向于，尽最大可能使用内置函数避免走弯路也避免出bug。 闲来无事胡诌一番，实在是此人的博客无法评论，不吐不快于是自己发泄到自己的博客上来了，呵呵~~~]]></description>
		<wfw:commentRss>http://www.deepseath.com/?feed=rss2&#038;p=581</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows2003安装DNS补丁失败时的解决。</title>
		<link>http://www.deepseath.com/?p=368</link>
		<comments>http://www.deepseath.com/?p=368#comments</comments>
		<pubDate>Fri, 24 Oct 2008 06:31:13 +0000</pubDate>
		<dc:creator>Deepseath</dc:creator>
				<category><![CDATA[日积月累]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[REG]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[补丁]]></category>

		<guid isPermaLink="false">http://www.deepseath.com/?p=368</guid>
		<description><![CDATA[今天打几个Windows2003的几个补丁，其中一个其实是去年的了是DNS的补丁（KB941672），另一个是刚刚被爆的一个补丁（KB951746）是10月新发现的。这两个怎么装怎么重起都不成功，因为是借助第三方软件进行安装的，所以也看不到明显的错误提示，于是进入系统目录查找日志，进入C:\windows目录找到KB941672.log和KB951746.log日志打开，发现错误信息基本是类似的，如下： KB941672.log [KB941672.log] 1.703: ========================================================== 1.703: (*****) (local) 1.703: *:\***\update\update.exe (version 6.3.4.1) 1.703: Hotfix started with following command line: /passive /norestart 1.703: In Function GetBuildType, line 1170, RegQueryValueEx failed with error 0&#215;2 1.734: dns is Present 1.734: SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\OC Manager\Subcomponents\dns is Not Equal To Specified Value 1.734: Second Condition in PreReq.CheckRegistry.Section Failed 1.734: Condition Check for [...]]]></description>
		<wfw:commentRss>http://www.deepseath.com/?feed=rss2&#038;p=368</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>[转]用phpxref生成PHP项目的交叉参考文档</title>
		<link>http://www.deepseath.com/?p=348</link>
		<comments>http://www.deepseath.com/?p=348#comments</comments>
		<pubDate>Mon, 20 Oct 2008 01:53:05 +0000</pubDate>
		<dc:creator>Deepseath</dc:creator>
				<category><![CDATA[日积月累]]></category>
		<category><![CDATA[bat]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[浏览器]]></category>

		<guid isPermaLink="false">http://www.deepseath.com/?p=348</guid>
		<description><![CDATA[PHPXref －PHP Cross Referencing Documentation Generator。通过遍历项目所有的文件为PHP项目生成文档的工具，生成的文档格式支持html以及gz方式的压缩文件，同时在文档中包含项目中设计到的基类、方法、函数、变量、注释、甚至涉及到的时间表结构甚至相互include、require到的文件等等，使用中我还发现它对smarty的模板文件的支持也很好。而注释则支持PHPDocumentor风格的注释，同时支持基于javascript的客户端的搜索。phpxref是用perl编写的，对于windows平台，它自己内嵌了TinyPerl 所以无需事先安装perl。所以要做的事情大多就是： 1:下载phpxref，解压 2:把需要生成文档的PHP代码放到phpxref.cfg文件中SOURCE中指定的目录中 3:执行phpxref.pl，在windows下面是phpxref.bat或者phpxref.exe 4:用你的浏览器打开输出目录（由phpxref.cfg文件中的OUTPUT指定）中的index.html文档浏览生成的PHP项目文档。 至于PHPxref的高级应用，则可以修改phpxref.cfg来实现，每个修改项都很简单，如下便是生成一个项目的文档时的情况，其中有smarty模板的支持，以及一些错误提示。 E:\Program Files\phpxref &#62; phpxref.exe PHPXref 0.6 (c) Gareth Watts 2004 Processing Smarter v2… Source………….: F:CVSRootSmarterV2Source_CodeFrontEnd Target………….: E:Program Filesphpxrefoutput Scanning Tree……: OK &#8211; 2838 files to process Pass One………..: 0%..10%..20%..30%..40%..50%..60%..70%..80%..90%..100% Generating Output..: 0%..10%..20%..30%..40%..50%..60%..70%..80%..90%..100% Variable references: 0%..10%..20%..30%..40%..50%..60%..70%..80%..90%..100% Function references: 0%..10%..20%..30%..40%..50%..60%..70%..80%..90%..100% Class references…: 0%..10%..20%..30%..40%..50%..60%..70%..80%..90%..100% Constant references: [...]]]></description>
		<wfw:commentRss>http://www.deepseath.com/?feed=rss2&#038;p=348</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>修改Windows远程桌面连接端口的脚本</title>
		<link>http://www.deepseath.com/?p=243</link>
		<comments>http://www.deepseath.com/?p=243#comments</comments>
		<pubDate>Mon, 14 Jul 2008 11:55:27 +0000</pubDate>
		<dc:creator>Deepseath</dc:creator>
				<category><![CDATA[日积月累]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[REG]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[TCP]]></category>
		<category><![CDATA[terminal server]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[wscript]]></category>

		<guid isPermaLink="false">http://www.deepseath.com/?p=243</guid>
		<description><![CDATA[下面代码存为XXX.vbs运行即可。 &#8216;##################### &#8216;VBS修改远程桌面的默认端口,并添加至Windows防火墙 &#8216;作者51windows.Net &#8217;56868为要设置的端口 &#8216;##################### Set WshShell = WScript.CreateObject(“WScript.Shell”) WshShell.RegWrite “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber”,56868,”REG_DWORD” WshShell.RegWrite “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp\PortNumber”,56868,”REG_DWORD” Function Addfirewall(name,port,state)  Set objFirewall = CreateObject(“HNetCfg.FwMgr”)  Set objPolicy = objFirewall.LocalPolicy.CurrentProfile    Set objPort = CreateObject(“HNetCfg.FwOpenPort”)  objPort.Port = port  objPort.Name = name  objPort.Enabled = state  Set colPorts = objPolicy.GloballyOpenPorts  errReturn = colPorts.Add(objPort) End Function call Addfirewall(“远程桌面56868&#8243;,56868,1) set WshShell = nothing [...]]]></description>
		<wfw:commentRss>http://www.deepseath.com/?feed=rss2&#038;p=243</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP删除非空目录</title>
		<link>http://www.deepseath.com/?p=140</link>
		<comments>http://www.deepseath.com/?p=140#comments</comments>
		<pubDate>Mon, 17 Mar 2008 02:23:25 +0000</pubDate>
		<dc:creator>Deepseath</dc:creator>
				<category><![CDATA[程序人生]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.deepseath.com/?p=140</guid>
		<description><![CDATA[　　PHP内置的函数有一个rmdir()是用来删除目录的。但是这个函数根据手册： 尝试删除 dirname 所指定的目录。 该目录必须是空的，而且要有相应的权限。如果成功则返回 TRUE，失败则返回 FALSE 　　因此可以自己写的函数来弥补rmdir的不足，思路很简单：先检查目录下有没有文件或文件夹，如果有，就用递归删除目录下的所有文件和文件夹，然后删除此目录。 　　代码如下：&#60;?php function d_rmdir($dirname) { if(!is_dir($dirname)) { return false; } $handle = @opendir($dirname); while(($file = @readdir($handle)) !== false){ if($file != '.' &#38;&#38; $file != '..'){ $dir = $dirname . '/' . $file; is_dir($dir) ? d_rmdir($dir) : @unlink($dir); } } closedir($handle); return rmdir($dirname) ; } ?&#62;]]></description>
		<wfw:commentRss>http://www.deepseath.com/?feed=rss2&#038;p=140</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP中二维数组的排序方法</title>
		<link>http://www.deepseath.com/?p=139</link>
		<comments>http://www.deepseath.com/?p=139#comments</comments>
		<pubDate>Mon, 17 Mar 2008 02:11:26 +0000</pubDate>
		<dc:creator>Deepseath</dc:creator>
				<category><![CDATA[程序人生]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.deepseath.com/?p=139</guid>
		<description><![CDATA[　　非原创,转载来的,感觉还不错,备用^_^ &#60;?php // 说明：PHP中二维数组的排序方法 /*  * @package BugFree  *  * sysSortArray($Array,"Key1","SORT_ASC","SORT_RETULAR","Key2"……)  * @param array $ArrayData   the array to sort.  * @param string $KeyName1    the first item to sort by.  * @param string $SortOrder1  the order to sort by("SORT_ASC"&#124;"SORT_DESC")  * @param string $SortType1   the sort type("SORT_REGULAR"&#124;"SORT_NUMERIC"&#124;"SORT_STRING")  * @return array     sorted array. */ function sysSortArray($ArrayData,$KeyName1,$SortOrder1 = "SORT_ASC",$SortType1 = "SORT_REGULAR") {  if(!is_array($ArrayData)){   return $ArrayData;  }  // Get args number. [...]]]></description>
		<wfw:commentRss>http://www.deepseath.com/?feed=rss2&#038;p=139</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>被遗忘了的Character Type Functions</title>
		<link>http://www.deepseath.com/?p=129</link>
		<comments>http://www.deepseath.com/?p=129#comments</comments>
		<pubDate>Thu, 13 Mar 2008 15:01:41 +0000</pubDate>
		<dc:creator>Deepseath</dc:creator>
				<category><![CDATA[程序人生]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.deepseath.com/?p=129</guid>
		<description><![CDATA[　　一直判断字符的时候都是自己写的函数，突然发现PHP其实内置了这些函数，有很多都是比较好的。 　　性能上没有去比较，但我想用内置的函数至少会减少开发时代码量吧，哈哈 ctype_alnum &#8212; Check for alphanumeric character(s) 检测是否是只包含[A-Za-z0-9] ctype_alpha &#8212; Check for alphabetic character(s) 检测是否是只包含[A-Za-z] ctype_cntrl &#8212; Check for control character(s) 检查是否是只包含类是“\r\b\t”之类的字符控制字符 ctype_digit &#8212; Check for numeric character(s) 检查时候是只包含数字字符的字符串（0-9） ctype_graph &#8212; Check for any printable character(s) except space 检查是否是只包含有可以打印出来的字符（除了空格）的字符串 ctype_lower &#8212; Check for lowercase character(s) 检查是否所有的字符都是英文字母，并且都是小写的 ctype_print &#8212; Check for printable character(s) 检查是否是只包含有可以打印出来的字符的字符串 ctype_punct [...]]]></description>
		<wfw:commentRss>http://www.deepseath.com/?feed=rss2&#038;p=129</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
