仓酷云
标题:
PHP网站制作之数据布局和字符串处置代码收拾整顿
[打印本页]
作者:
精灵巫婆
时间:
2015-2-4 00:13
标题:
PHP网站制作之数据布局和字符串处置代码收拾整顿
根据功能来进行封装等。很多的不懂,在使用搜索引擎查找,或者请教老师和在老师详细的讲解、指导下,都能顺利解决。数据|数据布局|字符串 收拾整顿一下之前写的局部算法和字符串处置函数,器材没有甚么用,只是为了进修罢了。
Author: heiyeluren
Blog: http://blog.csdn.net/heiyeshuwu
Date: 2006-06-10 23:50
<?
//--------------------
// 根基数据布局算法
//--------------------
//二分查找(数组里查找某个元素)
function
bin_sch
(
$array
,
$low
,
$high
,
$k
){
if (
$low
<=
$high
){
$mid
=
intval
((
$low
+
$high
)/
2
);
if (
$array
[
$mid
] ==
$k
){
return
$mid
;
}elseif (
$k
<
$array
[
$mid
]){
return
bin_sch
(
$array
,
$low
,
$mid
-
1
,
$k
);
}else{
return
bin_sch
(
$array
,
$mid
+
1
,
$high
,
$k
);
}
}
return -
1
;
}
//按次查找(数组里查找某个元素)
function
seq_sch
(
$array
,
$n
,
$k
){
$array
[
$n
] =
$k
;
for(
$i
=
0
;
$i
<
$n
;
$i
++){
if(
$array
[
$i
]==
$k
){
break;
}
}
if (
$i
<
$n
){
return
$i
;
}else{
return -
1
;
}
}
//线性表的删除(数组中完成)
function
delete_array_element
(
$array
,
$i
)
{
$len
=
count
(
$array
);
for (
$j
=
$i
;
$j
<
$len
;
$j
++){
$array
[
$j
] =
$array
[
$j
+
1
];
}
array_pop
(
$array
);
return
$array
;
}
//冒泡排序(数组排序)
function
bubble_sort
(
$array
)
{
$count
=
count
(
$array
);
if (
$count
<=
0
) return
false
;
for(
$i
=
0
;
$i
<
$count
;
$i
++){
for(
$j
=
$count
-
1
;
$j
>
$i
;
$j
--){
if (
$array
[
$j
] <
$array
[
$j
-
1
]){
$tmp
=
$array
[
$j
];
$array
[
$j
] =
$array
[
$j
-
1
];
$array
[
$j
-
1
] =
$tmp
;
}
}
}
return
$array
;
}
//疾速排序(数组排序)
function
quick_sort
(
$array
) {
if (
count
(
$array
) <=
1
) return
$array
;
$key
=
$array
[
0
];
$left_arr
= array();
$right_arr
= array();
for (
$i
=
1
;
$i
<
count
(
$array
);
$i
++){
if (
$array
[
$i
] <=
$key
)
$left_arr
[] =
$array
[
$i
];
else
$right_arr
[] =
$array
[
$i
];
}
$left_arr
=
quick_sort
(
$left_arr
);
$right_arr
=
quick_sort
(
$right_arr
);
return
array_merge
(
$left_arr
, array(
$key
),
$right_arr
);
}
//------------------------
// PHP内置字符串函数完成
//------------------------
//字符串长度
function
strlen
(
$str
)
{
if (
$str
==
''
) return
0
;
$count
=
0
;
while (
1
){
if (
$str
[
$count
] !=
NULL
){
$count
++;
continue;
}else{
break;
}
}
return
$count
;
}
//截取子串
function
substr
(
$str
,
$start
,
$length
=
NULL
)
{
if (
$str
==
''
||
$start
>
strlen
(
$str
)) return;
if ((
$length
!=
NULL
) && (
$start
>
0
) && (
$length
>
strlen
(
$str
)-
$start
)) return;
if ((
$length
!=
NULL
) && (
$start
<
0
) && (
$length
>
strlen
(
$str
)+
$start
)) return;
if (
$length
==
NULL
)
$length
= (
strlen
(
$str
) -
$start
);
if (
$start
<
0
){
for (
$i
=(
strlen
(
$str
)+
$start
);
$i
<(
strlen
(
$str
)+
$start
+
$length
);
$i
++) {
$substr
.=
$str
[
$i
];
}
}
if (
$length
>
0
){
for (
$i
=
$start
;
$i
<(
$start
+
$length
);
$i
++) {
$substr
.=
$str
[
$i
];
}
}
if (
$length
<
0
){
for (
$i
=
$start
;
$i
<(
strlen
(
$str
)+
$length
);
$i
++) {
$substr
.=
$str
[
$i
];
}
}
return
$substr
;
}
//字符串翻转
function
strrev
(
$str
)
{
if (
$str
==
''
) return
0
;
for (
$i
=(
strlen
(
$str
)-
1
);
$i
>=
0
;
$i
--){
$rev_str
.=
$str
[
$i
];
}
return
$rev_str
;
}
//字符串对照
function
strcmp
(
$s1
,
$s2
)
{
if (
strlen
(
$s1
) <
strlen
(
$s2
)) return -
1
;
if (
strlen
(
$s1
) >
strlen
(
$s2
)) return
1
;
for (
$i
=
0
;
$i
<
strlen
(
$s1
);
$i
++){
if (
$s1
[
$i
] ==
$s2
[
$i
]){
continue;
}else{
return
false
;
}
}
return
0
;
}
//查找字符串
function
strstr
(
$str
,
$substr
)
{
$m
=
strlen
(
$str
);
$n
=
strlen
(
$substr
);
if (
$m
<
$n
) return
false
;
for (
$i
=
0
;
$i
<=(
$m
-
$n
+
1
);
$i
++){
$sub
=
substr
(
$str
,
$i
,
$n
);
if (
strcmp
(
$sub
,
$substr
) ==
0
) return
$i
;
}
return
false
;
}
//字符串交换
function
str_replace
(
$substr
,
$newsubstr
,
$str
)
{
$m
=
strlen
(
$str
);
$n
=
strlen
(
$substr
);
$x
=
strlen
(
$newsubstr
);
if (
strchr
(
$str
,
$substr
) ==
false
) return
false
;
for (
$i
=
0
;
$i
<=(
$m
-
$n
+
1
);
$i
++){
$i
=
strchr
(
$str
,
$substr
);
$str
=
str_delete
(
$str
,
$i
,
$n
);
$str
=
str_insert
(
$str
,
$i
,
$newstr
);
}
return
$str
;
}
//--------------------
// 自完成字符串处置函数
//--------------------
//拔出一段字符串
function
str_insert
(
$str
,
$i
,
$substr
)
{
for(
$j
=
0
;
$j
<
$i
;
$j
++){
$startstr
.=
$str
[
$j
];
}
for (
$j
=
$i
;
$j
<
strlen
(
$str
);
$j
++){
$laststr
.=
$str
[
$j
];
}
$str
= (
$startstr
.
$substr
.
$laststr
);
return
$str
;
}
//删除一段字符串
function
str_delete
(
$str
,
$i
,
$j
)
{
for (
$c
=
0
;
$c
<
$i
;
$c
++){
$startstr
.=
$str
[
$c
];
}
for (
$c
=(
$i
+
$j
);
$c
<
strlen
(
$str
);
$c
++){
$laststr
.=
$str
[
$c
];
}
$str
= (
$startstr
.
$laststr
);
return
$str
;
}
//复制字符串
function
strcpy
(
$s1
,
$s2
)
{
if (
strlen
(
$s1
)==
NULL
|| !isset(
$s2
)) return;
for (
$i
=
0
;
$i
<
strlen
(
$s1
);
$i
++){
$s2
[] =
$s1
[
$i
];
}
return
$s2
;
}
//毗连字符串
function
strcat
(
$s1
,
$s2
)
{
if (!isset(
$s1
) || !isset(
$s2
)) return;
$newstr
=
$s1
;
for(
$i
=
0
;
$i
<
count
(
$s
);
$i
++){
$newstr
.=
$st
[
$i
];
}
return
$newsstr
;
}
//复杂编码函数(与php_decode函数对应)
function
php_encode
(
$str
)
{
if (
$str
==
''
&&
strlen
(
$str
)>
128
) return
false
;
for(
$i
=
0
;
$i
<
strlen
(
$str
);
$i
++){
$c
=
ord
(
$str
[
$i
]);
if (
$c
>
31
&&
$c
<
107
)
$c
+=
20
;
if (
$c
>
106
&&
$c
<
127
)
$c
-=
75
;
$word
=
chr
(
$c
);
$s
.=
$word
;
}
return
$s
;
}
//复杂解码函数(与php_encode函数对应)
function
php_decode
(
$str
)
{
if (
$str
==
''
&&
strlen
(
$str
)>
128
) return
false
;
for(
$i
=
0
;
$i
<
strlen
(
$str
);
$i
++){
$c
=
ord
(
$word
);
if (
$c
>
106
&&, amp;
$c
<
127
)
$c
=
$c
-
20
;
if (
$c
>
31
&&
$c
<
107
)
$c
=
$c
+
75
;
$word
=
chr
(
$c
);
$s
.=
$word
;
}
return
$s
;
}
//复杂加密函数(与php_decrypt函数对应)
function
php_encrypt
(
$str
)
{
$encrypt_key
=
'abcdefghijklmnopqrstuvwxyz1234567890'
;
$decrypt_key
=
'ngzqtcobmuhelkpdawxfyivrsj2468021359'
;
if (
strlen
(
$str
) ==
0
) return
false
;
for (
$i
=
0
;
$i
<
strlen
(
$str
);
$i
++){
for (
$j
=
0
;
$j
<
strlen
(
$encrypt_key
);
$j
++){
if (
$str
[
$i
] ==
$encrypt_key
[
$j
]){
$enstr
.=
$decrypt_key
[
$j
];
break;
}
}
}
return
$enstr
;
}
//复杂解密函数(与php_encrypt函数对应)
function
php_decrypt
(
$str
)
{
$encrypt_key
=
'abcdefghijklmnopqrstuvwxyz1234567890'
;
$decrypt_key
=
'ngzqtcobmuhelkpdawxfyivrsj2468021359'
;
if (
strlen
(
$str
) ==
0
) return
false
;
for (
$i
=
0
;
$i
<
strlen
(
$str
);
$i
++){
for (
$j
=
0
;
$j
<
strlen
(
$decrypt_key
);
$j
++){
if (
$str
[
$i
] ==
$decrypt_key
[
$j
]){
$enstr
.=
$encrypt_key
[
$j
];
break;
}
}
}
return
$enstr
;
}
?>
算是1个熟悉的过程,所以c语言的基础有就更好,没有也不怕。
作者:
第二个灵魂
时间:
2015-2-4 10:00
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
作者:
小魔女
时间:
2015-2-9 02:56
做为1门年轻的语言,php一直很努力。
作者:
只想知道
时间:
2015-2-10 12:27
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
作者:
admin
时间:
2015-2-13 19:50
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者:
分手快乐
时间:
2015-3-1 21:45
实践是检验自己会不会的真理。
作者:
飘飘悠悠
时间:
2015-3-2 20:49
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线 \\\\\\\'_\\\\\\\' ;
作者:
小妖女
时间:
2015-3-3 14:33
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者:
愤怒的大鸟
时间:
2015-3-7 04:51
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
作者:
谁可相欹
时间:
2015-3-14 10:31
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
作者:
莫相离
时间:
2015-3-21 01:43
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者:
爱飞
时间:
2015-3-21 18:33
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
作者:
不帅
时间:
2015-4-6 03:12
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
作者:
飘灵儿
时间:
2015-4-7 12:55
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
作者:
冷月葬花魂
时间:
2015-4-15 06:13
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
作者:
若天明
时间:
2015-4-22 05:55
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者:
柔情似水
时间:
2015-4-25 23:37
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
作者:
因胸联盟
时间:
2015-5-1 10:11
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者:
深爱那片海
时间:
2015-5-1 18:10
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者:
兰色精灵
时间:
2015-5-6 03:42
写的比较杂,因为我也是个新手,不当至于大家多多指正。
作者:
乐观
时间:
2015-5-11 21:27
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2