ホームページ  >  記事  >  バックエンド開発  >  よく使用される 21 の PHP 関数コード スニペットを共有します

よく使用される 21 の PHP 関数コード スニペットを共有します

WBOY
WBOYオリジナル
2016-07-25 09:08:31980ブラウズ
一般的に使用される 21 の PHP 関数コード スニペットを共有します
  1. 1. PHP 読み取り可能なランダム文字列
  2. このコードは、辞書の単語に近い、実用的でパスワード検証機能を備えた読み取り可能な文字列を作成します。
  3. /**************
  4. *@length –ランダムな文字列の長さ (2 の倍数である必要があります)
  5. **************/
  6. function readable_random_string($length = 6){
  7. $conso=array("b","c","d","f","g","h", "j"、"k"、"l"、
  8. "m"、"n"、"p"、"r"、"s"、"t"、"v"、"w"、"x"、" y","z");
  9. $vocal=array("a","e","i","o","u");
  10. $password=”";
  11. srand ((double)microtime( )*1000000);
  12. $max = $length/2;
  13. for($i=1; $i{
  14. $password.=$conso[rand(0,19)];
  15. $password.=$vocal[rand(0,4)];
  16. }
  17. return $password;
  18. }
  19. 2. PHP はランダムな文字列を生成します
  20. 読み取り可能な文字列が必要ない場合は、代わりにこの関数を使用してください。 、ユーザーのランダムなパスワードなどとしてランダムな文字列を作成できます。
  21. /*ターl; $i++) {
  22. $rand.= $c[rand()%strlen($c)];
  23. }
  24. return $rand;
  25. }
  26. 3. PHP エンコードメールアドレス
  27. 任意のメールスパム プログラムによる収集を防ぐために、アドレスを HTML 文字エンティティとしてエンコードできます。
  28. function encode_email($email='info@domain.com', $linkText='お問い合わせ', $attrs ='class=”emailencoder”' )
  29. {
  30. // remplazar aroba y puntos
  31. $email = str_replace( '@', '@', $email);
  32. $email = str_replace('.', '.', $email);
  33. $email = str_split($email, 5);
  34. $linkText = str_replace('@', '@', $linkText);
  35. $linkText = str_replace('.', '.', $linkText);
  36. $linkText = str_split($linkText, 5);
  37. $part1 = '$part2 = 'ilto:';
  38. $part3 = '" '. $attrs >';
  39. $part4 = '';
  40. $encoded = '';
  41. return $encoded;
  42. }
  43. 4. PHP 検証電子メール アドレス
  44. 電子メール検証は、電子メール アドレスの検証に加えて、DNS の MX をチェックすることも選択できます。メールドメインが属するレコード。
  45. function is_valid_email($email, $test_mx = false)
  46. {
  47. if(“^([_a-z0-9-]+) (.[_a-z0-9 -]+)*@([a-z0-9-]+)(.[a-z0-9-]+)*(.[a-z]{2,4})$ ”, $email))
  48. if ($test_mx)
  49. {
  50. list($username, $domain) = split(“@”, $email);
  51. return getmxrr($domain, $mxrecords);
  52. }
  53. else
  54. return true;
  55. else
  56. return false ;
  57. }
  58. 5. PHP ディレクトリの内容をリストする
  59. function list_files($dir)
  60. {
  61. if(is_dir($dir))
  62. {
  63. if($handle = opendir($dir) ))
  64. {
  65. while( ($file = readdir($handle)) !== false)
  66. {
  67. if($file != “.” && $file != “..” && $file != “親指.db”)
  68. {
  69. echo ''.$file.'
  70. '.”n”;
  71. }
  72. }
  73. closedir($handle);
  74. }
  75. }
  76. }
  77. 6. PHP ディレクトリを削除します
  78. ディレクトリとその内容を含みます。
  79. /*************
  80. *@l – ランダムな文字列の長さ
  81. */
  82. function destroyDir($dir, $virtual = false)
  83. {
  84. $ds = DIRECTORY_SEPARATOR;
  85. $dir = $virtualpath($dir) : $dir;
  86. $dir = substr($dir, -1) == $ds ? substr($dir, 0, -1) : $dir;
  87. if (is_dir($dir) && $handle = opendir($dir))
  88. {
  89. while ( $file = readdir($handle))
  90. {
  91. if ($file == '.' || $file == '..')
  92. {
  93. 続行;
  94. }
  95. elseif (is_dir($dir.$ds. $file))
  96. {
  97. destroyDir($dir.$ds.$file);
  98. }
  99. else
  100. {
  101. unlink($dir.$ds.$file);
  102. }
  103. }
  104. closedir($handle);
  105. rmdir($dir);
  106. return true;
  107. }
  108. else
  109. {
  110. return false;
  111. }
  112. }
  113. 7. PHP は JSON データを解析します
  114. twitter などの最も一般的な Web サービスがオープン API を通じてデータを提供するのと同じように、 JSON、XML などの API データのさまざまな送信形式を解析する方法を常に知っています。
  115. $json_string='{"id":1,"name":"foo","email":"foo@foobar.com","interest":["wordpress","php"]} ';
  116. $obj=json_decode($json_string);
  117. echo $obj->name; //foo
  118. echo $obj->interest[1] //PHP は XML データを解析します
  119. // xml string
  120. $xml_string=”
  121. Foo
  122. foo@bar.com
  123. Foobar
  124. foobar@foo.com
  125. ”;
  126. //simplexmlを使用してxml文字列をロードします
  127. $xml = simplexml_load_string($xml_string) ;
  128. //user
  129. foreach ($xml->user as $user)の各ノードをループします
  130. {
  131. //アクセス属性
  132. echo $user['id'], ' ';
  133. //サブノードは-> 演算子でアクセス
  134. echo $user->name, ' ';
  135. echo $user->email, '
  136. ';
  137. }
  138. 9. PHP はログの省略形を作成します
  139. ユーザーフレンドリーなログの省略形を作成します。
  140. function create_slug($string){
  141. $slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);
  142. return $slug;
  143. }
  144. 10 . PHP はクライアントの実際の IP アドレスを取得します
  145. この関数は、プロキシ サーバーを使用している場合でも、ユーザーの実際の IP アドレスを取得します。
  146. function getRealIpAddr()
  147. {
  148. if (!emptyempty($_SERVER['HTTP_CLIENT_IP']))
  149. {
  150. $ip=$_SERVER['HTTP_CLIENT_IP'];
  151. }
  152. elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_F)または ']))
  153. //IP がプロキシから渡されたことを確認するには
  154. {
  155. $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
  156. }
  157. else
  158. {
  159. $ip=$_SERVER['REMOTE_ADDR'];
  160. }
  161. return $ip;
  162. }
  163. 11. PHP 必須ファイルダウンロード
  164. は、ユーザーに必須ファイルダウンロード機能を提供します。
  165. /********************
  166. *@file – ファイルへのパス
  167. */
  168. functionforce_download($file)
  169. {
  170. if ((isset($file))&&(file_exists($file))) {
  171. header(“Content-length: “.filesize ($file));
  172. header('Content-Type: application/octet-stream');
  173. header('Content-Disposition:attachment; filename="' . $file . '"');
  174. readfile("$ file”);
  175. } else {
  176. echo “ファイルが選択されていません”;
  177. }
  178. }
  179. 12. PHP はタグクラウドを作成します
  180. function getCloud( $data = array(), $minFontSize = 12, $maxFontSize = 30 )
  181. {
  182. $minimumCount = min( array_values( $data ) );
  183. $maximumCount = max( array_values( $data ) );
  184. $spread = $maximumCount – $minimumCount;
  185. $cloudHTML = ”;
  186. $cloudTags = array( );
  187. $spread == 0 && $spread = 1;
  188. foreach( $data as $tag => $count )
  189. {
  190. $size = $minFontSize + ( $count – $minimumCount )
  191. * ( $ maxFontSize – $minFontSize ) / $spread;
  192. $cloudTags[] = '. '" href="#" title="" . $tag .
  193. '' は ' . $count . '">'
  194. のカウントを返しました.htmlspecialchars(stripslashes( $tag ) ) .'';
  195. }
  196. return join( "n", $cloudTags ) . "n";
  197. }
  198. /***************************
  199. **** 使用例 ***/
  200. $arr(' 'アクションスクリプト' => 35、'配列' => 43、'キャンバス' => ' => 15、'カラーパレット' => 11、'デリミタ' => 34、'エンコード' ' => 12, '暗号化' => 30,
  201. '抽出' => 28, 'フィルター' => 42);
  202. echo getCloud($arr, 12, 36);
  203. 13 2 つの文字列の類似性
  204. PHP には、めったに使用されない類似テキスト関数が用意されていますが、この関数は 2 つの文字列を比較し、類似性のパーセンテージを返すのに非常に役立ちます。
  205. similar_text($string1, $string2, $percent);
  206. //$percent は類似性のパーセンテージを持ちます
  207. 14. PHP はアプリケーションで Gravatar を使用します ユニバーサルアバター
  208. WordPress がますます人気になるにつれて、Gravatar もまたそれになります人気になりました。 Gravatar は使いやすい API を提供するため、アプリケーションに簡単に組み込むことができます。
  209. /******************
  210. *@email – グラバターを表示するメールアドレス
  211. *@size – グラバターのサイズ
  212. *@default – 使用するデフォルトのグラバターのURL
  213. *@評価– Gravatarの評価(G、PG、R、X)
  214. */
  215. function show_gravatar($email, $size, $default, $rated)
  216. {
  217. echo ''&default='.$default.'&size='.$size.'&rated= '.$評価.'" width="'.$size.'px"
  218. height="'.$size.'px" />';
  219. }
  220. 15. PHP は文字ブレークポイントでテキストを切り捨てます
  221. いわゆるワードブレークは、行を変更するときに単語が分割される可能性がある場所です。この関数は、ワードブレークで文字列を切り捨てます。
  222. // Chirp Internet によるオリジナルの PHP コード: www.chirp.com.au
  223. // このヘッダーを含めることで、このコードの使用を承認してください。
  224. function myTruncate($string, $limit, $break=”.”, $ Pad=”…”) {
  225. // string が $limit より短い場合は、変更せずに戻ります
  226. if(strlen($string) <= $limit)
  227. return $string;
  228. // $ の間に $break が存在しますlimit と文字列の終わり?
  229. if(false !== ($breakpoint = strpos($string, $break, $limit))) {
  230. if($breakpoint < strlen($string) – 1) {
  231. $string = substr($string, 0, $breakpoint) 。 $pad;
  232. }
  233. }
  234. return $string;
  235. }
  236. /***** 例 ****/
  237. $short_string=myTruncate($long_string, 100, ‘ ‘);
  238. 16. PHP文件 Zip 压缩
  239. /* 圧縮 zip ファイルを作成します */
  240. function create_zip($files = array(),$destination = ”,$overwrite = false) {
  241. //zip ファイルが既に存在し、上書きが false の場合, return false
  242. if(file_exists($destination) && !$overwrite) { return false; }
  243. //vars
  244. $valid_files = array();
  245. //ファイルが渡された場合…
  246. if(is_array($files)) {
  247. //各ファイルを循環します
  248. foreach($files as $file) {
  249. // ファイルが存在することを確認してください
  250. if(file_exists($file)) {
  251. $valid_files[] = $file;
  252. }
  253. }
  254. }
  255. // 適切なファイルがあれば…
  256. if(count($valid_files)) {
  257. //アーカイブを作成します
  258. $zip = new ZipArchive();
  259. if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
  260. return false;
  261. }
  262. //ファイルを追加します
  263. foreach($valid_files as $file) {
  264. $zip->addFile($file,$file);
  265. }
  266. //debug
  267. //echo 'zip アーカイブには次のものが含まれます',$zip->numFiles,' ステータスが ',$zip->status;
  268. //zip を閉じます — 完了!
  269. $zip->close();
  270. //チェックしてくださいファイルが存在することを確認してください
  271. return file_exists($destination);
  272. }
  273. else
  274. {
  275. return false;
  276. }
  277. }
  278. /***** 使用例 ***/
  279. $files=array('file1.jpg', 'file2 .jpg', 'file3.gif');
  280. create_zip($files, 'myzipfile.zip', true);
  281. 17. PHP 解压缩 Zip 文件
  282. /**********************
  283. *@file – zip ファイルへのパス
  284. *@destination – 解凍されたファイルの宛先ディレクトリ
  285. */
  286. function unzip_file($file, $destination){
  287. // create object
  288. $zip = new ZipArchive() ;
  289. // open archive
  290. if ($zip ->open($file) !== TRUE) {
  291. die ('アーカイブを開けませんでした');
  292. }
  293. // コンテンツを宛先ディレクトリに抽出します
  294. $zip->extractTo($destination);
  295. //アーカイブを閉じる
  296. $zip->close();
  297. echo 'アーカイブをディレクトリに抽出';
  298. }
  299. 18. PHP は、URL アドレスに http 文字列を設定します
  300. 場合によっては、表内の一部のネットワーク アクセスを受け入れる必要がありますが、http:// フィールドを追加する必要はなく、このコードがそのフィールドを追加するネットワークになります。
  301. if (!preg_match(“/ ^(http|ftp):/”, $_POST['url'])) {
  302. $_POST['url'] = 'http://'.$_POST['url'];
  303. }
  304. 19. PHP は、ネットワークの文字列を超級接続に変換します。
  305. この関数は、URL と電子メールの地名文字列を可用性ポイントの超級接続に変換します。 |ht)lianqiangjavatp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)',
  306. '1', $text);
  307. $text = eregi_replace( '([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)',
  308. '12', $text);
  309. $text = eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2, 3})',
  310. '1', $text);
  311. return $text;
  312. }
  313. 20。 PHP は画像のサイズを調整します
  314. 画像の略図を作成するには時間がかかりますが、このコードは略図の理解に役立ちます。 ymax)
  315. {
  316. $ext =explode(“.”, $filename);
  317. $ext = $ext[count($ext)-1];
  318. if($ext == “jpg” || $ext = = “jpeg”)
  319. $im = imagecreatefromjpeg($tmpname);
  320. elseif($ext == “png”)
  321. $im = imagecreatefrompng($tmpname);
  322. elseif($ext == “gif”)
  323. $im = imagecreatefromgif($tmpname);
  324. $x = 画像x($im);
  325. $y = 画像sy($im);
  326. if($x return $im;
  327. if($x >= $y) {
  328. $newx = $xmax;
  329. $newy = $newx * $y / $x;
  330. }
  331. else {
  332. $newy = $ymax;
  333. $ newx = $x / $y * $newy;
  334. }
  335. $im2 = imagecreatetruecolor($newx, $newy);
  336. imagecopyresize($im2, $im, 0, 0, 0, 0, Floor($newx), Floor($newy), $x, $y);
  337. return $im2;
  338. }
  339. 21. PHP 検索 ajax 要求
  340. jquery、Mootools などの大部分の JavaScript フレーム、Ajax 要求の発行時に、外部の HTTP_X_REQUESTED_WITH 部分情報を送信し、サーバー端末で使用できます。 Ajax への要求。
  341. if(!emptyempty($_SERVER['HTTP_X_REQUESTED_WITH']) && strto lower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
  342. //AJAX リクエストの場合
  343. }else{
  344. //他のもの
  345. }
  346. コードをコピー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。