php 字符串函数教程与实例代码
在php中字符串函数有很多哦,在说了php本来就是由函数组成了,这让开发人员可以加快网站的开发速度哦,好了费话不说多了我们来看看我为各位朋友免费提供的php 字符串函数教程与实例代码吧。
AddSlashes: 字符串加入斜线。
bin2hex: 二进位转成十六进位。
Chop: 去除连续空白。
Chr: 返回序数值的字符。
chunk_split: 将字符串分成小段。
convert_cyr_string: 转换古斯拉夫字符串成其它字符串。
crypt: 将字符串用 DES 编码加密。
echo: 输出字符串。
explode: 切开字符串。
flush: 清出输出缓冲区。
get_meta_tags: 抽出文件所有 meta 标记的资料。
htmlspecialchars: 将特殊字符转成 HTML 格式。
htmlentities: 将所有的字符都转成 HTML 字符串。
implode: 将数组变成字符串。
join: 将数组变成字符串。
ltrim: 去除连续空白。
md5: 计算字符串的 MD5 哈稀。
nl2br: 将换行字符转成 <br>。
Ord: 返回字符的序数值。
parse_str: 解析 query 字符串成变量。
print: 输出字符串。
printf: 输出格式化字符串。
quoted_printable_decode: 将 qp 编码字符串转成 8 位字符串。
QuoteMeta: 加入引用符号。
rawurldecode: 从 URL 专用格式字符串还原成普通字符串。
rawurlencode: 将字符串编码成 URL 专用格式。
setlocale: 配置地域化信息。
similar_text: 计算字符串相似度。
soundex: 计算字符串的读音值
sprintf: 将字符串格式化。
strchr: 寻找第一个出现的字符。
strcmp: 字符串比较。
strcspn: 不同字符串的长度。
strip_tags: 去掉 HTML 及 PHP 的标记。
StripSlashes: 去掉反斜线字符。
strlen: 取得字符串长度。
strrpos: 寻找字符串中某字符最后出现处。
strpos: 寻找字符串中某字符最先出现处。
strrchr: 取得某字符最后出现处起的字符串。
strrev: 颠倒字符串。
strspn: 找出某字符串落在另一字符串遮罩的数目。
strstr: 返回字符串中某字符串开始处至结束的字符串。
strtok: 切开字符串。
strtolower: 字符串全转为小写。
strtoupper: 字符串全转为大写。
str_replace: 字符串取代。
strtr: 转换某些字符。
substr: 取部份字符串。
trim: 截去字符串首尾的空格。
ucfirst: 将字符串第一个字符改大写。
ucwords: 将字符串每个字第一个字母改大写。
下面来看看php字符串函数的实例吧。
josh@superfork.com (22-Jun-1999) 写了一个函数,可将十六进位转成二进位。
<?
function hex2bin($data) {
$len = strlen($data);
for($i=0;$i<$len;$i+=2) {
$newdata .= pack("C",hexdec(substr($string,$i,2)));
}
return $newdata;
}
?>
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串的连续空白清除。
使用范例
<?
$trimmed = Chop($line);
?>
参考: trim()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符的序数转成 ASCII 的字符。本函数和 ord() 成对照。
使用范例
<?
$str .= chr(27);
$str = sprintf("字符串的结束字符是: %c", 27);
?>
参考: ord() sprintf()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符变成小段供其它函数使用。例如,base64_encode。内定是参数 chunklen (76 个字符) 每隔 76 个字符插入 end ("rn")。返回新字符串而不改动原字符串。
使用范例
将字符串 $data 格式化成 MIME BASE64 格式
<?
$new_string = chunk_split(base64_encode($data));
?>
参考: ereg_replace()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将古斯拉夫字符串转成其它的字符串。from 及 to 二个参数是字符,其代表意义如下:
k - koi8-r
w - windows-1251
i - iso8859-5
a - x-cp866
d - x-cp866
m - x-mac-cyrillic
语法: string crypt(string str, string [salt]);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数将字符串用 UNIX 的标准加密 DES 模块加密。这是单向的加密函数,无法解密。欲比对字符串,将已加密的字符串的头二个字符放在 salt 的参数中,再比对加密后的字符串。
更详细的资料请参考 UNIX Manual (man) 中的 crypt。
在一些较新的 UNIX 版本中,除了 DES 之外还提供了其它的加密模块,如 MD5。甚至有些系统还用 MD5 取代 DES。在 salt 参数还有一些变化,端看传给 salt 参数的字符串长度而定:
CRYPT_STD_DES - 标准的 DES 编码,输入 2 字符的 salt。
CRYPT_EXT_DES - 延伸的 DES 编码,输入 9 字符的 salt。
CRYPT_MD5 - MD5 编码,输入 12 字符加上 $1$ 的 salt。
CRYPT_BLOWFISH - 延伸的 DES 编码,输入 16 字符加上 $2$ 的 salt。
此外,若不使用 salt 参数,则程序会自动产生。
返回值: 无
函数种类: PHP 系统功能
内容说明: 本函数将字符串输出。由于它不是真正的函数,因此也没有返回值。
使用范例
<?php
echo "Hello World";
?>
参考: print() printf() flush()
返回值: 数组
函数种类: 资料处理
内容说明: 本函数将字符串依指定的字符串或字符 separator 切开。将切开后的字符串返回到数组变量中。
使用范例
<?
$pizza = "第一片 第二片 第三片 第四片 第五片 第六片";
$pieces = explode(" ", $pizza);
?>
参考: implode()
返回值: 无
函数种类: 资料处理
内容说明: 本函数无输入亦无输出。将输出缓冲区的资料送出,并清出。
语法: array get_meta_tags(string filename, int [use_include_path]);
返回值: 数组
函数种类: 资料处理
内容说明: 本函数将 homepage 中的所有 <meta ......> 标记的资料取出并放置数组变量返回。例如
<html>
<head>
<meta content="彭武兴">
<meta content="PHP BIBLE">
<title>PHP BIBLE</title>
</head><!-- 本函数处理只到这儿结束 -->
本函数找出 meta 标记,name 属性的字符串为数组索引,而 content 属性字符串则为数组的内容资料了。治募 注意的是本函数为 PHP 原生函数,在 UNIX 系列平台上无法直接处理麦金塔的文件格式,因为换行字符不同。blake@mediaone.net 指出 (07-Jun- 1999),参数 filename 也可以是 URL,函数将抽出远端服务器的文件 meta 标记。而函数在处理时,遇到 < /head> 标记结束,要是 <meta ....> 标记放在 </head> 后将无法处理。
语法: string htmlspecialchars(string string);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将特殊字符转成 HTML 的字符串格式 ( &....; )。最常用到的场合可能就是处理客户留言的留言版了。
& (和) 转成 &
" (双引号) 转成 "
< (小于) 转成 <
> (大于) 转成 >
此函数只转换上面的特殊字符,并不会全部转换成 HTML 所定的 ASCII 转换。
使用范例
这是 aulbach@unter.franken.de (27-Jan-1999) 所提供的范例
<FORM ACTION=bla>
<H2>Restaurant Description<H2>
Name of restaurant:
<INPUT TYPE=text VALUE="<?
echo HTMLSpecialChars($restname); ?>">
<!-- 变量 $restname 是酱子的 $restname=""The White Horse""; -->
<BR>
输入描述 (若您会 HTML,可直接使用): <BR>
<TEXTAREA ><?
echo HTMLSpecialChars($descript);
?></TEXTAREA>
<INPUT TYPE=submit>
</FORM>
参考: htmlentities() nl2br()
语法: string htmlentities(string string);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数有点像 htmlspecialchars() 函数,但本函数会将所有 string 的字符都转成 HTML 的特殊字集字符串。不过在转换后阅读网页源代码的方面,会有很多困扰,尤其是网页源代码的中文字会变得不知所云,浏览器上看到的还是正常的。
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将数组的内容组合成一个字符串,参数 glue 是字之间的分隔符号。
使用范例
<?
$colon_separated = implode(":", $array);
echo $colon_separated;
?>
参考: explode() join() split()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数是 implode 函数的别名。
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数用来删去字符串中的连续空白带 (whitespace)。
语法: string md5(string str);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数用来计算 MD5 哈稀。关于 MD5 编码法,可以参考 RSA Data Security, Inc. MD5 Message- Digest Algorithm. RFC1321;或是赖溪松、韩亮、张真诚等合着之近代密码学及其应用,11.3。
语法: string nl2br(string string);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将换行字符转换成 HTML 换行的 <br> 指令。
参考: htmlspecialchars() htmlentities()
返回值: 整数
函数种类: 资料处理
内容说明: 本函数返回字符的 ASCII (美国国家标准交换码) 序数值。本函数和 chr() 函数相反。
使用范例
<?php
if (ord($str) == 10) {
echo("字符串 $str 的第一个字是换行字符。n");
}
?>
参考: chr()
语法: void parse_str(string str);
返回值: 无
函数种类: 资料处理
内容说明: 本函数可将浏览器返回的 GET 方法的 QUERY_STRING 字符串解析。返回的变量名及值就依 QUERY_STRING 的名称及值。
使用范例
<?php
$str = "first=value&second[]=this+works&second[]=another";
parse_str($str);
echo $first; // 显示出 "value" 字符串
echo $second[0]; // 显示 "this works" 字符串
echo $second[1]; // 显示 "another" 字符串
?>
返回值: 布尔值
函数种类: 资料处理
内容说明: 本函数输出字符串。若成功则返回 1,失败则返回 0。例如传输中途客户的浏览器突然挂了,则会造成输出失败的情形。
参考: echo() printf() flush()
返回值: 整数
函数种类: 资料处理
内容说明: 本函数依参数 format 指定的内容格式将字符串格式化。格式的细节可以参考 sprintf()。
参考: print() sprintf() flush()
语法: string quoted_printable_decode(string str);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数可以将 quoted-printable 后的字符串解码成为 8 位编码的字符串。而本函数类似 imap_qprint() 函数,只一不同的地方是使用 imap_qprint() 函数需要让系统加入 IMAP 的模块,而本函数不需要 IMAP 模块。
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串中含有 . \ + * ? [ ^ ] ( $ ) 等字符的前面加入反斜线 "" 符号。
参考: addslashes() htmlentities() htmlspecialchars() nl2br() stripslashes()
语法: string rawurldecode(string str);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数将字符串解码。从 URL 的字符串专用格式解成普通字符串。详细的编码解码信息及规格文件可以参考 RFC 1738。
参考: rawurlencode()
语法: string rawurldecode(string str);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数将字符串编码成 URL 的字符串专用格式,特殊的字符会转换成百分比符号后面加上二个十六位数字的格式。例如,空格就会变成 %20。
使用范例
<?php
echo '<a href="ftp://guest:', rawurlencode ('foo @+%/'), '@localhost/x.txt">';
?>
参考: rawurldecode()
返回值: 字符串
函数种类: 操作系统与环境
内容说明: 本函数用来配置地域的信息。参数 category 有下列的选择:
LC_ALL 包括下面的全项选项都要。
LC_COLLATE 配置字符串比较,PHP 目前尚未实作出来本项。
LC_CTYPE 配置字符类别及转换。例如全变大写 strtoupper()。
LC_MONETARY 配置金融货币,PHP 目前尚未实作。
LC_NUMERIC 配置小数点后的位数。
LC_TIME 配置时间日期格式,与 strftime() 合用。
而参数 locate 若是空字符串 "",则会使用系统环境变量的 locate 或是 LANG 的值。若 locate 为零,则不会改变地域化配置。返回新的地域,若系统尚未实作则返回 false。
使用范例
Michal Fita <manveru@witrynka.pl> 于 11-Jan-1999 11:01 提出这个以波兰作地域化的例子。
<?
setlocale("LC_ALL", "pl");
$net = "1234,56";
$gross = "1,22" * $net;
printf("毛利: %s, 净利: %s", $gross, $net");
/* 波兰总?/font>[值税为 22% */
?>
返回值则为
毛利: 1234,56, 净利: 1506,1632
返回值: 整数
函数种类: 资料处理
内容说明
本函数用来计算比较二字符串的相似程度。
返回值: 字符串
函数种类: 资料处理
内容说明: Soundex 值是利用英文字的读音近似值所求得的值,值由四个字符构成,第一个字符为英文字母,后三个为数字。在拼音文字中有时会有会念但不能拼出正确字的情形,特别是在做搜寻引擎时面对用户传入的英文字符串,可用本函数做类似模糊比对的效果。例如 Knuth 和 Kant 二个字符串,它们的 soundex 值都是 H416。更详细的说明参考 Donald Knuth 大师的名著:电脑程序设计的艺术 (The Art Of Computer Programming) 第三卷排序和搜寻。
使用范例
<?
$str1=soundex("Wilson");
$str2=soundex("Waillsume");
echo "soundex("Wilson")=$str1 等于n";
echo "soundex("Waillsume")=$str2n";
echo "值均为 $str1";
?>
上例返回的字符串为
soundex("Wilson")=W425 等于
soundex("Waillsume")=W425
值均为 W425
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数用来将字符串格式化。参数 format 是转换的格式,以百分比符号 % 开始到转换字符为止。而在转换的格式间依序包括了
填空字符。0 的话表示空格填 0;空格是默认值,表示空格就放着。
对齐方式。默认值为向右对齐,负号表向左对齐。
字段宽度。为最小宽度。
精确度。指在小数点后的浮点数位数。
类型,见下表 % 印出百分比符号,不转换。
b 整数转成二进位。
c 整数转成对应的 ASCII 字符。
d 整数转成十进位。
f 倍精确度数字转成浮点数。
o 整数转成八进位。
s 整数转成字符串。
x 整数转成小写十六进位。
X 整数转成大写十六进位。
使用范例
<?
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// 此时变量 $money 值为 "123.1";
$formatted = sprintf ("%01.2f", $money);
// 此时变量 $ formatted 值为 "123.10"
?>
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数也就是 strstr() 函数。
返回值: 整数
函数种类: 资料处理
内容说明: 本函数用来比较二字符串的大小。返回负数表示 str1 小于 str2;返回正数表示 str1 大于 str2;返回零表示二字符串相同。
参考: ereg() substr() strstr()
返回值: 整数
函数种类: 资料处理
内容说明: 本函数用来比较二字符串并计算出不同处的字符串长度。
参考: strspn()
语法: string strip_tags(string str);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数可去掉字符串中包含的任何 HTML 及 PHP 的标记字符串。若是字符串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会返回错误。而本函数和 fgetss() 有着相同的功能。
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数可去掉字符串中的反斜线字符。若是连续二个反斜线,则去掉一个,留下一个。若只有一个反斜线,就直接去掉。
参考: addslashes()
返回值: 整数
函数种类: 资料处理
内容说明: 本函数返回指定的字符串长度。
返回值: 整数
函数种类: 资料处理
内容说明: 本函数用来寻找字符串 haystack 中的字符 needle 最后出现的位置。值得注意的是 needle 只能是一个字符,中文字等就不适合了。若找不到指定的字符,则返回 false 值。
参考: strpos() strrchr() substr() strstr()
返回值: 整数
函数种类: 资料处理
内容说明: 本函数用来寻找字符串 haystack 中的字符 needle 最先出现的位置。值得注意的是 needle 只能是一个字符,中文字等就不适合了。若找不到指定的字符,则返回 false 值。参数 offset 可省略,用来Y表示从 offset 开始找。
参考: strrpos() strrchr() substr() strstr()
返回值: 整数
函数种类: 资料处理
内容说明: 本函数用来寻找字符串 haystack 中的字符 needle 最后出现位置,并将此位置起至字符串 haystack 结束之间的字符串返回。若没有找到 needle 则返回 false。
使用范例
下例取回环境变量 PATH 之最后一个路径
<?php
$dir = substr( strrchr( $PATH, ":" ), 1 );
echo "最后的路径为: ".$dir;
?>
参考: substr() strstr()
返回值: 字符串
函数种类: 资料处理
内容说明: 将字符串前后颠倒。
使用范例
下例的返回字符串为 "gneP nosliW"
<?
$str=strrev("Wilson Peng");
echo $str;
?>
返回值: 整数
函数种类: 资料处理
内容说明: 本函数将 str2 字符串当遮罩,可用来计算 str1 字符串中有几个字符落在 str2 遮罩中。
参考: strcspn()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将 needle 最先出现在 haystack 处起至 haystack 结束的字符串返回。若找不到 needle 则返回 false。
参考: strrchr() substr() ereg()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 arg1 依字符串 arg2 的值切开成小段小段的字符串。
使用范例: 本例将 I will be back 字符串依空白切开。
<?php
$string = "I will be back";
$tok = strtok($string," ");
while($tok) {
echo "单字=$tok<br>";
$tok = strtok(" ");
}
?>
参考: split() explode()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 str 全部变小写字符串。
参考: strtoupper() ucfirst()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 str 全部变大写字符串。
参考: strtolower() ucfirst()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 str 代入 haystack 字符串中,将所有的 needle 置换成 str。 mlevine@adtraq.com (11-Apr-1999) 指出在 PHP 3.0.7 版,本函数有些 bug,而 nadeem@bleh.org (05-Jun-1999) 补充在 PHP 3.0.8 版本函数就回复正常了。
使用范例
下例将 %body% 以 black 取代
<?php
$bodytag = str_replace("%body%", "black", "<body text=%body%>");
echo $bodytag;
?>
参考: ereg_replace()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 str 中和 from 有关的字符一一转成 to 的字符。
参考: ereg_replace()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 string 的第 start 位起的字符串取出 length 个字符。若 start 为负数,则从字符串尾端算起。若可省略的参数 length 存在,但为负数,则表示取到倒数第 length 个字符。
使用范例
<?
echo substr("abcdef", 1, 3); // 返回 "bcd"
echo substr("abcdef", -2); // 返回 "ef"
echo substr("abcdef", -3, 1); // 返回 "d"
echo substr("abcdef", 1, -1); // 返回 "bcde"
?>
参考: strrchr() ereg()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数返回字符串 string 首尾的空白字符去除后的字符串。
参考: chop() ltrim()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数返回字符串 str 第一个字的字首字母改成大写。
参考: strtoupper() strtolower()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数返回字符串 str 每个字的字首字母全都改成大写。
1)echo,print,printf,sprintf
前两个函数是输出字符串.字符串中如果有变量名则被替换成其值.
后两个函数类似于C的同名函数.
(2)strchr,strlen,strtok,strrchr,strrev,strstr,strtolower,
strtoupper,substr,ucfirst
这些是常用的字符串操作函数,有些和C中的同名函数意义完全一致.
strrev是把一个字符串翻转.
strtolower和strtoupper的意思应该不用解释了.
ucfirst是把字符串的第一个字符变成大写.
substr是返回字符串的一个子串,用法是:substr(字符串,头,长度).
头位置是 从0算起的.如果是负数,则是从尾部向前数的意思.
(3)Chr,Ord
类似于C的同名函数.
(4)explode,implode,join
这些是和数组有关的函数.
explode(字符串,分割符)返回一个将字符串在分割符处分开所产生的数组.
implode(数组,分割符)返回一个将数组各元素之间插上分割符而成的字符串.
join与implode意义相同.
(5)Chop
去掉字符串尾部的空白.
(6)htmlspecialchars
将字符串中的HTML特殊字符换成它们的名字,例如"<"变成"<".
(7)nl2br
在字符串中的每一个回车前面加上"<BR>".
(8)AddSlashes,StripSlashes
分别给字符串中需要加上"\"才能用于数据库查询的字符加上和去掉"\".
(9)parse_str
将"name1=value1&name2=value2&..."类型的字符串分析成一些变量.
例如:
parse_str("a=1&b=2");
生成a与b两个变量,值分别为1,2.
如果有两对名字/值的名字部分相同,则后一个的值覆盖前一个的.
如果这两对的名字尾部都有"[]",例如"a[]=1&a[]=2",则生成数组a,两个元素分别为1,2
好了文章写了一大堆了,希望这些字符串函数的实例能给你带来帮助。
第一步 找到这个文件 /fckeditoreditorfilemanagerbrowserdefaultfrmresourceslist.html
将已经存在的代码修改为:
代码:
oListManager.GetFolderRowHtml = function( folderName, folderPath )
{
// Build the link to view the folder.
var sLink = '<a href="#" onclick="OpenFolder('' + ProtectPath( folderPath ) + '');return false;"><img alt="" src="images/Folder.gif" width="16" height="16" border="0"> ' ;
var rLink = '<a href="#" title="Rename Folder" onclick="RenameFolder('' + folderName + '');return false;"><img src="images/rename.gif" width="16" height="16" border="0" alt="Rename Folder" title="Rename Folder"></a>' ;
var dLink = '<a href="#" title="Delete Folder" onclick="DeleteFolder('' + folderName + '');return false;"><img src="images/delete.gif" width="16" height="16" border="0" alt="Delete Folder" title="Delete Folder">' ;
var ssLink = rLink + dLink;
return '<tr>' +
'<td width="16"></td><td nowrap> ' +
sLink +
folderName +
'</a></td><td align="right" nowrap>' + ssLink +
'</td></tr>' ;
}
oListManager.GetFileRowHtml = function( fileName, fileUrl, fileSize )
{
var sIcon = oIcons.GetIcon( fileName ) ;
// Build the link to view the file.
var sLink = '<a href="#" onclick="OpenFile('' + ProtectPath( fileUrl ) + '');return false;"><img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"> ' ;
var vLink = '<a href="' + ProtectPath( fileUrl ) + '" target="_blank"" title="View file"><img src="images/view.gif" width="16" height="16" border="0" alt="View File" title="View File"></a>' ;
var rLink = '<a href="#" title="Rename file" onclick="RenameFile('' + fileName + '');return false;"><img src="images/rename.gif" width="16" height="16" border="0" alt="Rename File" title="Rename File"></a>' ;
var dLink = '<a href="#" title="Delete file" onclick="DeleteFile('' + fileName + '');return false;"><img src="images/delete.gif" width="16" height="16" border="0" alt="Delete File" title="Delete File"></a>' ;
// Get the file icon.
var ssLink = vLink + rLink + dLink;
return '<tr>' +
'<td width="16"></td><td> ' +
sLink +
fileName +
'</a>' +
'</td><td align="right" nowrap> ' +
fileSize +
' KB' + ssLink +
'</td></tr>' ;
}
function OpenFolder( folderPath )
{
// Load the resources list for this folder.
window.parent.frames['frmFolders'].LoadFolders( (folderPath) ) ;
}
function OpenFile( fileUrl )
{
window.top.opener.SetUrl( fileUrl.replace( '#', '%23' ) ) ;
window.top.close() ;
window.top.opener.focus() ;
}
function DeleteFolder( folderUrl )
{
if ( !confirm( 'Do you really delete the folder "' + folderUrl + '" ?' ) ) return false;
oConnector.SendCommand( 'DeleteFolder', 'FolderName=' + ( encodeURI(folderUrl) ) , DeleteFolderCallBack ) ;
}
function DeleteFolderCallBack( fckXml )
{
var oNode = fckXml.SelectSingleNode( 'Connector/Error' ) ;
var iErrorNumber = parseInt( oNode.attributes.getNamedItem('number').value ) ;
var sErrorDescription = String( oNode.attributes.getNamedItem('originalDescription').value ) ;
switch ( iErrorNumber )
{
case 0 :
Refresh() ;
break ;
case 201 :
alert( 'You have no permissions to delete the folder' ) ;
break ;
case 202 :
alert( 'Invalid folder name' + sErrorDescription ) ;
break ;
case 203 :
alert( 'Folder not exists' + sErrorDescription ) ;
break ;
default :
alert( 'Error deleting folder. nError number: ' + iErrorNumber + ' nError description: ' + sErrorDescription ) ;
break ;
}
}
function DeleteFile(fileUrl)
{
if ( !confirm( 'Do you really delete the file "' + fileUrl + '" ?' ) ) return false;
oConnector.SendCommand( 'DeleteFile', 'FileName=' + encodeURI( fileUrl ) , DeleteFileCallBack ) ;
}
function DeleteFileCallBack( fckXml )
{
var oNode = fckXml.SelectSingleNode( 'Connector/Error' ) ;
var iErrorNumber = parseInt( oNode.attributes.getNamedItem('number').value ) ;
var sErrorDescription = String( oNode.attributes.getNamedItem('originalDescription').value ) ;
switch ( iErrorNumber )
{
case 0 :
Refresh() ;
break ;
case 301 :
alert( 'You have no permissions to delete the file' ) ;
break ;
case 302 :
alert( 'Invalid file name' + sErrorDescription ) ;
break ;
case 303 :
alert( 'File not exists' + sErrorDescription ) ;
break ;
default :
alert( 'Error deleting file. nError number: ' + iErrorNumber + ' nError description: ' + sErrorDescription ) ;
break ;
}
}
function RenameFolder( folderName )
{
var newName = prompt('Please enter the new folder name for "' + folderName + '":', folderName);
if ((newName != null) && (newName != '') && (newName != folderName)) {
oConnector.SendCommand( 'RenameFolder', "FolderName=" + encodeURI(folderName) + "&NewName=" + encodeURI ( newName ), RenameFolderCallBack ) ;
}
}
function RenameFolderCallBack( fckXml )
{
var oNode = fckXml.SelectSingleNode( 'Connector/Error' ) ;
var iErrorNumber = parseInt( oNode.attributes.getNamedItem('number').value ) ;
var sErrorDescription = String( oNode.attributes.getNamedItem('originalDescription').value ) ;
switch ( iErrorNumber )
{
case 0 :
Refresh() ;
break ;
case 401 :
alert( 'You have no permissions to rename the folder' ) ;
break ;
case 402 :
alert( 'Invalid folder name' + sErrorDescription ) ;
break ;
case 403 :
alert( 'is not Folder' + sErrorDescription ) ;
break ;
case 404 :
alert( 'Folder not exists' + sErrorDescription ) ;
break ;
default :
alert( 'Error renaming folder. nError number: ' + iErrorNumber + ' nError description: ' + sErrorDescription ) ;
break ;
}
}
function RenameFile( fileName )
{
var newName = prompt('Please enter the new file name for "' + fileName + '":', fileName);
if ((newName != null) && (newName != '') && (newName != fileName)) {
oConnector.SendCommand( 'RenameFile', "FileName=" + encodeURI( fileName ) + "&NewName=" + encodeURI( newName ), RenameFileCallBack ) ;
}
}
function RenameFileCallBack( fckXml )
{
var oNode = fckXml.SelectSingleNode( 'Connector/Error' ) ;
var iErrorNumber = parseInt( oNode.attributes.getNamedItem('number').value ) ;
var sErrorDescription = String( oNode.attributes.getNamedItem('originalDescription').value ) ;
switch ( iErrorNumber )
{
case 0 :
Refresh() ;
break ;
case 501 :
alert( 'You have no permissions to rename the file' ) ;
break ;
case 502 :
alert( 'Invalid file name' + sErrorDescription ) ;
break ;
case 503 :
alert( sErrorDescription + 'is not a file' ) ;
break ;
case 504 :
alert( 'File not exists' + sErrorDescription ) ;
break ;
default :
alert( 'Error renaming file. nError number: ' + ' nError description: ' + sErrorDescription ) ;
break ;
}
}
2。 第二步 找到这个文件 /fckeditoreditorfilemanagerbrowserdefaultfrmfolders.html
将函数OpenFolder(folderPath)最后一句修改为:
代码:
var agent = navigator.userAgent;
if(agent.indexOf('MSIE') != -1 || agent.indexOf('Trident') != -1) {
window.parent.frames['frmResourcesList'].LoadResources( oConnector.ResourceType, (folderPath) ) ;
}else{
window.parent.frames['frmResourcesList'].LoadResources( oConnector.ResourceType, encodeURI(folderPath) ) ;
}
3。第三步,找到fckeditoreditorfilemanagerbrowserdefaultbrowser.html
添加函数:
代码:
function selectBrowser(str) {
var agent = navigator.userAgent;
if(agent.indexOf('Gecko') != -1) {
return encodeURIComponent(str);
}else if(agent.indexOf('MSIE') != -1 || agent.indexOf('Trident') != -1) {
return str;
}else{
return encodeURIComponent(str);
}
}
第79行修改为: oConnector.ConnectorUrl += 'ServerPath=' + selectBrowser( sServerPath ) + '&' ;
第91行修改为: sUrl += '&CurrentFolder=' + selectBrowser( this.CurrentFolder ) ;
4。第四步 再找这个文件 fckeditoreditorfilemanagerconnectorsphpcommands.php
添加:
代码:
header('Content-Type:text/html;charset=UTF-8');
function DeleteFolder( $resourceType, $currentFolder ) {
$sFolderName = $_GET['FolderName'];
$sErrorMsg = '';
$sServerDir = ServerMapFolder( $resourceType, $currentFolder . "/" . $sFolderName ,'DeleteFolder');
/*if(empty($_cookie[xxxxxx])) {
$sErrorNumber = "201"; //permissions
}else */ if(empty($_GET['FolderName']) or (!is_dir($sServerDir))) {
$sErrorNumber = "202"; //Invalid Folder Name.
$sErrorMsg = $sFolderName;
}else if(!file_exists($sServerDir)) {
$sErrorNumber = "203"; // Folder not exists
$sErrorMsg = $sFolderName;
echo $sFolderName;exit();
}else{
if(@rmdir($sServerDir)) {
$sErrorNumber = "0";//success
}else{
$sErrorNumber = "222";
$sErrorMsg = "目录删除失败,原因:1。目录不为空n2。没有权限";
}
}
echo '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute( $sErrorMsg ) . '" />' ;
}
function DeleteFile( $resourceType, $currentFolder ) {
$sFileName = iconv("utf-8","gbk",$_GET['FileName']);
$sErrorMsg = "";
$sServerDir = ServerMapFolder( $resourceType, $currentFolder . "/" . $sFileName ,'DeleteFile');
/*if(empty($_COOKIE['hazysuser'])) {
$sErrorNumber = "301"; //Security Error.
}else*/ if( empty($_GET['FileName']) or (!is_file($sServerDir))) {
$sErrorNumber = "302"; //Invalid File Name.
$sErrorMsg = $sFileName;
}else if(!file_exists($sServerDir)) {
$sErrorNumber = "303"; //File not exists.
$sErrorMsg = $sFileName;
}else{
if(@unlink($sServerDir)) {
$sErrorNumber = "0";
}else{
$sErrorNumber = "333";
$sErrorMsg = "无法删除此文件,原因:n1。没有权限。n2。必须在DOS下才能删除的特殊文件";
}
}
echo '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute( $sErrorMsg ) . '" />';
}
function RenameFolder( $resourceType, $currentFolder ) {
$sErrorMsg = '';
$sFolderName = urldecode(mb_convert_encoding($_GET['FolderName'],"gbk","utf-8"));
$sNewName = urldecode(mb_convert_encoding($_GET['NewName'],"gbk","utf-8"));
$sServerDir = ServerMapFolder( $resourceType, $currentFolder . "/" . $sFolderName ,'RenameFolder');
$sNewDir = ServerMapFolder( $resourceType, $currentFolder . "/" . $sNewName ,'RenameFolder' );
/*if( empty($_COOKIE[xxxxxx])) {
$sErrorNumber = "401";
}else */if ( empty($_GET['FolderName']) or empty($_GET['NewName']) ) {
$sErrorNumber = "402";//Invalid Folder Name.
$sErrorMsg = $sFolderName .' != '.$sNewName;
/*}else if (!is_dir($sServerDir)) {
$sErrorNumber = "403"; //is not Folder
$sErrorMsg = $sFolderName.' is not Folder';
}else if (!file_exists($sServerDir)) {
$sErrorNumber = "404"; //Folder not exists.
$sErrorMsg = $sFolderName;*/
}else {
if(rename($sServerDir,$sNewDir,stream_context_create() )) {
$sErrorNumber = "0";
}else{
$sErrorNumber = "444";
$sErrorMsg = "无法修改目录名称:".$sFolderName.'为'.$sNewName.'。';
}
}
echo '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute( $sErrorMsg ) . '" />';
}
function RenameFile( $resourceType, $currentFolder ) {
$sFileName = iconv("utf-8","gbk",$_GET['FileName']);
$sNewName = iconv("utf-8","gbk",$_GET['NewName']);
$sErrorMsg = '';
$sServerDir = ServerMapFolder( $resourceType, $currentFolder . "/" . $sFileName ,'RenameFile');
$sNewDir = ServerMapFolder( $resourceType, $currentFolder . "/" . $sNewName ,'RenameFile');
/*if(empty($_COOKIE[xxxxxx])) {
$sErrorNumber = "501";
}else */if( empty($_GET['FileName']) or empty($_GET['NewName']) ) {
$sErrorNumber = "502";
}else if(!is_file($sServerDir)) {
$sErrorNumber = '503';
$sErrorMsg = $sFileName .' is not a file';
}else if(!file_exists($sServerDir)) {
$sErrorNumber = '504';
$sErrorMsg = $sFileName .' is not exists';
}else{
if(rename($sServerDir,$sNewDir)) {
$sErrorNumber = "0";
}else{
$sErrorNumber = "555";
$sErrorMsg = "无法重命名此文件:".$sServerDir;
}
}
echo '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute( $sErrorMsg ) . '" />';
}
修改function GetFoldersAndFiles( $resourceType, $currentFolder )函数,并添加以下内容:
代码:
$agent = $_SERVER['HTTP_USER_AGENT'];
if(stripos($agent,"gecko")>0) {
$currentFolder = urldecode($currentFolder);
}
if(stripos($agent,"gecko")>0) {
$sServerDir = iconv("utf-8","gbk",$sServerDir);
}
5。第五步 fckeditoreditorfilemanagerconnectorsphpconfig.php
第28行修改为:$Config['ConfigAllowedCommands'] = array('QuickUpload', 'FileUpload', 'GetFolders', 'GetFoldersAndFiles', 'CreateFolder','DeleteFolder','DeleteFile','RenameFolder','RenameFile') ;
6。第六步 fckeditoreditorfilemanagerconnectorsphpconnector.php
在相应地方添加以下代码:
代码:
case "DeleteFolder":
DeleteFolder( $sResourceType, $sCurrentFolder );
break ;
case "DeleteFile":
DeleteFile( $sResourceType, $sCurrentFolder );
break ;
case "RenameFolder":
RenameFolder( $sResourceType, $sCurrentFolder );
break ;
case "RenameFile":
RenameFile( $sResourceType, $sCurrentFolder );
break ;
7。第七步 fckeditoreditorfilemanagerconnectorsphpio.php
第70行函数function CreateServerFolder( $folderPath, $lastFolder = null )里添加:
$folderPath = iconv("utf-8","gbk",$folderPath);
8。第八步 fckeditoreditorfilemanagerconnectorsphputil.php
第50行修改为:
return (mb_convert_encoding(htmlspecialchars($value),"UTF-8","GBK")) ;
上面的为完全版,但要自己动手。在 http://www.uushare.com/user/littlenew/file/1942702里有免费版,不过里面某些代码已经加密,请勿破解,保证不含任何恶意代码,也不会有反向连接等一系列其它联网活动。
[url= http://www.hazytime.cn/article/article.asp?/6370-1-1.html]也可以到我的网站查看[/url]。
1。我的IE8在apache下不能浏览中文目录里的图片,怎么办?
在IE8的设置里选中:发送 UTF-8 URL
2。免费版本已经存在的问题:在firefox不能修改、删除文件,只能上传文件.
测试环境:windows 2003 + apache 2.2.11 + PHP5.3 + UTF-8(不带BOM)
class GetImage {
var $source;
var $save_to;
var $quality;
function download($method = 'curl') {
$info = @GetImageSize($this->source);
$mime = $info['mime'];
// What sort of image?
$type = substr(strrchr($mime, '/'), 1);
switch ($type){
case 'jpeg':
$image_create_func = 'ImageCreateFromJPEG';
$image_save_func = 'ImageJPEG';
$new_image_ext = 'jpg';
// Best Quality: 100
$quality = isSet($this->quality) ? $this->quality : 100;
break;
case 'png':
$image_create_func = 'ImageCreateFromPNG';
$image_save_func = 'ImagePNG';
$new_image_ext = 'png';
// Compression Level: from 0 (no compression) to 9
$quality = isSet($this->quality) ? $this->quality : 0;
break;
case 'bmp':
$image_create_func = 'ImageCreateFromBMP';
$image_save_func = 'ImageBMP';
$new_image_ext = 'bmp';
break;
case 'gif':
$image_create_func = 'ImageCreateFromGIF';
$image_save_func = 'ImageGIF';
$new_image_ext = 'gif';
break;
case 'vnd.wap.wbmp':
$image_create_func = 'ImageCreateFromWBMP';
$image_save_func = 'ImageWBMP';
$new_image_ext = 'bmp';
break;
case 'xbm':
$image_create_func = 'ImageCreateFromXBM';
$image_save_func = 'ImageXBM';
$new_image_ext = 'xbm';
break;
default:
$image_create_func = 'ImageCreateFromJPEG';
$image_save_func = 'ImageJPEG';
$new_image_ext = 'jpg';
}
if(isSet($this->set_extension)){
$ext = strrchr($this->source, ".");
$strlen = strlen($ext);
$new_name = basename(substr($this->source, 0, -$strlen)).'.'.$new_image_ext;
}else{
$new_name = basename($this->source);
}
$save_to = $this->save_to."/blog_insert_temp_".time().mt_rand(1,99).".".$new_image_ext;
//输出对象 组成跟$_FILE变量一样 得到后自己和平常图片上传处理一样了
$img_info['name'] = basename($this->source);
$img_info['type'] = $mime;
$img_info['size'] = 1000;
$img_info['tmp_name'] = $save_to;
$img_info['error'] = 0;
if($method == 'curl'){
$save_image = $this->LoadImageCURL($save_to);
}elseif($method == 'gd'){
$img = $image_create_func($this->source);
if(isSet($quality)){
$save_image = $image_save_func($img, $save_to, $quality);
}else{
$save_image = $image_save_func($img, $save_to);
}
}
return $img_info;
}
function LoadImageCURL($save_to){
$ch = curl_init($this->source);
$fp = fopen($save_to, "wb");
// set URL and other appropriate options
$options = array(CURLOPT_FILE => $fp,
CURLOPT_HEADER => 0,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_TIMEOUT => 60); // 1 minute timeout (should be enough)
curl_setopt_array($ch, $options);
curl_exec($ch);
curl_close($ch);
fclose($fp);
}
}
mysqli的异常处理功能?
class check{
private $host;
private $name;
private $paw;
public $res;
function connect($host,$name,$paw){
// var_dump($host,$name,$paw);exit();
$this->res = @new mysqli($host,$name,$paw);
//
if(!$this->res){
throw new Exception("MySQL connect is error!");
}
}
}
try {
$a = new check();
$a->connect("localhost","root","123jodjg");
}catch (Exception $e){
echo $e->getMessage();
}
这个是代码。如果不用mysqli来做。用mysql_connect这样的函数来做就没问题的
哈希(Hash)表
一般的查找方法基于比较的,查找效率依赖比较次数,其实理想的查找希望不经比较,一次存取便能得到所查
记录,那就必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,这样查找k时,只要根据这个
对应关系f找到给定值k的像f(k)。这种对应关系f叫哈希(hash)函数。按这种思想建立的表叫哈希表(也
叫散列表)。哈希表存取方便但存储时容易冲突(collision):即不同的关键字可以对应同一哈希地址。如
何确定哈希函数和解决冲突是关键。
1.哈希函数的构造方法
直接定址法:H(k)=k 或H(k)=a*k+b(线形函数)
如:人口数字统计表
地址 1 2 3 ... 100
年龄 1 2 3 ... 100
人数 67 3533 244 ... 4
数字分析法:取关键字的若干数位组成哈希地址
如:关键字如下:若哈希表长为100则可取中间两位10进制数作为哈希地址。
81346532 81372242 81387422 81301367 81322817 81338967 81354157 81368537
平方取中法:关键字平方后取中间几位数组成哈希地址
折叠法:将关键数字分割成位数相同的几部分(最后一部分的位数可以不同)然后取几部分的叠加和(舍
去进位)作为哈希地址。
除留余数法:取关键字被某个不大于表长m的数p除后所得的余数为哈希地址。
H(k)=k mod p p<=m
随机数法:H(k)=rondom(k)。
2.处理冲突的方法
假设地址集为0..n-1,由关键字得到的哈希地址为j(0<=j<=n-1)的位置已存有记录,处理冲突就是为该关键
字的记录找到另一个"空"的哈希地址。在处理中可能得到一个地址序列Hi i=1,2,...k
0<=Hi<=n-1),即在处理冲突时若得到的另一个哈希地址H1仍发生冲突,再求下一地址H2,若仍冲突,再求
H3...。怎样得到Hi呢?
开放定址法:Hi=(H(k)+di) mod m (H(k)为哈希函数;m为哈希表长;di为增量序列)
当di=1,2,3,... m-1 时叫线性探测再散列。
当di=12,-12,22,-22,32,-32,...,k2,-k2时叫二次探测再散列。
当di=random(m)时叫伪随机探测序列。
例:长度为11的哈希表关键字分别为17,60,29,哈希函数为H(k)=k mod 11,第四个记录的关键字为38
,分别按上述方法添入哈希表的地址为8,4,3(随机数=9)。
再哈希法:Hi=RHi(key) i=1,2,...,k,其中RHi均为不同的哈希函数。
链地址法:这种方法很象基数排序,相同的地址的关键字值均链入对应的链表中。
建立公益区法:另设一个溢出表,不管得到的哈希地址如何,一旦发生冲突,都填入溢出表。
3.哈希表的查找
例:如下一组关键字按哈希函数H(k)=k mod 13和线性探测处理冲突所得的哈希表a[0..15]:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
14 01 68 27 55 19 20 84 79 23 11 10
当给定值k=84,则首先和a[6]比在依次和a[7],a[8]比结果a[8]=84查找成功。
当给定值k=38,则首先和a[12]比,再和a[13]比,由于a[13]没有,查找不成功,表中不存在关键字等于38的记
录。
5.5 查找第k小元素
查找第k小元素即在n个元素中(未排序)找到第k小的元素。方法同快速排序,采用递归方式。
程序如下:
program kspv;
const n=7;
type
arr=array[1..n] of integer;
var
b:arr;
i,k:integer;
function p(s,t:integer):integer;
var i,j,t1,x:integer;
begin
i:=s;j:=t;x:=b[i];
repeat
while (b[j]>=x) and (j>i) do j:=j-1;
if j>i then begin t1:=b[i]; b[i]:=b[j];b[j]:=t1;end;
while (b[i]<=x) and (i<j) do i:=i+1;
if i<j then begin t1:=b[j];b[j]:=b[i];b[i]:=t1; end
until i=j;
b[i]:=x;
p:=i;
end;
function find(s,t,k:integer):integer;
var p1,q:integer;
begin
if s=t then find:=b[s] else
begin
p1:=p(s,t);
q:=p1-s+1;
if k<=q then find:=find(s,p1,k) else find:=find(p1+1,t,k-q);
end;
end;
begin
write('input data:');
for i:=1 to n do read(b[i]);readln;
write('input k:');read(k);
write('output data:');
writeln('kthsmall:=',find(1,n,k));
end.
相关文章
- eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
- 在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
- 这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
Python astype(np.float)函数使用方法解析
这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08- 这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
- 这篇文章主要介绍了PostgreSQL判断字符串是否包含目标字符串的多种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23
- 这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
- 这篇文章主要介绍了C++ string常用截取字符串方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
- 本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
- 下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 有一种方法,可以不打开网站而直接查看到这个网站的源代码.. 这样可以有效地防止误入恶意网站... 在浏览器地址栏输入: view-source:http://...2016-09-20
- <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
- 本文实例讲述了php字符串按照单词进行反转的方法。分享给大家供大家参考。具体分析如下:下面的php代码可以将字符串按照单词进行反转输出,实际上是现将字符串按照空格分隔到数组,然后对数组进行反转输出。...2015-03-15
- 本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
- 本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
- 本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
- php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
- CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
- php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p> </p> <p> </p> <form name="form1...2016-11-25
- 这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18