PHP 文字列をある文字で2つに分ける

PHP

PHP 文字列をある文字で前後に分ける

PHP4,5

たとえば、次の文字列(この例はGPSの位置情報)

 N35.10.44.14E136.58.12.90

をEの部分で2つ(N35.10.44.14とE136.58.12.90)に分けたいとします。

 $result="N35.10.44.14E136.58.12.90";
 //Eの出現する場所を探します。
 $text_e=strpos($result,'E');
 //Eの出現する前まで切り取ります
 $lat= substr($result,0,$text_e);
 //Eの出現する後を切り取ります。
 $long= substr($result,-($text_e+1));
 
 //結果
 print $lat //N35.10.44.14
 print $long //E136.58.12.90

PHPマニュアル 文字列の処理
http://jp.php.net/manual/ja/book.strings.php

正規表現を用いて、ちゃんと東経西経、角度に分ける場合、次のようにします。

 $match_cont = preg_match('/([NS])([\d\.]+)([EW])([\d\.]+)/', $result, $matches);
 var_dump($matches);
 
 if($match_cont == 0) {
 	print "not matched!!!";
 }
 print "NS:	$matches[1]<br>";
 print "latitude:	$matches[2]<br>";
 print "EW:	$matches[3]<br>";
 print "longitude:	$matches[4]<br>";

PHP 指定した月の月末日を取得

PHP

PHP 指定した月の月末日を取得

月末日って、30とか31とか29とか28とかあって面倒ですよね。。。

date関数を使って

 date('t');

とすると、現在の月の月末日が取得できます。

しかし、これは現在の月の月末日です。
指定した月の月末日は

 date('t', mktime(0, 0, 0, $month, 1, $year);

と取りましょう。

  • )が一つ足りなかったですが使えました。ありがとうございます…!! — {2016-04-08 (金) 14:23:45}
  • かっこが足りないですがありがたいです。 — {2017-07-07 (金) 19:02:28}
  • この通りに指定すると必ず31日が返る。年と月を入れ替えると正しい日が返るが2月が必ず29日曜になる。ちゃんとデバッグしたの? — {2017-12-19 (火) 11:40:54}

PHP 先月の最後の時間を取得するサンプルコード

PHP

PHP 先月の最後の時間を取得するサンプルコード

需要があるかはわかりませんが、今の仕事でよく使うので、書いておきます。

先月の最後の日を取得したりするのはPHPのstrtotimeなどでで簡単にできると思いますが、最後の日の最後の秒数を取得したいんだーって場合のサンプルです、

DateTime::addを利用します。

http://php.net/manual/ja/datetime.add.php

 $d = new DateTime("2015-04");
 $d->modify('last day of last month'); // 2015/3/31 00:00:00 を取得
 $d->add(new DateInterval('PT23H59M59S')); //11時間59分59秒をプラスする
 $last_of_last_month = $d->format('Y-m-d H:i:s'); //フォーマット
 PT23H59M59S

は暗号みたいですが、

Plus Time 23 Hours 59 Minutes 59 Seconds

だと思われます。

PHP 今日の日付を表示する

PHP

PHP 今日の日付を表示する

簡単な話ではありますが(^_^;

 <?php 
 $today = date("Y年n月j日 "); 
 echo $today;
 ?> 

時間:分:秒を表示する時は下記の通りです。

 <?php
  date("Y-m-d H:i:s");
 ?>

PHP プログラム仕様書を作成 PHP Documentor

PHP

PHPプログラムの仕様書を自動的に作成してくれる、PHP Documentorの紹介です。
WebサーバーとPHPがあれば、Webインターフェースからさくさく作れますよ。[smile]

①インストール
まずは、下記の本家のサイトへアクセスし、右上のダウンロードをクリックしてプログラムをダウンロードします。

http://www.phpdoc.org/

ダウンロードした圧縮ファイルを解凍して、Webサーバーでアクセスできる箇所においてください。
あとは、PHP Documentorを置いたディレクトリにアクセスすれば、PHP Documentorの画面が見られるはずです。

phpdoc.png

②仕様書の作成

上部にあるメニューのFilesというところをクリックしましょう。
Files to parse はファイル単位で仕様書を作成したいファイルをパスを含めて記述します。
ディレクトリ単位で仕様書を作成したいファイルがある場合は、
Directory to parse にディレクトリをパスを含めて記述しましょう。

次に、上部のメニューからOutputをクリックします。
ここでは、仕様書を作成して出力するディレクトリの指定と、形式を指定します。
Targetというボックスに出力先のディレクトリを、Output Formatに、どの形式で出力したいかを記述します。
プルダウンメニューから選択できるようになっているので、プルダウンから選び、“Add the converter in the help box”というリンクをクリックすると、上のボックスにコピーしてくれます。

これで、右下の「create」ボタンをクリックすれば、レポートの出力開始です!

③文字化け対策

…ですが、このままだと日本語が文字化けしてしまいます。&cry;
理由は、出力のテンプレートファイルのいたるところに「encoding=”iso-8859-1″」と書いてあるから・・・。
テンプレートファイルは /phpdocs/phpDocumentor/Converters/HTML/frames/templates などに入ってますが、数が多いので、「encoding=”iso-8859-1″」を何かツールで一括置換しちゃった方が早いです。
ちなみに、②で選択する出力形式が、ここでディレクトリの名前になってついているので、一括置換しないで、一つの出力形式のみ修正する方法もありだと思います。

下記のサイトを参考にさせて頂きました。m(_ _)m
http://phpspot.net/php/pgphpDocumentor%82%BB%82%CC%82Q.html

④文字化け対策2

しかし、それだけだとIE6では文字化けしてしまいました。[sad]
文字コードを明示的に指定してあげる必要があります。
各テンプレートファイルの”header.tpl”に~の間に

 <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />

などと文字コードを指定してあげると治ります。

⑤ソースコードの記述

ソースコードに、下記のような記述でコメントがしてあれば、PHP Documentorが拾ってくれます。

 /**
 *コメントテストだよー 
 */

他に、上記のようなコメントの中に@ で始まる記述を入れておくと、それも拾ってくれます。

 /**
 *コメントテストだよー 
 *@author テスト
 *@version 1.1
 */

たくさんあるので、下記のマニュアルサイトにあるものを見てくださいね。

http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.pkg.html