エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!

「 PHP・Smarty・ECCUBE 」 一覧

PHPで月末から1ヶ月後「+1 month」を算出すると想定する日付にならない場合がある

PHPで月末から1ヶ月後「+1 month」を算出すると想定する日付にならない場合がある

  2024/09/28    PHP・Smarty・ECCUBE

PHPでは月末の1ヶ月後が想定した日付にならない場合がある。原因はバグではなくPHPの1ヶ月後の定義によるもの。なので必要とする日付を定義しそれに合わせてDateTime、modifyを使用して算出方法を解説している。

PHPで1ヵ月前、先月、今月1日、来月末の日付などの算出はDateTimeImmutableを使う

PHPで1ヵ月前、先月、今月1日、来月末の日付などの算出はDateTimeImmutableを使う

  2024/09/27    PHP・Smarty・ECCUBE

PHPには日時をオブジェクトとして生成する関数「DateTimeImmutable」「DateTime」が用意されている。これを利用して1ヶ月後、月初日、月末日、5日後などを指定して日付を取得できる。

cURLを利用する際の注意点「&」があるURLは「"」で囲む

cURLを利用する際の注意点「&」があるURLは「」で囲む

  2024/08/09    PHP・Smarty・ECCUBE

cURLでURLはダブルクォーテーションで囲む。LinuxでもWindowsでもコマンドでは「&」は意味を持つ文字のためエラー原因になる。クォーテーションは常につけておく方が無難。

WindowsのXAMPPのPHPではstrptimeは使用不可。代替はdate_parse_from_formatを使う

WindowsのXAMPPのPHPではstrptimeは使用不可。代替はdate_parse_from_formatを使う

  2024/08/03    PHP・Smarty・ECCUBE

strptimeはWindowsのPHPには未実装。LinuxとMacで挙動が異なる。PHP8.1で非推奨になる。なので日付のチェックはdate_parse_from_formatを使おう。使い方を詳細解説。

PHPのデバッグで使う print_r、var_dump、var_exportの動作の違い

PHPのデバッグで使う print_r、var_dump、var_exportの動作の違い

  2024/06/24    PHP・Smarty・ECCUBE

PHPのデバッグ等で変数や配列の中身を確認するために使用する関数print_r、var_dump、var_exportの動作の違い、仕様の違いについて確認した。var_exportがオススメ。

sleepの秒指定は整数のみなので1.5秒はsleep、usleepを組み合わせる

sleepの秒指定は整数のみなので1.5秒はsleep、usleepを組み合わせる

  2024/06/12    PHP・Smarty・ECCUBE

PHPのプログラム処理を遅延させる「sleep()」は整数秒単位。「usleep()」は1秒未満のマイクロ秒単位。では「1.5」秒はどう表現するのか。「sleep()」「usleep()」を組み合わせる。その解説。

配列の値をテキスト表示する際に「、」でつなげるときの処理方法の一例

配列の値をテキスト表示する際に「、」でつなげるときの処理方法の一例

  2023/12/28    PHP・Smarty・ECCUBE

配列の値を「、」でつないで出力する際、単純にforeachで繰り返し処理をすると「イヌ、サル、キジ、」となるが文字列最後の「、」を出力しない方法を3つ解説している。

PHPのスクレイピングライブラリ「PHP Simple HTML DOM Parser」の使い方

PHPのスクレイピングライブラリ「PHP Simple HTML DOM Parser」の使い方

  2020/01/28    PHP・Smarty・ECCUBE

PHPのスクレイピングライブラリ「PHP Simple HTML DOM Parser」の使い方を解説。要素を取得する方法、そこから属性を取得する方法を解説。また、マニュアルにはない注意点なども解説。

PHPでスクレイピング。phpQueryとphp-simple-html-dom-parserの比較と設置方法

PHPでスクレイピング。phpQueryとphp-simple-html-dom-parserの比較と設置方法

  2020/01/27    PHP・Smarty・ECCUBE

「PHP スクレイピング」で検索すると「phpQuery」ばかりヒットするが、10年以上も放置されている。なので今も開発が続いている「PHP Simple HTML DOM Parser」をオススメする。

PHPのcURLでAPIやWebサイトへのアクセス方法。file_get_contentsとの比較

PHPのcURLでAPIやWebサイトへのアクセス方法。file_get_contentsとの比較

  2020/01/26    PHP・Smarty・ECCUBE

PHPからWebサイトにアクセスしてHTMLを取得、APIにアクセスして情報を取得する場合は、cURLがオススメ。file_get_contentsでも可能だがエラー制御に難がありトラブルのもとになる。

数値がMySQLのint(11)に保存できない!PHPの変数が本当にint型か確認!

数値がMySQLのint(11)に保存できない!PHPの変数が本当にint型か確認!

  2019/12/14    PHP・Smarty・ECCUBE

PHPでintegerとdoubleが混在するような計算をする場合は要注意!計算結果が整数値であっても途中で使用する変数にdoubleの値が入っているときは計算結果がintegerではない場合があります。

PHPで配列の値をダブルクオーテーションで囲んでimplodeでカンマ区切りにする方法

PHPで配列の値をダブルクオーテーションで囲んでimplodeでカンマ区切りにする方法

  2019/07/15    PHP・Smarty・ECCUBE

PHPで配列の値を、preg_replace関数でクォーテーションで囲み、implode関数で「,(カンマ)」で区切ってテキスト化する方法。この方法であれば配列が空でも分岐の処理は必要なし!

QRコード(二次元バーコード)作成サービスを公開

QRコード(二次元バーコード)作成サービスを公開

  2019/04/21    PHP・Smarty・ECCUBE

QRコード(二次元バーコード)を生成するサービス。QRコードにする文字列を入力するだけで QRコードが簡単に作れる。オプションとして、画像サイズ、余白サイズ、エラー訂正レベルがある。

QRコード作成ライブラリ「cakePHP-QR-Code-Helper」をPHPで使うカスタマイズ

QRコード作成ライブラリ「cakePHP-QR-Code-Helper」をPHPで使うカスタマイズ

  2019/04/20    PHP・Smarty・ECCUBE

CakePHP2用のQRコード作成ライブラリ「cakePHP-QR-Code-Helper」をプレーンのPHPでも使うためのカスタマイズ方法を解説。1ファイルを設置するだけでQRコードが作れるため使い勝手がいい。

CentOS6、7のPHPを5.3から5.6、7.0、7.1にバージョンアップする手順の解説

CentOS6、7のPHPを5.3から5.6、7.0、7.1にバージョンアップする手順の解説

  2018/03/03    PHP・Smarty・ECCUBE

CentOS6系、7系のPHPバージョンを5.3から5.6、7.0、7.1にアップする作業手順と解説。yum updateコマンドを使い作業時間は約10分。コマンドの解説や引数の意味なども解説しているので役に立つはず。

指定した数で文字列を丸める関数substr、mb_substr、mb_strimwidthの違い

指定した数で文字列を丸める(n文字目で…にする)関数substr、mb_substr、mb_strimwidthの違い

  2018/02/03    PHP・Smarty・ECCUBE

文字列を指定された数で抜き出すPHPの関数、substr、mb_substr、mb_strimwidthについての解説。似た関数だが引数の指定方法が違ったり、文字数がバイト数か文字数かも違ったり、注意が必要だ。

乱数発生器(パスワード生成サービス)がバージョンアップで高速化!

乱数発生器(パスワード生成サービス)がバージョンアップで高速化!

  2017/06/16    PHP・Smarty・ECCUBE

乱数やパスワードを生成する乱数発生器を高速化!重複しない10桁、20桁の文字列を10万件、20万件と生成することも可能!イベントのキャンペーンのシリアルコードなどにも利用可能!

連想配列のキーも値もまとめてhtmlspecialchars()でサニタイズする関数の作成解説

連想配列のキーも値もまとめてhtmlspecialchars()でサニタイズする関数の作成解説

  2017/06/06    PHP・Smarty・ECCUBE

PHPの配列・連想配列のキーと値をまとめてhtmlspecialchars()関数でサニタイズ(無害化、無毒化)を行う関数を作成。連想配列のキーはarray_map()関数でのサニタイズは無理。

XML形式の値を配列形式に変換・PHPでは simplexml_load_string()

XML形式の値を配列形式に変換・PHPでは simplexml_load_string()

  2017/05/14    PHP・Smarty・ECCUBE

XMLとは「Extensible Markup Language」の略でテキストベースのデータフォーマット。XMLをPHPで配列に変換するWebツールの紹介とその処理「simplexml_load_string()」関数についての解説。

JSON形式の値を配列形式に変換・PHPでは json_decode()、json_encode()

JSON形式の値を配列形式に変換・PHPでは json_decode()、json_encode()

  2017/05/13    PHP・Smarty・ECCUBE

JSONとは「JavaScript Object Notation」の略でテキストベースのデータフォーマット。JSONの値をPHPで配列に変換するWebツールの紹介とその処理「json_encode()」「json_decode()」関数の解説。

路線・駅検索をPHPで実装する方法解説。GoogleMapsの緯度経度から計算し検索

路線・駅検索をPHPで実装する方法解説。GoogleMapsの緯度経度から計算し検索

  2017/05/04    PHP・Smarty・ECCUBE

路線・駅検索の仕組みの構築は大変。登録する側も最寄り駅が多い場合は大変。なので簡易に実装するため緯度経度に基づき直線距離を計算する処理を考案して実装して、その処理を解説。

路線・駅検索のために緯度経度からPHPで簡易的に距離を計算する処理解説

路線・駅検索のために緯度経度からPHPで2点間の距離を計算する処理解説

  2017/05/03    PHP・Smarty・ECCUBE

路線・駅検索の仕組みの構築は大変。それを簡易に実装するために緯度経度を元に距離計算をする仕組みを考案。まずは2点間の距離を計算する仕組みを解説し、距離計算にまつわる関連技術も紹介。

ECCUBEの注文完了画面注文番号と商品情報を編集するCRITEO(クリテオ)タグを編集

  2016/10/08    PHP・Smarty・ECCUBE

ECCUBEの注文完了画面にクリテオのタグを編集する方法を紹介。標準機能では完了画面に注文IDや購入商品の情報を渡さないため改修が必要です。

ECCUBE2.13.3で商品規格の在庫数が無制限から変更できないバグがある

  2016/04/04    PHP・Smarty・ECCUBE

2.13.3固有のバグである商品規格の在庫数の入力エリアがアクティブにならない不具合を解消する解説です。product_class.tplの2行を修正するだけの簡単対応です。

Smartyの修飾子regex_replaceで正規表現の後方参照・PHPではpreg_replace

  2015/12/04    PHP・Smarty・ECCUBE

ECCUBEで使われているSmartyで文字列を正規表現で置換し後方参照で値を利用する装飾子regex_replaceの解説です。細かな条件がありますので注意が必要です。

ECCUBEの管理画面のSSL設定をインストール後に変更する方法

  2015/12/03    PHP・Smarty・ECCUBE

ECCUBEをインストールした後から管理画面のSSL設定を変更する方法を解説します。config.phpファイルのHTTPS_URLとADMIN_FORCE_SSLの値を変更すればOK。

GMOペイメントゲートウェイのjava.io.IOExceptionのエラー

  2015/12/02    PHP・Smarty・ECCUBE

ECCUBEの決済でGMOペイメントゲートウェイのモジュールを使ってテスト決済を行った場合の不具合、java.io.IOExceptionと言うエラーの原因と対策方法の解説です。

ECCUBEの新規追加ページがInternal Server Error・Not Foundに

  2015/11/10    PHP・Smarty・ECCUBE

ECCUBEで新規追加したページがInternal Server Errorに!原因はファイルのパーミッションの場合が多くその対処方法とプログラムの修正ポイントを解説。Not Foundも解説。

include、requireのパス指定をdirname(__FILE__)、__DIR__と書く理由

  2015/08/24    PHP・Smarty・ECCUBE

include、requireのパスの指定を dirname(__FILE__)、__DIR__で記述する理由に付いて解説。相対パス、絶対パスを直書き、パスを書かない場合は何が問題かを説明。

ob_start、ob_get_contents関数でPHPの標準出力をバッファリング・変数に代入

  2015/08/04    PHP・Smarty・ECCUBE

標準出力をバッファリングし変数に代入することができるob_start()関数の解説。include()の処理をバッファリングすることで自由な場所に処理を記述することが可能。