>백엔드 개발 >PHP 튜토리얼 >php: 몇 가지 실용적인 사용자 정의 함수 요약

php: 몇 가지 실용적인 사용자 정의 함수 요약

伊谢尔伦
伊谢尔伦원래의
2017-06-26 09:48:511750검색

PHP와 함께 제공되는 함수 라이브러리는 매우 강력하지만 많은 일상적인 상황에서 특정 기능과 요구 사항을 달성하려면 여전히 자체 사용자 정의 함수를 작성해야 합니다. 아래에는 URL 문자열을 하이퍼링크로 변환, 디렉토리 내용 나열, 이메일 주소 확인 등과 같은 몇 가지 일반적인 요구 사항을 해결하는 좀 더 실용적인 사용자 정의 기능이 포함되어 있습니다.

1. PHP는 임의의 문자열을 읽을 수 있습니다.

이 코드는 사전에 있는 단어에 더 가깝고 실용적이며 비밀번호 확인 기능이 있는 읽기 가능한 문자열을 만듭니다.

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는 임의의 문자열을 생성합니다

읽을 수 있는 문자열이 필요하지 않은 경우 대신 이 함수를 사용하여 사용자의 임의 비밀번호 등으로 임의의 문자열을 생성하세요.

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=&#39;info@domain.com&#39;, $linkText=&#39;Contact Us&#39;, $attrs =&#39;class="emailencoder"&#39; )
 {
     // remplazar aroba y puntos
     $email = str_replace(&#39;@&#39;, &#39;@&#39;, $email);
     $email = str_replace(&#39;.&#39;, &#39;.&#39;, $email);
     $email = str_split($email, 5); 
  
     $linkText = str_replace(&#39;@&#39;, &#39;@&#39;, $linkText);
     $linkText = str_replace(&#39;.&#39;, &#39;.&#39;, $linkText);
     $linkText = str_split($linkText, 5); 
  
     $part1 = &#39;<、a href="ma&#39;;
     $part2 = &#39;ilto:&#39;;
     $part3 = &#39;" &#39;. $attrs .&#39; >&#39;;
     $part4 = &#39;<、/a>&#39;; 
  
     $encoded = &#39;<、script type="text/javascript">&#39;;
     $encoded .= "document.write(&#39;$part1&#39;);";
     $encoded .= "document.write(&#39;$part2&#39;);";
     foreach($email as $e)
     {
             $encoded .= "document.write(&#39;$e&#39;);";
     }
     $encoded .= "document.write(&#39;$part3&#39;);";
     foreach($linkText as $l)
     {
             $encoded .= "document.write(&#39;$l&#39;);";
     }
     $encoded .= "document.write(&#39;$part4&#39;);";
     $encoded .= &#39;<、/script>&#39;; 
  
     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 &#39;<、a target="_blank" href="&#39;.$dir.$file.&#39;">&#39;.$file.&#39;<、/a><、br>&#39;."\n";                 }
           }
           closedir($handle);
       }
   }
}

6. PHP Destroy 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 == &#39;.&#39; || $file == &#39;..&#39;)
           {
               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 데이터를 구문 분석합니다

개방형 API를 통해 데이터를 제공하는 트위터와 같은 가장 인기 있는 웹 서비스와 마찬가지로 JSON, XML 등을 포함한 다양한 API 데이터 전송 형식을 구문 분석하는 방법을 항상 알고 있습니다.

$json_string=&#39;{"id":1,"name":"foo","email":"foo@foobar.com","interest":["wordpress","php"]} &#39;;
$obj=json_decode($json_string);
echo $obj->name; //prints foo
echo $obj->interest[1]; //prints php

8. PHP

//xml string
 $xml_string="
 <、users>
 <、user id=&#39;398&#39;>
 <、name>Foo<、/name>
 <、email>foo@bar.com<、/name>
 <、/user>
 <、user id=&#39;867&#39;>
 <、name>Foobar<、/name>
 <、email>foobar@foo.com<、/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[&#39;id&#39;], &#39; &#39;;
     //subnodes are accessed by -> operator
     echo $user->name, &#39; &#39;;
     echo $user->email, &#39;<、br />&#39;;
 }

9를 사용하여 XML 데이터를 구문 분석합니다. PHP

사용자 친화적인 로그 약어를 만듭니다.

function create_slug($string){
   $slug=preg_replace(&#39;/[^A-Za-z0-9-]+/&#39;, &#39;-&#39;, $string);
   return $slug;
}

10. PHP는 클라이언트의 실제 IP 주소를 가져옵니다.

이 기능은 사용자가 프록시 서버를 사용하더라도 사용자의 실제 IP 주소를 가져옵니다.

function getRealIpAddr()
{
   if (!emptyempty($_SERVER[&#39;HTTP_CLIENT_IP&#39;]))
   {
       $ip=$_SERVER[&#39;HTTP_CLIENT_IP&#39;];
   }
   elseif (!emptyempty($_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;]))
   //to check ip is pass from proxy
   {
       $ip=$_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;];
   }
   else
   {
       $ip=$_SERVER[&#39;REMOTE_ADDR&#39;];
   }
   return $ip;
}

11. PHP 필수 파일 다운로드

는 사용자에게 필수 파일 다운로드 기능을 제공합니다.

아아아아

위 내용은 php: 몇 가지 실용적인 사용자 정의 함수 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.