仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1248|回复: 20
打印 上一主题 下一主题

[学习教程] PHP网站制作之数据布局和字符串处置代码收拾整顿

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:13:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
根据功能来进行封装等。很多的不懂,在使用搜索引擎查找,或者请教老师和在老师详细的讲解、指导下,都能顺利解决。数据|数据布局|字符串   收拾整顿一下之前写的局部算法和字符串处置函数,器材没有甚么用,只是为了进修罢了。

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:04 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
小魔女 该用户已被删除
板凳
发表于 2015-2-9 02:56:16 | 只看该作者
做为1门年轻的语言,php一直很努力。
只想知道 该用户已被删除
地板
发表于 2015-2-10 12:27:18 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
admin 该用户已被删除
5#
发表于 2015-2-13 19:50:28 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
分手快乐 该用户已被删除
6#
发表于 2015-3-1 21:45:14 | 只看该作者
实践是检验自己会不会的真理。
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-2 20:49:32 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
小妖女 该用户已被删除
8#
发表于 2015-3-3 14:33:48 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-7 04:51:38 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
谁可相欹 该用户已被删除
10#
发表于 2015-3-14 10:31:19 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
莫相离 该用户已被删除
11#
发表于 2015-3-21 01:43:58 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
爱飞 该用户已被删除
12#
发表于 2015-3-21 18:33:36 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
不帅 该用户已被删除
13#
发表于 2015-4-6 03:12:03 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
飘灵儿 该用户已被删除
14#
发表于 2015-4-7 12:55:07 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
冷月葬花魂 该用户已被删除
15#
发表于 2015-4-15 06:13:51 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
若天明 该用户已被删除
16#
发表于 2015-4-22 05:55:33 | 只看该作者
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
柔情似水 该用户已被删除
17#
发表于 2015-4-25 23:37:50 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
因胸联盟 该用户已被删除
18#
发表于 2015-5-1 10:11:45 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
深爱那片海 该用户已被删除
19#
发表于 2015-5-1 18:10:50 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
兰色精灵 该用户已被删除
20#
发表于 2015-5-6 03:42:31 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 21:52

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表