PHP関連のことを調べてみた2020年12月26日

PHP関連のことを調べてみた2020年12月26日

PHP 現在時刻を取得する

# 目的

– PHPで現在時刻を「YYYY/MM/DD HH:MM:SS」の形で取得する方法を簡単にメモする

# 前提情報

– 下記サービスを使用して確認した。
– [https://paiza.io/ja](https://paiza.io/ja)

# 詳細

– 下記を実行する。

“`php
echo date(“Y/m/d H:i:s”);
“`

元記事を表示

Laravel Collection型の空判定 isEmpty()

## 困りごと
PHP歴3ヶ月、Laravel歴1ヶ月の初学者です。LaravelのCollection型の空判定でハマってしまったので、同じような方が減ることを祈って投稿します。下図のように、ある条件で検索を行い、Collection型で返ってきた値に「データが入っているか」or「空」であるかを判定して、表示を分岐をさせる方法についてです。
![flow.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969534/e1b41a26-7df8-b9da-4dd4-9b17c7700908.png)

>コレクション型とは?
>Object型の一種で、Laravel独自の型でデータベースからデータを取得した際等はこの型になっています。コレクションで利用可>能なメソッドは全部で100個以上あります。メソッドチェーンで記述が可能です。

## 開発環境
PHP 7.2.34 / Laravel 6.20.5

## 結論
Collection型の空判定はisEmpty()メソッドが優秀。

“` con

元記事を表示

phpにおける関数

#計算をする上で便利な関数
①ceil(切り上げ)

“`
// index.php
$x = 5.2;
echo ceil($x);
“`

②floor(切り捨て)

“`
// index.php
$x = 5.2;
echo floor($x);
“`

③round(四捨五入)

“`
// index.php
$x = 5.2;
echo round($x);
“`

④pi(円周率)

“`
echo pi();

function circleArea($r) {
$circle_area = $r * $r * pi();
echo $circle_area;
}
※半径が2の円の面積の計算
circleArea(2);
?>
“`

⑤mt_rand(乱数)

“`
echo mt_rand(1, 100);
“`

#文字列に関する関数
①strlen(文字列の長さ)

“`

元記事を表示

Type:JSONに、INSERTができない人へ

### 現状の問題
MySQL version 5.7.30

MySQLで、type:jsonの列を作ったのですが、なぜかinsertできませんでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276138/886390c8-6c89-5ecf-d44e-5877e19c959a.png)
### 解決策: json_encodeを使用する

まず、テーブルを作ります。(type:jsonの列あり)

“`
create table sample_json(id int, json_data json);
“`

次にこうすればinsertできるはずなのですが..できない。なんでや..

“`
insert into sample_json values(1, ‘{“from” : “Japan”, “name” : “Taro”}’);
“`

↓ 修正

“`
insert into sample_json values(1, “{\”from\”: \”Japan

元記事を表示

【初心者】PHPで文字列の中に特定の文字列が含まれているのかチェック

# 文字列の中に特定の文字列が含まれているのかチェックしたい
以前、文字列の中に特定の文字が何回含まれているのか?という記事を書いた。
https://qiita.com/wakiyo1017/items/177f3312c720bf01e6ef
今回は、文字列の中に特定の「文字列」が含まれているのかチェックするためにはどうするか学んだ。
プログラミングを勉強していて面白い事は、答えがいくつもあってそのどれもが正解だというところなのだけれど、この方法もいくつもあるらしい。
そのうち二つを残しておく。
## strpos
“`php
$str = “abcdefg”;
$s = “cd”;
echo strpos($str, $s);
// 以下出力結果
2
“`
strposは特定の文字列が含まれている場合は、その文字列が何文字目から含まれているかを返してくれるようだ。
含まれていない場合は、false を返してくれるので、含まれているかを確認するためには、if文を用いて…

“`php
if(strpos($str, $s) === false){
echo “nothin

元記事を表示

Cake PHP4.2でDependency Injectionができるようになっていた!

PHPのフレームワークは数多くありますが、その中でも特に人気を誇っているのはLaravelでしょうか。
そんなLaravelの魅力の一つといえば、DIの仕組みが内蔵されていて引数をタイプヒントするだけで気軽に注入できるところにあるでしょう。

Cake PHPは長らくDIの仕組みを持っていませんでしたが、近日(12/20)リリースされた4.2.0からDIの機能が追加されました。

注意:Cake PHPのDIは現在実験的な機能です。

# 最も簡単なDIの例

実際にどのように記述していくのか見ていきましょう。まずはコントローラーは以下の通りです。

“`php

元記事を表示

【PHP】Laravel bladeビューのリファクタリング。implode, nullチェック, 変数をタグとして出力

個人用メモです。
rowspanおよびcolspan属性があるth/tdタグの生成に関するコードをリファクタリング。各処理の意味と実行内容を理解する。

##目次

1. [リファクタリング前のコード](#リファクタリング前のコード)
2. [問題点](#問題点)
3. [リファクタリング完了後のコード](#リファクタリング完了後のコード)
4. [リファクタリングの処理内容](#リファクタリングの処理内容)
5. [class属性に不要なスペースの除去](#1-class属性に不要なスペースの除去)
6. [rowspanとcolspanの除去とダブルクオテーションの追加](#2-rowspanとcolspanの除去とダブルクオテーションの追加)
7. [属性がないときの無駄なスペース除去](#3-属性がないときの無駄なスペース除去)
8. [implodeメソッド](#implodeメソッド)
9. [nullチェック(if文とissetメソッド)](#nullチェックif文とissetメソッド)
10. [変

元記事を表示

[php]usort関数について

#usort関数について
自身で勉強していて、わかりにくかった部分であるusortに関して、まとめてみました。

“公式php.net“から

“`
usort ( array &$array , callable $callback )
“`
と説明されています。

* **&$array** :入力する配列
* **$callback**: コールバック関数

要するに、第1引数で並び変えたい配列を渡し、第2引数で並び替える順番を定義した比較関数を入れるということです。
#使い方

* 今回使う配列

“`
$data = [ 
[‘name’ => ‘taguchi’, ‘score’ => 80],
[‘name’ => ‘kikuchi’, ‘score’ => 60],
[‘name’ => ‘hayashi’, ‘score’ => 70],
[‘name’ => ‘tamachi’, ‘score’ => 60],
];
“`

* 自らが定義した比較関数

“`
function scores($a, $b) {
if($a[

元記事を表示

Advance Custom fields(ACF)の出力方法まとめ

#Advance Custom fields(ACF)とは
wordpressでカスタム投稿が出来るプラグインで一番有名だと思います。
[Advance Custom fields](https://ja.wordpress.org/plugins/advanced-custom-fields/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/24d526b7-8a88-1e81-fbb5-b36ff361c5ca.png)

管理画面での設定方法は簡単なのですが、出力が少し難しいので覚書しておきます。

#テキスト出力例

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/26967f91-4ec2-b40a-eb08-7d7e08151c0d.png)

“`php

元記事を表示

LION BLOGのカテゴリページを昇順にする方法

新しくカテゴリ一覧を作成するページはたくさんあったのですが、すでにウィジェットで設定してあるカテゴリを日付の昇順にする方法がすぐに見つけられなかったのでメモします。

[参考にさせていただいたページ](https://pct.unifas.net/cms/wordpress/155/)

function.php
後半にウィジェットごとのコードがあるので以下に追記

“`php:function.php
// カテゴリページ
elseif(is_category()) {
$cat = get_queried_object();
//ここから追記
$q_p =’order=ASC&cat=’ . $cat_id;
query_posts($q_p);
//ここまで
if($cat -> parent != 0){
$ancestors = array_reverse(get_ancestors( $cat -> cat_ID, ‘category’ ));
foreach($ancestors as $ancestor){
$str.=’

  • 元記事を表示

    【PHPとRuby記述の比較】記述方法がどんな風に違うんだろう?と疑問を持っている方へ

    __◆目的__
    Rubyを学習後、ProgateにてPHPの学習を始めたのですが、コマンドが微妙に違う…こんがらがりそう(; ;)…ということで、特に気になったのを後学のためまとめました。
    RubyとPHPどれくらい書き方が違うんだろう…?という疑問を持っている初学者の方の「ふ〜ん」になればと思います。

    __**今後も地道に更新していきます__

    __◆目次__
    __1)foreach と each の比較・・・繰り返し処理
    2)連想配列とハッシュの比較
      1. 連想配列・ハッシュから値を取得
      2. 値を取り出して空の配列に代入 => 新しい配列を作る
    3)クラス
      1. クラスの外で値を代入
      2. __constructメソッドとinitializeメソッド
      3. __constructメソッドとinitializeメソッド ~引数を与える~
      __

    # 1) foreach と each の比較・・・繰り返し処理

    “`【PHP】繰り返し処理(foreach).php

    元記事を表示

    文字列の長い順番に揃えたい

    たとえばtwitterのツイートの中のユーザIDをリンクにしたいとき
    @hoge, @hogehoge があると、@hogeを置換するときに@hogehogeのほうも置換されちゃう
    これを防ぐには、ユーザIDを抽出した後に文字数の大きい順番にソートする必要がある

    このロジックは文字列置換・文字列探索の業務でちょくちょく必要になる

    “`PHP
    $ary = [‘hogehoge’, ‘hoge’, ‘aiueo’];

    usort($ary, ‘lrsort’);

    function lrsort ($a, $b) {
    $la = strlen($a);
    $lb = strlen($b);
    if ($la < $lb) return 1; if ($la > $lb) return -1;
    return 0;
    }
    “`

    元記事を表示

    AdMobの売上データをデータベース連携する

    こんにちは。Link-U入社2年目のたくやんです。
    今年1年何をやったかなぁと思い返すと、そういやAdMobの売上データを取得するのにそこそこ苦労したなぁと思い、
    備忘録も兼ねて書き残したいと思います。

    ##AdMobとは
    >AdMob – Wikipedia
    >https://en.wikipedia.org/wiki/AdMob

    Googleが提供するアプリ内広告です。審査が厳し目とかいう噂を聞いたり聞かなかったり。

    ##前準備

    #### credentials.jsonの取得

    https://console.developers.google.com/apis/credentials
    から認証情報を登録すると、credentials_jsonファイルをダウンロードすることができる。

    #### oauth2のインストール

    “`
    curl https://storage.googleapis.com/oauth2l/latest/linux_amd64.tgz | tar zx -C /usr/local/bin –strip-components 1
    cp c

    元記事を表示

    Lightningにメニュー項目を追加(function.php/header.php)

    #wordpressの無料テーマLightining
    管理画面で設定できるメニュー箇所を追加する方法をご紹介

    完成系は
    有料版にあるヘッダー右上のヘッダーサブメニューを無料版Lightningに追加
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/01e90c14-9686-813c-7e59-a4bf44f01b42.png)

    ダッシュボードにも、ちゃんとメニューバーの設定項目が出力されます!
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/1e3ebeab-3ecf-ef92-4da7-011b25163c1f.png)

    #functino.phpに追記
    以下を追記
    ・header_sub : 任意の文字列
    ・ヘッダーサブメニュー : 外観>メニューで表示される任意の文字列

    “`php

    register_nav_menus(array(
    ‘he

    元記事を表示

    pChart を PHP7 対応させる方法

    #概略
    pChart を、PHP7 で動かすとエラーが出て正常に動いてくれません。これの暫定的な対応策です。とりあえず動いてくれればいいや、という状況向け。

    #詳細

    こんな感じのエラーが出ます。

    “`php
    Fatal error: Uncaught Error: Cannot use string offset as an array “pchart”
    “`

    エラーの原因としては、変数を後から配列扱いすると PHP7 でエラーが出るようになったのが原因なので、pChart.class と pData.class を何箇所か修正すると正常に動くようになります。

    “`php
    $this->Data = “”;
    $this->DataDescription = “”;
    “`

    ↓ 以下のように初期化宣言を直す。

    “`php
    $this->Data = array();
    $this->DataDescription = array();
    “`

    以上。

    元記事を表示

    空白検知(ゼロ幅スペースなどに対応した完全版) in JS/PHP

    空白や改行だけの文字列の検知には正規表現の`\S`で検知したり、`String.prototype.trim()`([MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/trim))を使用することがありますが、これだとゼロ幅スペース([Wikipedia](https://ja.wikipedia.org/wiki/ゼロ幅スペース))などの一部の空白文字は通過してしまいます。そこで、より多くの文字を検知するコードを書いたので紹介します。

    ## JavaScriptの場合
    “`javascript
    const word = “判別する文字列”;
    const reg = /^[\u0009-\u000d\u001c-\u0020\u11a3-\u11a7\u1680\u180e\u2000-\u200f\u202f\u205f\u2060\u3000\u3164\ufeff\u034f\u2028\u2029\u202a-\u202e\u2061-\u2063

    元記事を表示

    phpにおけるhtml文のプルダウンメニューでループを回す方法

    #ソースコード

    簡潔な書き方

    “`

    OTHERカテゴリの最新記事