相信许多刚开始学习php时不知道怎么开始写代码,脑袋一头雾水,逻辑可能也没有弄明白,所以这次分享一波php教程,给大家参考一下


1. PHP可阅读随机字符串


此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能。

/**************


[email protected] – length of random string (must be a multiple of 2)


**************/


function readable_random_string($length = 6){


$conso=array(“b”,”c”,”d”,”f”,”g”,”h”,”j”,”k”,”l”,


“m”,”n”,”p”,”r”,”s”,”t”,”v”,”w”,”x”,”y”,”z”);


$vocal=array(“a”,”e”,”i”,”o”,”u”);


$password=””;


srand ((double)microtime()*1000000);


$max = $length/2;


for($i=1; $i<=$max; $i++)


{


$password.=$conso[rand(0,19)];


$password.=$vocal[rand(0,4)];


}


return $password;


}

2. PHP生成一个随机字符串

如果不需要可阅读的字符串,使用此函数替代,即可创建一个随机字符串,作为用户的随机密码等。


/*************


[email protected] – length of random string


*/


function generate_rand($l){


$c= “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789”;


srand((double)microtime()*1000000);


for($i=0; $i<$l; $i++) {


$rand.= $c[rand()%strlen($c)];


}


return $rand;


}

3. PHP编码电子邮件地址

使用此代码,可以将任何电子邮件地址编码为 html 字符实体,以防止被垃圾邮件程序收集。

function encode_email([email protected], $linkText=’Contact Us’, $attrs =’class=”emailencoder”’ )


{


// remplazar aroba y puntos


$email = str_replace([email protected], ’&#64;’, $email);


$email = str_replace(’.’, ’&#46;’, $email);


$email = str_split($email, 5);

$linkText = str_replace([email protected], ’&#64;’, $linkText);


$linkText = str_replace(’.’, ’&#46;’, $linkText);


$linkText = str_split($linkText, 5);

$part1 = ’<a href=”ma’;


$part2 = ’ilto&#58;’;


$part3 = ’” ’. $attrs .’ >’;


$part4 = ’</a>’;

$encoded = ’<script type=”text/javascript”>’;


$encoded .= “document.write(’$part1’);”;


$encoded .= “document.write(’$part2’);”;


foreach($email as $e)


{


$encoded .= “document.write(’$e’);”;


}


$encoded .= “document.write(’$part3’);”;


foreach($linkText as $l)


{


$encoded .= “document.write(’$l’);”;


}


$encoded .= “document.write(’$part4’);”;


$encoded .= ’</script>’;

return $encoded;


}

4. PHP验证邮件地址

电子邮件验证也许是中最常用的网页表单验证,此代码除了验证电子邮件地址,也可以选择检查邮件域所属 DNS 中的 MX 记录,使邮件验证功能更加强大。

function is_valid_email($email, $test_mx = false)


{


if(eregi(“^([_a-z0-9-]+)(.[_a-z0-9-]+)*@([a-z0-9-]+)(.[a-z0-9-]+)*(.[a-z]{2,4})$”, $email))


if($test_mx)


{


list($username, $domain) = split(“@”, $email);


return getmxrr($domain, $mxrecords);


}


else


return true;


else


return false;


}

5. PHP列出目录内容

function list_files($dir)


{


if(is_dir($dir))


{


if($handle = opendir($dir))


{


while(($file = readdir($handle)) !== false)


{


if($file != “.” && $file != “..” && $file != “Thumbs.db”)


{


echo ’<a target=”_blank” href=”’.$dir.$file.’”>’.$file.’</a><br>’.”n”;


}


}


closedir($handle);


}


}


}

6. PHP销毁目录

删除一个目录,包括它的内容。

/*****


[email protected] – Directory to destroy


[email protected][optional]- whether a virtual directory


*/


function destroyDir($dir, $virtual = false)


{


$ds = DIRECTORY_SEPARATOR;


$dir = $virtual ? realpath($dir) : $dir;


$dir = substr($dir, -1) == $ds ? substr($dir, 0, -1) : $dir;


if (is_dir($dir) && $handle = opendir($dir))


{


while ($file = readdir($handle))


{


if ($file == ’.’ || $file == ’..’)


{


continue;


}


elseif (is_dir($dir.$ds.$file))


{


destroyDir($dir.$ds.$file);


}


else


{


unlink($dir.$ds.$file);


}


}


closedir($handle);


rmdir($dir);


return true;


}


else


{


return false;


}


}

7. PHP解析 JSON 数据

与大多数流行的 Web 服务如 twitter 通过开放 API 来提供数据一样,它总是能够知道如何解析 API 数据的各种传送格式,包括 JSON,XML 等等。

$json_string=’{“id”:1,”name”:”foo”,”email”:”[email protected]”,”interest”:[“wordpress”,”php”]} ’;


$obj=json_decode($json_string);


echo $obj->name; //prints foo


echo $obj->interest[1]; //prints php

8. PHP解析 XML 数据

//xml string


$xml_string=”<?xml version=’1.0’?>


<users>


<user id=’398’>


<name>Foo</name>


<email>[email protected]</name>


</user>


<user id=’867’>


<name>Foobar</name>


<email>[email protected]</name>


</user>


</users>”;

//load the xml string using simplexml


$xml = simplexml_load_string($xml_string);

//loop through the each node of user


foreach ($xml->user as $user)


{


//access attribute


echo $user[’id’], ’ ’;


//subnodes are accessed by -> operator


echo $user->name, ’ ’;


echo $user->email, ’<br />’;


}

9. PHP创建日志缩略名

创建用户友好的日志缩略名。

function create_slug($string){


$slug=preg_replace(’/[^A-Za-z0-9-]+/’, ’-’, $string);


return $slug;


}

10. PHP获取客户端真实 IP 地址

该函数将获取用户的真实 IP 地址,即便他使用代理服务器。

function getRealIpAddr()


{


if (!emptyempty($_SERVER[’HTTP_CLIENT_IP’]))


{


$ip=$_SERVER[’HTTP_CLIENT_IP’];


}


elseif (!emptyempty($_SERVER[’HTTP_X_FORWARDED_FOR’]))


//to check ip is pass from proxy


{


$ip=$_SERVER[’HTTP_X_FORWARDED_FOR’];


}


else


{


$ip=$_SERVER[’REMOTE_ADDR’];


}


return $ip;


}

写在最后:这次分享的代码大家可以实践一下,看是否适合你们。更多关于初级php教程欢迎持续关注编程学习网,get新技能