[ご案内] PHPを一覧表示しています。(トップへ戻る)

phpファイルを外部cssファイルと認識させる方法      

共有ボタン付きページはこちら: http://tech.kimihiko.jp/article/60471889.html

phpファイルを外部cssファイルと認識させる方法

表題の件ですが、htmlヘッダーの

link href="style.css" rel="stylesheet" type="text/css

link href="style.php" rel="stylesheet" type="text/css

のようにしちゃおうという意味です。
style.phpにはphpが吐いたCSSが書かれているイメージです。

拡張子をphpとしたとき、そのままでも一部ブラウザ(Chrome,Safari)では
CSSファイルを読み込んだときの振る舞いをしますが、
基本的には拡張子がphpのものをcssファイルとブラウザが解釈しません。

そこで以下をphpに書きます。

header('Content-Type: text/css; charset=shift-jis');//ブラウザにphpをcssと認識させる。

これで、phpファイルをcssファイルだと
ブラウザに思い込ませることができます。

実は当ブログでもこの仕組みを利用しています。

CSSをphpファイル化するメリットですが、
動的にcssを吐き出せるようになることではないでしょうか。

例えば当ブログでは、時間やランダム要素を取り入れた
CSSの切り替えを外部CSS化したphpで行っています。

今回はphpファイルをcssとして認識させましたが、
css以外のものでも可能です。

これは、いろいろ応用がきくのではないでしょうか。

以上です。

●参考にしたサイト

CSS・JSファイルの外部読み込みにPHPを使う: WEBMEMO
http://hal-lab.cocolog-nifty.com/blog/2009/03/cssjsphp-bfe1.html

テスト環境:Windows7 Home Premium, php4最終ver.

モジュール版php、cgi版phpとは?      

共有ボタン付きページはこちら: http://tech.kimihiko.jp/article/59950920.html

モジュール版php、cgi版phpとは?

表題の件、私も最近まで知らなかったのですが、
phpには、モジュール版php、cgi版phpという2種類があるようです。

違いについての説明としては、以下サイトが分かりやすかったです。

PHPのCGI版、モジュール版とは… | phpとmysql が使えるおすすめ格安レンタルサーバー比較
http://server-domain.info/word/php-cgi-module.html
CGI版と言われるものは、WebサーバーであるApacheとは別プロセスで動作させるPHPという意味合いが強いです。
実際に、CGIとは、Common Gateway Interfaceの略で、Webサーバーが、Webブラウザからの要求に応じて、プログラムを起動するための仕組みを言います。
つまり、ここでは、

プログラムを起動する=PHPを起動する

という意味となります。

(中略)

逆に、(中略)
モジュール版と言われるものは、WebサーバーであるApacheと同じプロセスで動作させるPHPという意味合いが強いです。

一般に、CGI版PHPとモジュール版PHPでは、どちらが早いかという記事を多くみます。以降の参考記事では、そのあたりがきれいに紹介されています。
ほとんどの場合、モジュール版PHPが動作が速いとされています。

(中略)

しかしながら、レンタルサーバーでは、ほとんどがCGI版PHPが採用されています。
これは、どういう意味があるでしょう。

答えは、上記の動作の仕組みの違いによります。

レンタルサーバーは、いろんな人の寄り合い所帯になっていて、悪意があるなしにかかわらず、PHPなどのスクリプトの暴走などで簡単にシステムが不安定になります。

例えば、モジュール版PHPが動作可能な環境で、あるユーザのPHPスクリプトが暴走しているとしましょう。
そうしたとき、管理者は、CPUの使用率が急激に上がったので対処しようとするでしょう。その時、暴走しているプロセスを停止させることでシステム全体の安定を確保しようと思いますが、モジュール版では、Apacheと同じプロセスとなりますから、Apacheが暴走しているように見えるわけです。
また、さらにApacheは、共有しているすべてのユーザが利用しているものでもありますから、安易にそのプロセスを停止するわけにいきません。

CGI版では、そのような問題を解決してくれます。CGI版は、別のプロセスですから、暴走しているスクリプトがあれば、そのプロセスを停止させれば良いことになります。

このように安定性を確保するためにCGI版を提供しているケースがほとんどのようです。
※大量引用恐縮です。

レンタルサーバで提供されているphpは、
概ねcgi版で動作しているんだそうです。

私は、さくらインターネットを使っているのですが、
このphpの動作はどちらなんでしょうか?

vi03
さくらインターネットの場合、さくらインターネットサーバコントロールパネルの
phpのバージョン選択の項目を選ぶと、
CGI版と明記されていたりするのですぐ分かります。

あとの調べ方としては、php echo phpinfo()の、
Server API の項目をみれば直ぐに分かるみたいですね。

apache で phpのモジュール版とcgi版の切り替えを行ってみる | レンタルサーバー・自宅サーバー設定・構築のヒント
http://server-setting.info/centos/php_cgi_module_exchange.html
CGI版
Server API  : CGI

モジュール版
Server API  : Apache 2.0 Handler
あるいは、
Server API  : Apache

◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇

CGI版PHPとモジュール版PHPでは、php機能の提供のされ方のしくみが違うため、
他にも様々な違いがあります。

小粋空間: PHP における「モジュール版」と「CGI 版」の比較 + WordPress の適用例
http://www.koikikukan.com/archives/2007/01/29-015501.php
PHPのモジュール版とCGI版の違い
http://xrea-memo.raccy.org/php_diff.xhtml

上記ページあたりで詳しくまとめられていますので
小難しいですが、参考にしてみてくださいませ。

どちらが良いかというのは、一概には言えず、
何を重要視するかによる、といったかんじのようですね。。

まとまりませんが、以上です。

テスト環境:Windows7 Home Premium、さくらインターネットのレンタルサーバ

phpで、長い文章を省略して...のように表示する方法      

共有ボタン付きページはこちら: http://tech.kimihiko.jp/article/58498420.html

phpで、長い文章を省略して...のように表示する方法

あああああああああああああああああああああああああああ
あああああああああああああああああああああああああああ
あああああああああああああああああああああああああああ

という文章があるとして、

あああああああああああああ...

というかんじに表示させるというイメージです。


$bunsyou = mb_strimwidth($bunsyou, 0, 20, "...", "SJIS");

上記のようなかんじになります。

“20”の部分が切り上げ文字数の指定をしています。
...の部分は、切り上げ以降に表示させる文字の指定です。

だいたいの説明ですが、以上です。

文章が一定の長さ以上になると“...”とする方法      

共有ボタン付きページはこちら: http://tech.kimihiko.jp/article/42199737.html

文章が一定の長さ以上になると“...”とする方法

PHP: mb_strimwidth - Manual
http://www.php.net/manual/ja/function.mb-strimwidth.php

使用例)
echo mb_strimwidth("Hello World", 0, 10, "...");
// Hello W... と出力します

mb_strlenやmb_strimwidthの注意点 - [PHP] ぺんたん info
http://pentan.info/php/mb_length.html
注意点として、文字エンコーディングは
省略しないほうがよいようです。

いやはや、こんな関数あったのですね。
無事やりたいことが出来てなんか助かりました。

PHPの文字化けを本気で解決する      

共有ボタン付きページはこちら: http://tech.kimihiko.jp/article/37789263.html

PHPの文字化けを本気で解決する

PHPの文字化けを本気で解決する - ぎじゅっやさん
http://hain.jp/index.php/tech-j/2007/02/13/%EF%BC%B0%EF%BC%A8%EF%BC%B0%E3%81%AE%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91

どうすれば文字化けが起こらないようになるのか。
それは
自動変換を利用しない
ことだ。


;; Disable Output Buffering
output_buffering = Off

;; Set HTTP header charset
; default_charset = EUC-JP

;; Set default language to Japanese
mbstring.language = Japanese

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = off

;; Set HTTP input encoding conversion to auto
mbstring.http_input = pass

;; Convert HTTP output to EUC-JP
mbstring.http_output = pass

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none

mbstring.detect_order = SJIS,EUC-JP,JIS,UTF-8,ASCII
参考になります。

PHPのヒアドキュメントで定数を使う      

共有ボタン付きページはこちら: http://tech.kimihiko.jp/article/37460214.html

PHPのヒアドキュメントで定数を使う
http://d.hatena.ne.jp/tonogata/20080818/1219083502
PHPではヒアドキュメント中、
1.変数は展開される
2.定数は展開されない
うーん、そうなのか。めんどい。。

さくらインターネットでcronを使い、phpファイルに一定時間ごとにアクセスする方法      

共有ボタン付きページはこちら: http://tech.kimihiko.jp/article/37186074.html

さくらインターネットでcronを使い、phpファイルに一定時間ごとにアクセスする方法

さくらインターネットのcronでphpを動かす » PHPpress for Wordpress
http://phpress.enjoy-life-style.com/archives/116
さくらでcronを動かそうとしてオオハマリ。もうダメカと思ったが。。

× /usr/local/bin/php /home/mydirectory/file.php
× /usr/local/bin/php -f /home/mydirectory/file.php

○ cd /home/mydirectory; /usr/local/bin/php /home/mydirectory/file.php

何とか動きました。
できました〜(^^)ありがとうございます!

偶数、奇数の判断ロジック      

共有ボタン付きページはこちら: http://tech.kimihiko.jp/article/35461684.html

偶数、奇数の判断ロジック

if($n % 2 == 0) {
 偶数の処理;
} else {
 奇数の処理;
}

色々と使えそうです。

phpで、includeやrequireできないときの対処法      

共有ボタン付きページはこちら: http://tech.kimihiko.jp/article/32768258.html

phpで、includeやrequireできないときの対処法

C:\xampp\php\php.ini
を開き、

allow_url_include = On

にしたらいいと思います。

テスト環境:WindowsXP Pro xampp 1.6.8

Warning: file_get_contentsの正体 〜file_get_contentsを使えるようにする方法〜      

共有ボタン付きページはこちら: http://tech.kimihiko.jp/article/32768257.html

Warning: file_get_contentsの正体 〜file_get_contentsを使えるようにする方法〜

PHPでfile_get_contentsが使えない
http://djlab.sakura.ne.jp/mydiary/?p=458
/etc/php.iniにて、
allow_url_fopen = On
に設定して、httpdを再起動したら解決
だそうです。

テスト環境:WindowsXP Pro xampp 1.6.8

【php】ヒアドキュメントを変数に代入することも可能である。      

共有ボタン付きページはこちら: http://tech.kimihiko.jp/article/32167753.html

【php】ヒアドキュメントを変数に代入することも可能である。

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k04.htm

$msg = <<< END_OF_HTML
<P>あいうえお</P>
<P>かきくけこ</P>
END_OF_HTML;

※↑表示の都合上、全角で記載してます。

へぇ。恥ずかしながら知りませんでした(*´д`*)

Warning: Cannot modify header informationの正体      

共有ボタン付きページはこちら: http://tech.kimihiko.jp/article/29177243.html

Warning: Cannot modify header informationの正体

PHPでの質問です。 Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\xampp\htdocs\regist.php:7) in C:\Progr.. - 人力検索はてな
http://q.hatena.ne.jp/1168608777

にゃるほど

基本的に、header関数の前に、html出力や空白やら改行やら、
何かしらがあると、まずいこともある、ということなのですね。
関連する記事(広告含む)
2 3 4 5 6 7 8 9 
 
2018年09月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
各記事へのコメント
月別記事
お問い合わせ
Powered by さくらのブログ