ホームページ  >  記事  >  バックエンド開発  >  6つのPHP関数コードの超実践的なまとめ

6つのPHP関数コードの超実践的なまとめ

伊谢尔伦
伊谢尔伦オリジナル
2017-06-29 11:25:001420ブラウズ

1. ブラックリストフィルタリング

function is_spam($text, $file, $split = ':', $regex = false){ 
  $handle = fopen($file, 'rb'); 
  $contents = fread($handle, filesize($file)); 
  fclose($handle); 
  $lines = explode("n", $contents); 
$arr = array(); 
foreach($lines as $line){ 
list($word, $count) = explode($split, $line); 
if($regex) 
$arr[$word] = $count; 
else 
$arr[preg_quote($word)] = $count; 
} 
preg_match_all("~".implode('|', array_keys($arr))."~", $text, $matches); 
$temp = array(); 
foreach($matches[0] as $match){ 
if(!in_array($match, $temp)){ 
$temp[$match] = $temp[$match] + 1; 
if($temp[$match] >= $arr[$word]) 
return true; 
} 
} 
return false; 
} 
 
$file = 'spam.txt'; 
$str = 'This string has cat, dog word'; 
if(is_spam($str, $file)) 
echo 'this is spam'; 
else 
echo 'this is not spam'; 
 
ab:3 
dog:3 
cat:2 
monkey:2

2. ランダムカラージェネレーター

function randomColor() { 
  $str = '#'; 
  for($i = 0 ; $i < 6 ; $i++) { 
    $randNum = rand(0 , 15); 
    switch ($randNum) { 
      case 10: $randNum = &#39;A&#39;; break; 
      case 11: $randNum = &#39;B&#39;; break; 
      case 12: $randNum = &#39;C&#39;; break; 
      case 13: $randNum = &#39;D&#39;; break; 
      case 14: $randNum = &#39;E&#39;; break; 
      case 15: $randNum = &#39;F&#39;; break; 
    } 
    $str .= $randNum; 
  } 
  return $str; 
} 
$color = randomColor();

4. ファイルを強制ダウンロード

set_time_limit(0); 
// Supports all file types 
// URL Here: 
$url = &#39;http://php.cn/some_video.flv&#39;; 
$pi = pathinfo($url); 
$ext = $pi[&#39;extension&#39;]; 
$name = $pi[&#39;filename&#39;]; 
 
// create a new cURL resource 
$ch = curl_init(); 
 
// set URL and other appropriate options 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); 
curl_setopt($ch, CURLOPT_AUTOREFERER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
 
// grab URL and pass it to the browser 
$opt = curl_exec($ch); 
 
// close cURL resource, and free up system resources 
curl_close($ch); 
 
$saveFile = $name.&#39;.&#39;.$ext; 
if(preg_match("/[^0-9a-z._-]/i", $saveFile)) 
$saveFile = md5(microtime(true)).&#39;.&#39;.$ext; 
 
$handle = fopen($saveFile, &#39;wb&#39;); 
fwrite($handle, $opt); 
fclose($handle);

5. りー

6. Web サイトがダウンしていないか確認してください

$filename = $_GET[&#39;file&#39;]; //Get the fileid from the URL 
// Query the file ID 
$query = sprintf("SELECT * FROM tableName WHERE id = &#39;%s&#39;",mysql_real_escape_string($filename)); 
$sql = mysql_query($query); 
if(mysql_num_rows($sql) > 0){ 
$row = mysql_fetch_array($sql); 
// Set some headers 
header("Pragma: public"); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Content-Type: application/force-download"); 
header("Content-Type: application/octet-stream"); 
header("Content-Type: application/download"); 
header("Content-Disposition: attachment; filename=".basename($row[&#39;FileName&#39;]).";"); 
header("Content-Transfer-Encoding: binary"); 
header("Content-Length: ".filesize($row[&#39;FileName&#39;])); 
 
@readfile($row[&#39;FileName&#39;]); 
exit(0); 
}else{ 
header("Location: /"); 
exit; 
}
上記は 6 つの非常に実用的な PHP コードサンプルです。PHP プログラミングを学ぶ際に役立つことを願っています。ぜひ集めてください。

以上が6つのPHP関数コードの超実践的なまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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