仓酷云

标题: 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