PHP 長すぎる行を点で表す方法

PHP

PHP 長すぎる行、入りきらない時、入りきらない箇所を点で表す方法

会員制サイトにて、表などで住所を閲覧する時に、「住所が入りきっていなくて、これではヤバイ」という時ありませんか?
自分は、作り方を色々と間違えてしまったので、住所が入りきらないことを作成してから気づきました。。。
まだまだですね。。。

とりあえず、以下の方法で解決できるようなので、記載しておきます。

 $solve_string = 'abcdef'; //入りきらない文字列
 echo mb_strimwidth($solve_string, 0, 3, "…", 'UTF-8');

結果

 ab… 

PHP 重複した値を算出する

PHP

PHP 重複した値を算出する

PHPのサンプルコードでよいものを見つけたので、書いておきます。

出典:http://www.php.net/manual/ja/function.array-intersect.php

2つの配列の、重複した値を見つけるのは、array_intersectなどを使えばできますが、これが動的に出力される配列だったり、配列の長さが事前にわからない場合、利用しにくいです。
そんな時、次のように配列を比較すると、重複する値を出してくれます。
それぞれの配列の中には、重複する値がないことが前提です。

faharanikさんに感謝!

 <?php
 // $arrays - Array of arrays to intersect.
 
 function calculate_intersection($arrays)
    {
    $intersection = Array();
               
    for($checked_item = 0; $checked_item < count($arrays[0]); $checked_item++)
        {
        $occurrence = 1;
       
        for($compared_array = 1; $compared_array < count($arrays); $compared_array++)
            {           
            for($compared_item = 0; $compared_item < count($arrays[$compared_array]); $compared_item++)
                {
                if($arrays[0][$checked_item] == $arrays[$compared_array][$compared_item])
                    {
                    $occurrence++;
 
                    if($occurrence == count($arrays))
                        {
                        $intersection[] = $arrays[0][$checked_item];
                        }
                    }
                }
            }
        }
   
    return $intersection;
    }
 ?>

PHP 郵便番号が入っていたら削除するサンプルコード

PHP

PHP 郵便番号が入っていたら削除するサンプルコード

あんまり普通はこんなこと利用しないのかもしれませんが。
たとえば、スマートフォンから住所情報が

〒221-0835 横浜市神奈川区鶴屋町2-21-1 ダイヤビル5F

とかで帰ってくる場合、PHPで郵便番号だけを取り除きたい!となるわけです。

 $address = "〒221-0835 横浜市神奈川区鶴屋町2-21-1 ダイヤビル5F"
 $matches = array();
 $match_count = preg_match("/^(〒[-\d]+)?(\s+)?(.+)$/", $address, $matches);
 if($match_count > 0) {
     $address = $matches[3];	 		
 }
 //$address は 横浜市神奈川区鶴屋町2-21-1 ダイヤビル5Fとなります

PHP 画像のアップロードがうまくいかない

PHP

PHP 画像のアップロードがうまくいかない

だいぶ初心者的なことではありますが…。

HTMLフォームの中に

 <input type="file" name="upload_file" />
 <input type="submit" value="アップロード" />

と書いておけば、PHPの方の$_FILESという変数にアップロードされたファイルの情報が入ります。
が、これがうまくいきません。

フォームの開始タグに enctype=”multipart/form-data” を入れておかないといけなかったんですね。

 //例
 <form action="hogehoge.php" method="post" enctype="multipart/form-data">

PHP 時:分:秒を秒数に直す サンプルコード

PHP

PHP 時:分:秒を秒数に直す サンプルコード

たとえば
 19:05:03
というデータを秒数に変換するというのが必要な場合です。

いつも考えるのが面倒なので、書いておきます。

 //時:分:秒を秒に変更
 function h2s($hours) {
        $t = explode(":", $hours);
        $h = $t[0];
        if (isset($t[1])) {
         $m = $t[1];
        } else {
         $m = "0";
        } 
        if (isset($t[2])) {
         $s = $t[2];
        } else {
         $s = "0";
        } 
        return ($h*60*60) + ($m*60) + $s;
 }