일반적으로 사용되는 PHP 함수 코드 21개 공유
- 1. PHP 읽기 가능한 임의 문자열
-
- 이 코드는 사전에 있는 단어에 가까운 읽기 가능한 문자열, 실용적이고 비밀번호 증명 확인 기능을 생성합니다.
-
- /**************
- *@길이 – 임의의 문자열 길이(2의 배수여야 함)
- **************/
- 함수 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)];
- }
- 반환 $password;
- }
- 2. PHP는 임의의 문자열을 생성합니다.
- 읽을 수 있는 문자열이 필요하지 않은 경우 대신 이 함수를 사용하여 사용자의 임의의 비밀번호로 임의의 문자열을 생성합니다. , 등. <… 0; $i<$l; $i ) {
- $rand.= $c[rand()%strlen($c)];
- }
- $rand 반환 ;
- }
- 3. PHP로 인코딩된 이메일 주소
- 이 코드를 사용하면 모든 이메일 주소를 html 문자 엔터티로 인코딩하여 스팸 프로그램에 의해 수집되는 것을 방지할 수 있습니다.
- 함수 encode_email($email='info@domain.com', $linkText='문의하기', $attrs ='class=”emailencoder”' )
- {
- // remplazar aroba y puntos
- $email = str_replace('@', '@', $email);
- $email = str_replace('.', '.', $email);
- $email = str_split($email, 5);
- $linkText = str_replace('@', '@', $linkText);
- $linkText = str_replace('.', '.', $linkText);
- $linkText = str_split($linkText, 5);
- $part1 = '$part2 = 'ilto:';
- $part3 = '" '.$attrs .' >';
- $part4 = '';
-
- $encoded = '';
-
- $encoded 반환;
- }
-
- 4. PHP 확인 이메일 주소
-
- 이메일 확인은 아마도 가장 일반적으로 사용되는 웹 양식 확인일 것입니다. 이 코드는 이메일 주소 확인 외에도 DNS에서 MX 레코드를 확인하도록 선택할 수도 있습니다. 이메일 도메인이 속한 이메일 확인 기능을 더욱 강력하게 만듭니다. _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 목록 디렉터리 내용
-
- 함수 list_files($dir)
- {
- if(is_dir($dir))
- {
- if($handle = opendir($dir))
- {
- while(($file = readdir($handle )) !== false)
- {
- if($file != “.” && $file != “..” && $file != “Thumbs.db”)
- {
- echo ''.$file.'
- '.”n”;
- }
- }
- closedir($handle);
- }
- }
- }
-
- 6. PHP 디렉토리 삭제
-
- 디렉토리와 해당 내용을 삭제합니다.
-
- /*************
- *@l – 임의의 문자열 길이
- */
- 함수 destroyDir($dir, $virtual = false)
- {
- $ds = DIRECTORY_SEPARATOR;
- $dir = $virtual ? ($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 = = '..')
- {
- 계속;
- }
- elseif (is_dir($dir.$ds.$file))
- {
- destroyDir($dir.$ds .$file);
- }
- else
- {
- unlink($dir.$ds.$file);
- }
- }
- closedir($handle);
- rmdir($dir);
- true 반환;
- }
- else
- {
- false 반환;
- }
- }
-
- 7. JSON 데이터
-
- 오픈 API를 통해 데이터를 제공하는 트위터 등 가장 널리 사용되는 웹 서비스와 마찬가지로 JSON, XML 등 API 데이터의 다양한 전송 형식을 구문 분석하는 방법을 항상 알고 있습니다.
-
- $json_string='{"id":1,"name":"foo","email":"foo@foobar.com","interest":["wordpress","php"] } ';
- $obj=json_decode($json_string);
- echo $obj->name; //foo 인쇄
- echo $obj->interest[1] //php 인쇄
-
- 8. PHP는 XML 데이터를 구문 분석합니다
-
- //xml string
- $xml_string="
-
-
- Foo
- foo@bar.com
-
-
- Foobar
- foobar@foo.com
-
- ”;
-
- //simplexml을 사용하여 xml 문자열 로드
- $xml = simplexml_load_string($xml_string);
-
- //사용자
- foreach($xml->user를 $user로)
- {
- //액세스 속성
- echo $user['id']의 각 노드를 반복합니다. ' ';
- //하위 노드는 -> 연산자
- echo $user->name, ' ';
- echo $user->email, '
- ';
- 에 의해 액세스됩니다. }
-
- 9. PHP는 로그 약어를 생성합니다.
-
- 사용자 친화적인 로그 약어를 생성합니다.
-
- function create_slug($string){
- $slug=preg_replace('/[^A-Za-z0-9-] /', '-', $string);
- $ 반환 slug;
- }
-
- 10. PHP는 클라이언트의 실제 IP 주소를 가져옵니다.
-
- 이 함수는 사용자가 프록시 서버를 사용하더라도 사용자의 실제 IP 주소를 가져옵니다.
-
- 함수 getRealIpAddr()
- {
- if (!emptyempty($_SERVER['HTTP_CLIENT_IP']))
- {
- $ip=$_SERVER['HTTP_CLIENT_IP'];
- }
- elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR']))
- //IP가 프록시에서 전달되었는지 확인하려면
- {
- $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
- }
- else
- {
- $ip=$_SERVER['REMOTE_ADDR'];
- }
- return $ip;
- }
-
- 11. PHP 필수 파일 다운로드
-
- 는 사용자에게 필수 파일 다운로드 기능을 제공합니다.
-
- /********************
- *@file – 파일 경로
- */
- function force_download($file)
- {
- if ((isset($file))&&(file_exists($file))) {
- header(“콘텐츠 길이: “.filesize($file));
- header('Content-Type: application/octet-stream');
- header('Content-Disposition: attachment; filename= ”' . $file . '”');
- readfile(“$file”);
- } else {
- echo “선택한 파일 없음”;
- }
- }
-
- 12. PHP는 태그 클라우드를 생성합니다
-
- function getCloud( $data = array(), $minFontSize = 12, $maxFontSize = 30 )
- {
- $minimumCount = min( array_values( $data ) );
- $maximumCount = max( array_values( $data ) );
- $spread = $maximumCount – $minimumCount;
- $cloudHTML = ”;
- $cloudTags = array();
-
- $spread == 0 && $spread = 1;
-
- foreach( $data as $tag => $count )
- {
- $size = $minFontSize( $count – $minimumCount )
- * ( $maxFontSize – $minFontSize ) / $spread;
- $cloudTags[] = '.'” href=”#” title=”” $tag .
- '' 를 반환했습니다. ' . $count . '">'
- .htmlspecialchars(stripslashes( $tag ) ) . '';
- }
-
- return( "n", $cloud JoinTags ) . " n";
- }
- /**************************
- **** 샘플 사용법 ***/
- $arr = Array('Actionscript' => 35, 'Adobe' => 22, 'Array' => 44, '배경' => 43,
- '흐림' => 18, '캔버스' => 15, '색상 팔레트' => 42,
- '구분자' => 13, '깊이' => 8, '인코딩' => 30,
- '추출 ' => 28, '필터' => 42);
- echo getCloud($arr, 12, 36);
-
- 13. PHP는 두 문자열 사이의 유사성을 찾습니다.
-
- PHP 거의 사용되지 않는 유사한 텍스트 함수를 제공하지만 이 함수는 두 문자열을 비교하고 유사성 비율을 반환하는 데 매우 유용합니다.
-
- similar_text($string1, $string2, $percent);
- //$percent는 유사성 비율을 갖습니다
-
- 14. PHP는 애플리케이션에서 Gravatar 범용 아바타를 사용합니다
-
- WordPress가 점점 인기를 끌면서 Gravatar도 인기를 얻고 있습니다. Gravatar는 사용하기 쉬운 API를 제공하므로 이를 애플리케이션에 통합하는 것이 쉽습니다.
-
- /******************
- *@email –
- *@size – 그라바타 크기
- *@default – 기본 그라바타의 URL에 대한 그라바타를 표시할 이메일 주소 사용
- *@rated – Gravatar 등급(G, PG, R, X)
- */
- function show_gravatar($email, $size, $default, $ating)
- {
- echo ''&default='.$default.' &size='.$size.'&ating='.$rated.'" width="'.$size.'px"
- height="'.$size.'px" />';
- }
-
- 15. PHP는 문자 중단점에서 텍스트를 자릅니다.
-
- 소위 단어 나누기(word break)는 줄을 변경할 때 단어가 끊어지는 곳입니다.
-
- // Chirp Internet의 원본 PHP 코드: www.chirp.com.au
- // 이 헤더를 포함하여 이 코드의 사용을 인정해 주세요.
- function myTruncate($string, $limit, $break=”.”, $pad=”…”) {
- // 문자열이 $limit보다 짧은 경우 변경 없이 반환
- if(strlen($string) <= $limit)
- return $string;
- // $limit와 문자열 끝 사이에 $break가 있습니까?
- if(false !== ($breakpoint = strpos($string, $break, $limit) )) {
- if($breakpoint < strlen($string) – 1) {
- $string = substr($string, 0, $breakpoint) . $pad;
- }
- }
- return $string;
- }
- /***** 예 ****/
- $short_string=myTruncate($long_string, 100, ' ');
- 16. PHP文件 Zip 压缩
- /* 압축된 zip 파일 생성 */
- function create_zip($files = array(),$destination = ”,$overwrite = false) {
- //if zip 파일이 이미 존재하고 덮어쓰기가 false이면 false를 반환합니다
- if(file_exists($destination) && !$overwrite) { return false; }
- //vars
- $valid_files = array();
- //파일이 전달된 경우…
- if(is_array($files)) {
- //각 파일을 순환
- foreach($files as $file) {
- //파일이 존재하는지 확인
- if(file_exists($file)) {
- $valid_files[] = $file;
- }
- }
- }
- //좋은 파일이 있는 경우…
- if(count($valid_files)) {
- //아카이브 생성
- $zip = new ZipArchive();
- if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
- return false;
- }
- //파일 추가
- foreach($valid_files as $file) {
- $zip->addFile($file,$file);
- }
- //debug
- //echo 'zip 아카이브에는 다음이 포함됩니다. ',$zip->numFiles,' 상태가 ',$zip->status;
-
- //zip 닫기 — 완료!
- $zip->close();
-
- //파일이 있는지 확인하세요
- return file_exists($destination);
- }
- else
- {
- return false;
- }
- }
- /***** 사용 예 ***/
- $files=array('file1.jpg', 'file2.jpg', 'file3.gif');
- create_zip($files, 'myzipfile. zip', 참);
-
- 17. PHP解压缩 Zip 문서 작성
-
- /**********************
- *@file – zip 파일 경로
- *@destination – 압축이 풀린 파일의 대상 디렉터리
- */
- function unzip_file($file, $destination){
- // 객체 생성
- $zip = new ZipArchive() ;
- // 아카이브 열기
- if ($zip->open($file) !== TRUE) {
- die ('아카이브를 열 수 없습니다');
- }
- // 대상 디렉토리에 내용 추출
- $zip->extractTo($destination);
- // 아카이브 닫기
- $zip->close();
- echo '디렉토리에 추출된 아카이브';
- }
-
- 18. PHP는 URL 地址预设 http 字符串
-
- 有时需要接受一些表单中的网址输入,但用户很少添加 http:// 字段,此代码将为网址添加该字段。
-
- if (!preg_match(“/^(http|ftp):/”, $_POST['url'])) {
- $_POST['url'] = 'http://'.$_POST[' url'];
- }
-
- 19. PHP将网址字符串转换成超级链接
-
- 该函数将 URL 및 이메일 地址字符串转换为可点击的超级链接。
-
- 기능 makeClickableLinks($text) {
- $text = eregi_replace('(((f|ht)lianqiangjavatp://)[-a-zA-Z0-9@:%_ .~#?&//=] )',
- '1', $text);
- $text = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_ .~#?&// =] )',
- '12', $text);
- $text = eregi_replace('([_.0-9a-z-] @([0-9a-z][0-9a- z-] .) [a-z]{2,3})',
- '1', $text);
-
- return $text;
- }
-
- 20. PHP调整图image尺寸
-
- 创建图image缩略图需要许多时间,此代码将有助于了解缩略图的逻辑。
-
- /**********************
- *@filename – 이미지 경로
- *@tmpname – 썸네일의 임시 경로
- *@xmax – max 너비
- *@ymax – 최대 높이
- */
- 함수 resize_image( $filename, $tmpname, $xmax, $ymax)
- {
- $ext = 폭발(“.”, $filename);
- $ext = $ext[count($ext)-1];
-
- if($ext == “jpg” || $ext == “jpeg”)
- $im = imagecreatefromjpeg($tmpname);
- elseif($ext == “png”)
- $im = imagecreatefrompng($tmpname);
- elseif($ext == “gif”)
- $im = imagecreatefromgif($tmpname);
-
- $x = Imagesx($im );
- $y = 이미지($im);
-
- if($x <= $xmax && $y <= $ymax)
- return $im;
- if($x >= $y) {
- $newx = $xmax;
- $newy = $newx * $y / $x;
- }
- else {
- $newy = $ymax;
- $newx = $x / $y * $newy;
- }
-
- $im2 = imagecreatetruecolor($newx, $newy);
- imagecopyreised($im2, $ im, 0, 0, 0, 0, 바닥($newx), 바닥($newy), $x, $y);
- return $im2;
- }
-
- 21. PHP检测 ajax 请求
-
- 다양한 JavaScript 框架如 jquery, Mootools에서 Ajax 请求时, city发送额외부 HTTP_X_REQUESTED_WITH 头部信息,头当他们一个ajax请求,因此你可以服务器端侦测到 Ajax 请求。
-
- if(!emptyempty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
- //AJAX 요청인 경우 그럼
- }다른 것{
- //다른 것
- }
-
-
코드 복사
|