カテゴリー: php
centia.jpのラジオアーカイブはchromeやedgeで動かない?
テニスのラジオアーカイブではロリポップのテストサーバーではchromeでも音源再生できる。
多分だが、SuiteXでのphpの上限がphp7.2以上には出来ないのだが、wordpressの現在の推奨phpはphp7.4だからかも
https://help.arena.ne.jp/hc/ja/articles/360025793374
だが、ヨガはSuiteXでも動いている。ヨガのように変更したら良いのでは?
また、テストサイトのロリポップではテニスの音源がchromeでも大丈夫。ロリポップのphpは7.4の対応されている。
htmlにphpを埋め込む&phpをインクルードさせる
includeさせるファイルがbootstrap5でつくっており、埋め込み先がbootstrap3の場合は、表示されるけども、各種フォントなどが軒並み小さく表示された。テニスのプレミア店の告知テストでそうなったので、その時はphpでは埋め込まなかった
https://www.sejuku.net/blog/30680
↑上記の方法でhtmlにphpを動かすには下記を.htaccessに記述しないと動かない。
可能にするには、
「.htmlでもphpとして実行してね」という記述が必要です。
以下の記述を.htaccessにします。
AddType application/x-httpd-php .html .htm
htmlファイル上にphpを埋め込んで動かす方法
phpをhtmlにインクルードさせる
new-chance/building/
https://qiita.com/non0311/items/aef6b5f030dfeb517c17
https://xn--web-oi9du9bc8tgu2a.com/php-basic-function-include/
HTMLを勉強してホームページを公開してみたものの、運用についてお悩みの方もきっと多いのでは?
例えば、ページを1つ追加しただけなのに、すべてのページにリンクを貼りつけなければならないのが面倒で結局更新しなくなってしまったり、デザインを変えたいけど、すべてのページに反映させるのが面倒で、手を付けないままにしてしまったり。
1つの修正がすべてのページに及んでしまうことの億劫さはホームページを公開した多くの方が一度は頭を抱えてしまう問題だと思います。
そんな問題を解決に導くのは、『1つを変更したら、すべてのページに反映するような状態にする』こと。外部ファイル化して、各ページはそのファイルを読み込んで表示するような仕組みにすることで実現できますので、どうぞ一度お試しください。
すべてのファイルを変更するのはしんどい…解決策は『外部ファイル化』
ページを一つ追加したからサイトのメニューを更新しなきゃ!とは思ったものの、ページ数が多くて大変…。
経験がある方もいらっしゃると思います。そのような場合は、サイトのメニューを外部ファイル化しておくことで手軽に更新できるようになります。
ヘッダーやフッター、サイドバーなど、どのページでも表示させる部分のHTMLコードを外部ファイル化させて、各ページで1つのファイルを使いまわす形にすれば、そのファイルを変更するだけで、その変更内容がすべてのページに反映されます。
外部ファイル化を行う方法はいくつかありますが、『PHP』を使う方法が一般的です。
PHPを使って外部ファイルを読み込む際は次のどちらかの関数を使います。
- include
- require
PHPは“関数”という『処理をひとまとめに定義したもの』をいくつも用意してくれています。上記のinclude関数、require関数はどちらも外部ファイルを読み込む処理をします。
次のように書くことで、外部ファイルを読み込めるようになります。
<?php include(‘ファイルのパス’); ?>
または
<?php require(‘ファイルのパス’); ?>
外部ファイル化してみる
下記のHTMLコードの『<!– ここから外部ファイル化する –>』から『<!– ここまで外部ファイル化する –>』までを外部ファイル化してみます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>test</title>
<link rel="stylesheet" href="./css/style.css">
</head>
<body>
<div id="wrapper">
<div id="header">
<h1>これはテストページです。</h1>
</div>
<!-- ここから外部ファイル化する -->
<div id="side">
<p>ここはサイドです</p>
<ul>
<li>メニュー1</li>
<li>メニュー2</li>
<li>メニュー3</li>
<li>メニュー4</li>
<li>メニュー5</li>
<li>メニュー6</li>
<li>メニュー7</li>
<li>メニュー8</li>
<li>メニュー9</li>
</ul>
</div>
<!-- ここまで外部ファイル化する -->
<div id="main">
<p>ここはメインです</p>
<p>
テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>
</p>
<p>
テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>
</p>
</div>
<div id="footer">
<p>テストページでした。</p>
</div>
</div>
</body>
</html>
STEP1. 使いまわしたい箇所を切り取り、別ファイルに保存する
切り取ったHTMLコードを別のファイルとして保存します。この時、拡張子は『php』で読み込むページと同じ階層に保存してください。
今回は『side.php』とします。
<!-- ここから外部ファイル化する -->
<div id="side">
<p>ここはサイドです</p>
<ul>
<li>メニュー1</li>
<li>メニュー2</li>
<li>メニュー3</li>
<li>メニュー4</li>
<li>メニュー5</li>
<li>メニュー6</li>
<li>メニュー7</li>
<li>メニュー8</li>
<li>メニュー9</li>
</ul>
</div>
<!-- ここまで外部ファイル化する -->
includeさせるphpにはhead情報はinclude先のhtmlに記載があればいらない。wordpressのphpのパーツみたいに考えたらよい。いらない物記載すると表示されなくなるから。
STEP2. 切り取った箇所に外部ファイルを読み込む関数を入れ込んで保存する
先ほど切り取った箇所に外部ファイルを読み込むinclude関数を記述し、ファイルを保存します。拡張子は『php』で保存してください。
ファイル名は『index.php』とします。
※13行目に追記しています。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>test</title>
<link rel="stylesheet" href="./css/style.css">
</head>
<body>
<div id="wrapper">
<div id="header">
<h1>これはテストページです。</h1>
</div>
<?php include('./side.php'); ?>
<div id="main">
<p>ここはメインです</p>
<p>
テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>
</p>
<p>
テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>テキストテキストテキストテキスト<br>
</p>
</div>
<div id="footer">
<p>テストページでした。</p>
</div>
</div>
</body>
</html>
phpをhtmlにインクルードすると、html側の背景色が灰色になることがある。<body>タグにstyelで正しい背景色を指定してあげれば良い。
STEP3. ブラウザから『index.php』を閲覧する
PHPが動作するサーバーにアップロードし、ブラウザで閲覧すると、外部化したファイルを読み込んだ状態で表示されます。
https://berkiefer.jp/blog/tech/html-include/
ブラウザにキャッシュが残るケースについて キャッシュバスティング
https://lpeg.info/html/not_reflected.html
更新が反映されない現象が起きるリソースや端末
CSSやJSファイル・画像ファイルの部分に多い
このようにホームページが反映されない場合、そのリソース先は限定されています。
WEBサイトが更新されないというトラブルはほとんどの場合、画像ファイルかJSファイル・スタイルシート(CSSファイル)などです。
ここにテキスト部分は含まれていません。
テキストは更新すれば反映される
テキスト文字の変更部分の反映については、一度ブラウザを閉じているのであれば大体次に表示すれば反映されています(スマホでも)。
サイトを表示したままであったり「元に戻る」で該当ページに戻った場合は、当然「F5」を押す必要がありますよね。
このように文章・文字であれば、F5を押せば大体反映されます。スーパーリロードやキャッシュクリアの必要まではありません。
特にスマホページでは更新が反映されない
今はPCからよりもスマホ端末からよくWEBページを閲覧される時代ですよね。
スマホはよりキャッシュ機能が高く、PC以上になかなか情報が更新されない事があります。
それはレスポンシブルデザインによるPCスマホ一体型レイアウトであっても同様です。
同じデータなのに「PCでは反映されているがスマホでは反映されていない」という状態が起こります。
キャッシュバスティング
CSSのキャッシュを自動で読み直す方法
方法としてはCSSファイル名の「後ろ」に続けてクエリ文字を追記する方法が一般的だと思います。
例えばこんな感じです。
クエリ文字を追記した例
<link rel=”stylesheet” href=”css/style.css?ver=1.0.1″> <link type=”text/css” rel=”stylesheet” href=”css/style.css?201610261200″>
WEBサイトcssファイルを更新した際に、そのページのCSSファイル記述部分に「?ver=1.0.1」のような情報を追記します。
そうするとそのページはキャッシュの影響を受けずに読込する事ができるのです。
この時「style.css」と「style.css?ver=1.0.1」は別物として扱われます。
さらに再度更新した場合はstyle.css?ver=1.0.2のように数字を増やしていくだけなので、管理がしやすくなります。
htmlの場合
<img src=”/images/sample.jpg?set0001″ alt=”Sample”>
このように画像名の後ろにパラメータ値(クエリ文字)を入れる事で、新しい画像として読み込まれます。
ただし頻繁に更新する画像であれば、その都度imgタグのクエリ値の変更が必要です。
毎回画像のHTMLを変更するのが面倒だと感じる方は、PHPで以下のように制御することで自動で日付を追加してくれるようにもできます。
WordPressの場合
WordPressならばPHPが効くので、下記の様にimgタグを記述する事ができます。
<img src=”/images/sample.jpg?<?php echo date(“YmdHis”);?>” alt=”Sample”> ※日付の表示はそのまま数値でいいです。
上記はパラメータの部分に時刻を自動表示させるコードを埋め込んでいる例ですね。
自動で時刻を埋め込んでおくと、imgタグが読み込まれるたびに「この画像は新しいものである」と認識させることができます。
良く更新がされる画像に対してこの様に設定をしておけば、キャッシュを利用せず新規で画像が読み込まれるようになります。
【CSS】WEBサイトの更新時、CSSのキャッシュを自動で読み直す方法
キャッシュバスティングにphpを加えて、htmlに埋め込む方法
【CSS】WEBサイトの更新時、CSSのキャッシュを自動で読み直す方法
一番楽な方法かなと思います。
1 |
<!--?php echo date ("Ymd-Hi"); ?--> |
↑のような記述を、↓のような感じで加えるだけ。
1 |
<link rel= "stylesheet" href= "./css/cm_pc.css?<?php echo date('Ymd-Hi'); ?>" type= "text/css" > |
これで、ファイルを更新しようがしまいが、例の場合だと1分単位でCSSを新たに読み直してくれます。
あとは、H(時間)、i(分)を消したりする事で、読み直しの期間を調節できます。
逆に基本いじる必要のないCSSに関しては、そもそもクエリを指定しなければいいので、そういう意味でも使い勝手はすごく良いのではないかと思います。
デメリットは、キャッシュの意味が無くなるという事でしょうか。
↑上記の方法でhtmlにphpを動かすには下記を.htaccessに記述しないと動かない。
可能にするには、
「.htmlでもphpとして実行してね」という記述が必要です。
以下の記述を.htaccessにします。
AddType application/x-httpd-php .html .htm
Bizメール&ウェブ ビジネス phpのバージョンを変更方法
キワ化学工業
現在使用しているPHPのバージョン確認およびバージョン変更はどのような手順で実施するのですか?
【確認・変更方法】
1. コントロールパネルに管理者にてログインします。
2. コントロールパネルのメニューにある「アプリケーション」から「基本アプリ」を選択します。
3. 「基本アプリ」の画面が表示されますので、「スクリプト言語」欄「PHP」の「設定」をクリックします。
4. 現在ご利用のPHPバージョンが表示されます。バージョンを変更する場合は「バージョンの選択」のプルダウンで変更したいPHPバージョンを選択し「変更」ボタンを選択します。
5. 確認画面が表示されますので「OK」をクリックします。
6. 「PHPのバージョンが変更されました。」と表示されれば、バージョン変更作業は完了です。
お問い合せの件、以下に回答させていただきます。
PHPのバージョンを変更いただく際は、コントロールパネルよりPHPのバージョン変更が必要でございます。
以下URLに、確認方法をご案内しておりますので、
ご確認のうえ、PHPのバージョンをご確認いただけますでしょうか。
■現在使用しているPHPのバージョン確認およびバージョン変更はどのような手順で実施するのですか?
https://support.ntt.com/mw-business/faq/detail/pid230000096d
以下マニュアルにも詳細のご案内がございますので、
併せてご参考にしていただければと存じます。
(参考)管理者マニュアル P141 「4.1.2 PHPのバージョン」
https://support.ntt.com/mw-business/download/detail/pid21000009we
—————————————-
>From: ty@chancemaker.co.jp
>To: biz-mailandweb-support@ntt.com
>Date: Thu, 5 Mar 2020 10:28:51 +0900 (JST)
>Subject: 【BizM&Wビジネス】設定方法、ご利用方法について お問い合わせ番号:219134
> 商品
> Bizメール&ウェブ ビジネス(ライト/ベーシック)
> テーマ
> 設定方法、ご利用方法について
> お問い合わせ内容
> wordpressをFTPからインストールしようとしています。Your server is running PHP version 5.3.3 but WordPress 5.3.2 requires at least 5.6.20. とインストールしようとしたらでましたので、コントロールパネルからMySQLのバージョンを5.7に変更、phpMyAdminのバージョンを4.8.4に変更したのですが未だにYour server is running PHP version 5.3.3 but WordPress 5.3.2 requires at least 5.6.20.となります。
>
> コントロールパネルから上記の変更だけではphpのバージョンは変わりませんか?
> wordpressのバージョンは最新の5.3.2です。
>
> よろしくお願いします。
>
phpのコメントアウト
コメント範囲を「/**/」で囲う。
複数行コメントする場合はこちらです。
<?php
echo 'hello!how low?'; /* ここから
echo 'コメントアウト中';
ここまでコメントアウトされます。*/
echo 'ブラウザに表示されています。';
/* 閉じタグを跨いだコメントアウトもできる!
echo 'コメントアウト中';
?>
<?php
echo 'まだコメントアウト中だよ';
ここまでコメントアウトされます。*/
echo 'hello!how low??';
?>
PHPのタグ(<?PHP ?>)を跨いでのコメントアウトもできます。
<?php /* get_template_part(‘header-second’); */?>
php 外部サイトのファイルの読み込み
http://php.ex-mode.net/mb/s/contents.php?n=tip1_14
◆Tip14 – 外部サイトにあるファイルの読み込み
PHP でホームページを作成していると「ファイルの読み込み」のように外部ファイルを取り込むことができます。
関数やヘッダー、フッターなどを他のページでまとめて置くと修正があった場合にとても便利に使える関数ですね。
include 又は、require は絶対パスか相対パスで読み込むファイルを指定します。
小規模のサイトを構築する場合には、絶対パスもしくは相対パスは余り気にしないで制作しても問題無いようですが、なるべくは絶対パスを使うことが推奨されています。
何故なら、include したファイルに include があった場合の基点が変になる可能性があるからだそうです。
確かにこの「PHPを学ぼう!」でスマートフォン、タブレット、携帯専用のページを追加した時には読み込みができなかったりしました・・・。
絶対パスを指定する場合は次のようにします。
//PHPのバージョンが5.3.0より前
include(dirname(__FILE__) . '/file_A.php');
//phpのバージョンが5.3.0以降のみ
include(__DIR__ . ‘/file_A.php’);
//ドメイン直下からの絶対パスでの指定方法
include($_SERVER[‘DOCUMENT_ROOT’] . ‘/file_A.php’);
例:
<!–yamamuro-infoからのヘッダーセカンドパーツ読み込み メイン画像やグランドナビ–>
<?php include($_SERVER[‘DOCUMENT_ROOT’] . ‘/yoshida/localwork/wp-content/themes/yamamuro-info/header-second.php’); ?>
注意すべきことは複数サイトやサブドメインを運営している場合には絶対パスで URL(http://~)を設定することができません。
これはサーバー環境設定、php.ini の “allow_url_include = OFF” になっていることで利用できなくなています。
php.ini の修正ができる人は、”allow_url_include = ON” に設定することで利用できるようになります。
サーバーの環境設定を変更しなくとも使える便利な関数があります。
readfile で以下のように使います。
使い方はそう変わりませんね。
readfile("http://sample.com/file_a.php");
readfile は関数や変数など問題なく読み込みができ大きなファイルであってもメモリを気にすることなく利用できます。
ちょっとしたWEBアプリケーションの提供で使えそうですね。
【追記 : 2015/1/24】
readfile でも GET を使って以下のようにパラメータを渡すことができます。
readfile("http://sample.com/file_a.php?id=12345&s=1");
includeのパス
custom field templateが表示されない
custom field templateが表示されない。phpかcss造った時に、そのファイルがUTF-8じゃなかったらしく、たぶんカスタムフィールド名が文字化け起こしていて読み込めないでいたのでは?もう一度、phpとcss造り直したら表示された。
wordpress includeではCSSファイルを読み込めない?
別テーマのCSSを読み込もうとincludeではCSSファイルを読み込めない?みたい。スタイルシートが反映されない。しかたないのでテーマ内に通常通り設置
WordPress|別テーマのテンプレートファイルを読み込む方法(マルチサイト構築に便利)
http://webdesignerwork.jp/wordpress/wordpress_include/
MovabletypeからWordpressへ制作を移行してきた手前、Movabletypeがひとつのシステム内で複数個のブログを作れた事から、Wordpressでマルチサイトを構築する機会が多々あります。
そこで、WordpressにもMovabletypeのインクルードのように”同一テーマ内のテンプレートファイル読み込み”と”外部テーマのテンプレートファイル”を共用する為の読み込みテンプレートタグがあるのでお知らせ致します。
一つのWordpressでオリジナルデザインのお知らせページやブログページなど複数のブログを構築する時に役立ち、例えば、共用するテンプレートファイルがサイドバー(sidebar.php)なら、編集するテンプレートファイルはメインのテーマのサイドバー(sidebar.php)ひとつだけにできるので、凄く効率的で便利です。カスタム投稿タイプ機能もあるのですが、マルチサイト機能も何かと便利なんです。
WordPressテーマ、同一テーマ内
任意のテンプレートファイル名.phpの呼び出し(ファイル名は自由に決めれる)
<?php include( TEMPLATEPATH . '/テンプレートファイル名.php' ); ?>
WordPressテーマ、外部テーマ
外部のテーマフォルダからテンプレートファイル名.phpを呼び出し
<?php include(get_theme_root() . '/テーマフォルダ名/テンプレートファイル名.php'); ?>
WordPressのマルチサイト機能でサイドバーやフッターなどの共用パーツの編集・管理をする時にもってこいのテンプレートタグです!
是非、お試し下さい。
includeについて
絶対・相対それぞれの安全なパスの書き方
まずは結論を書きます。なお、includeとrequireは、構文・パスの書き方などほとんどの点で違いがないので、以下ではincludeでコードを書いていきます。
相対パスでの指定方法
include(dirname(__FILE__) . '/path/file_name.php');
dirname(__FILE__)は、そのファイルが置かれたディレクトリのパスになります。なので、そこからの相対パスをその後につなげて読み込むファイルを指定します。
ドメイン直下からの絶対パスでの指定方法
include($_SERVER['DOCUMENT_ROOT'] . '/path/file_name.php');
$_SERVER[‘DOCUMENT_ROOT’]はドキュメントルート(URLでいうとドメイン直下)のパスになるので、これでドメインからの絶対パス指定になります。
パスの書き方での違い
なぜ上で書いたような手の込んだパス指定をするのかというと、絶対パスではドキュメントルートからの指定にはならず、相対パスではincludeを書いたphpからのパス指定にならない場合があるからです。ということで、各指定方法でのパスの解釈について書いていきます。
絶対パスで指定した場合
include('/path/file_name.php');
上の書き方をすると、サーバのルートからの指定になります。サーバのルートからみたドキュメントルートのパスは、たとえば「/var/www/html」のようになり、これはサーバ側の設定によって変わります。なのでこれはドメイン直下からの指定とは全く違うパスになってしまいます。ドキュメントルートの位置が変わらない(設置するサーバを変えない、設定も変えないなど)場合は、もちろんこれで問題ありません。
相対パスでの指定方法
include('../path/file_name.php');
上の指定の場合、一つ上の階層のpathディレクトリにあるfile_name.phpを読み込むわけですが、そのパスの起点は最終的に実行されたファイルからパスになります。なので、上のincludeを書いたphpファイルがさらに他のphpに読み込まれて実行された場合、最終的に実行したファイルの位置によってパスが変わってしまうことになります。
http://ja.forums.wordpress.org/topic/8276
<?php include( TEMPLATEPATH . '/maillink.php' ); ?>