ホームページ >バックエンド開発 >PHPチュートリアル >PHP でよく使用されるいくつかの関数のまとめ (概要)

PHP でよく使用されるいくつかの関数のまとめ (概要)

不言
不言オリジナル
2018-08-06 15:35:042830ブラウズ

この記事は、PHP でよく使われるいくつかの関数の概要 (要約) を紹介します。これは一定の参考価値があります。必要な友人はそれを参照できます。お役に立てば幸いです。

1. Web サイトが http か https かを取得します?

$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 
'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && 
$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 
'http://';

2. 配列内の空のデータを削除します

function where_data($data)
			{
			    foreach ($data as $k => $v) {
			        if (empty($v) && $v !='0') {
			            unset($data[$k]);
			        }
			    }
			    return $data;
			}

3. リッチ テキストの一部をインターセプト

/**
 * 将富文本中文字截取其中的一部分
 * @param $content
 * @return string
 */
function html_substr_content($content,$length=100)
{
    $content = htmlspecialchars_decode($content);      //把一些预定义的 HTML 实体转换为字符
    $content = str_replace(" ", "", $content);     //将空格替换成空
    $content = strip_tags($content);                 //函数剥去字符串中的 HTML、XML 以及 PHP 的标签,获取纯文本内容
    $con = mb_substr($content, 0, $length, "utf-8");   //返回字符串中的前100字符串长度的字符
    return $con;
}

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();

3. インターネットからファイルをダウンロード##

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);

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

$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;
}

5. 画面キャプチャ

$filename= "test.jpg";
list($w, $h, $type, $attr) = getimagesize($filename);
$src_im = imagecreatefromjpeg($filename);
$src_x = &#39;0&#39;; // begin x
$src_y = &#39;0&#39;; // begin y
$src_w = &#39;100&#39;; // width
$src_h = &#39;100&#39;; // height
$dst_x = &#39;0&#39;; // destination x
$dst_y = &#39;0&#39;; // destination y
$dst_im = imagecreatetruecolor($src_w, $src_h);
$white = imagecolorallocate($dst_im, 255, 255, 255);
imagefill($dst_im, 0, 0, $white);
imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h);
header("Content-type: image/png");
imagepng($dst_im);
imagedestroy($dst_im);

6. 「Web サイトがダウンしていますか?」を確認してください

function Visit($url){
    $agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";$ch=curl_init();
curl_setopt ($ch, CURLOPT_URL,$url );
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch,CURLOPT_VERBOSE,false);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch,CURLOPT_SSLVERSION,3);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);
$page=curl_exec($ch);
//echo curl_error($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($httpcode>=200 && $httpcode<300) return true;
else return false;
}
if (Visit("http://www.google.com"))
echo "Website OK"."n";
else
echo "Website DOWN";

おすすめ関連記事:

php 参照変数とは何ですか? PHP では引用はどのように実装されていますか?

php7 と php5 の違いは何ですか? php5 と php7 の比較

以上がPHP でよく使用されるいくつかの関数のまとめ (概要)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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