X



【PHP】下らねぇ質問はここに 9
■ このスレッドは過去ログ倉庫に格納されています
0169デフォルトの名無しさん (ワッチョイ 93ad-c97c)
垢版 |
2018/04/26(木) 02:51:42.22ID:4mqP60uz0
c言語から勉強初めてjava→html/css→javascript→php→mysql→jqueryときてwordpressの本読んだけど
ウェブやるならこれだけでいい気がして今までの時間が凄く無駄に思えてきた・・・
phpとかできたほうが有利な点を教えてください・・・
モチベーションが・・・
0170デフォルトの名無しさん (ワッチョイ 2be4-iMQz)
垢版 |
2018/04/26(木) 11:41:18.07ID:vpKHU58Q0
何かウェブサービスをやりたいとか
スマホでゲームとか作ってユーザのデータを集約させるバックグラウンドが必要とかでなく
ただWebサイトを構築したいってだけなら別にWPでいいんじゃない?
モチベが欲しいならWPなしでサイト構築するためにPHP学ぶでもいいのでは?
PHPerは無駄が好きなのでJava脳で車輪の再発明嫌いな人はPHP向いてないかもね
0171デフォルトの名無しさん (ワッチョイ 2be8-HzgJ)
垢版 |
2018/04/27(金) 20:59:04.65ID:4+bpK0C+0
同じサーバー内で、自プログラムが置かれているディレクトリとは異なるディレクトリにある
ファイルを読み込みたいのですが、そのディレクトリはBASIC認証をかけています。
この場合、phpプログラムから認証を突破するための手続きはどうすればいいでしょうか?
IDとパスワードはもちろん分かっている状態です。
0173デフォルトの名無しさん (ワッチョイ 2be4-iMQz)
垢版 |
2018/04/28(土) 00:04:33.20ID:g3LZUwEj0
httpでやる必要がないならbasic認証関係ないんで
ローカルのファイルのパスがちゃんと指定できてれば読める
もしhttp経由で読み込む必要があるのなら
http://php.net/manual/ja/function.file-get-contents.php
ここの例4のとこ参考にして
Authorizationヘッダをつけてリクエスト送ればいい
"Authorization: Basic {$token}\r\n"
$tokenはbase64_encode('id:password');
0175デフォルトの名無しさん (ワッチョイ 89f7-c97c)
垢版 |
2018/04/30(月) 08:30:19.19ID:HJ8JxjLj0
ここで聞いていいのかわからないんですが、フレームワークの利用に関する質問です
5年以上前に誰かが作ったWebサイトを運用していく必要があるのですが、フレームワークはEthnaを利用しています
当時サイトを作った人や、その後追加改修を行った人は、もういない状態です。

Ethnaの使用感としては5年以上前に開発が止まっていて、ドキュメントも未完成。
これに学習コストを払うのは嫌だなあというのが本音です。人不足で新しい人も入ってきているのですが、覚えてもらうのが申し訳ないレベルです。

ただ、フレームワークを変えて書き直すとなると、ほぼサイトをリニューアルすることになります。
そもそもフレームワーク関係なく、設計書もなく、中身がブラックボックス化しているサイトなので、リニューアルは何度か検討しています。
が、やはり時間がかかってしまうので、なおしたいことがあればその都度プログラムを読んで、修正しています。

なので、「現状のままであるリスク」を「リニューアルするコスト」がこえないと、なかなか上を説得することが難しいという状態です。
このWebサイトは、年数億円を売り上げており、何かの拍子に動かないというのは許されない状況です。


前提としてはここまでで、ここからが質問なのですが
5年以上前に作ったサイトの、5年以上前のフレームワークをそのまま扱っていくリスクというのは、どう見積もれば良いものでしょうか?
古いシステムをそのまま使い続けてる現場に入ったなら、どのように考えますか?
一応進言すれば、現状は変えられる可能性が高いのですが、判断に悩んでいます。
0176デフォルトの名無しさん (ワッチョイ 2be4-iMQz)
垢版 |
2018/04/30(月) 15:33:03.01ID:jgwIHR0D0
動かなくなったらまずいといいつつ、
よくわからないものをいじって、なんとなく動いてるってことだよね?
その現状に危機感を抱くべきでは?
個人がフォークしたEthnamという後継プロジェクトはあるみたいだけど、
5.4で動くなんてのをウリにしてるあたり、
オリジナルはサポート切れのPHPバージョンを使ってるのだろうけど、
それだけで十分置き換え理由になるのでは?
0181デフォルトの名無しさん (ワッチョイ 272b-XJxX)
垢版 |
2018/05/04(金) 18:08:52.10ID:ZORKHZxp0
FastCGIで動かす時にアプリケーション初期化のコードは最初の1回だけ実行したい
というより予め実行済みの状態でリクエストを待機させたいんだけど、どうすればいいの?
0182デフォルトの名無しさん (ワッチョイ 0beb-pRpi)
垢版 |
2018/05/05(土) 02:10:31.22ID:i6PqpWH90
ファイルを file_get_contens() や file_pet_contents で読み書きしたいんですが
ロックってどうすればいいんでしょうか
flockにファイルディスクリプタが必要みたいなんですけど
それを使って与密会するわけじゃないのでRD_ONLYで開いてもいいんでしょうか

$fp = fopen($filename, 'r');
if (flock($fp, LOCK_EX)) {
file_get_contents($filename);

file_putt_contents($filename);
flock($fp, LOCK_UN)
}

でうごきますか?

ロックファイルはわける必要がありますか?
ロックがぶつかるケースをデバッグできないので大丈夫なのかどうかがよくわかりません
0183デフォルトの名無しさん (ワッチョイ bfad-pRpi)
垢版 |
2018/05/05(土) 02:45:58.52ID:r2NCQwWJ0
てす
0185デフォルトの名無しさん (ワッチョイ 1fe9-bmQX)
垢版 |
2018/05/05(土) 15:07:11.64ID:XYMHadsA0
スマホ向けに下記をhtmlのheadに書いた場合は、スマホの横サイズいっぱいで折り返し表示されますが、
<meta name="viewport" content="width=device-width,initial-scale=1" />

php埋め込みhtml(拡張子はphp)に上記を書いても折り返してくれません。

他に何かお作法が必要でしょうか?
0186デフォルトの名無しさん (ワッチョイ 1ee4-jSIs)
垢版 |
2018/05/05(土) 17:46:10.93ID:ai+BlqsN0
文字コード周りに問題がなければ
PHPで出力したHTMLのソースを表示してみてオリジナルのHTMLと対比してみては?
エスケープミスでタグが閉じられてない状態で出力されてるとかそんなレベルかもしれない
サーバ側で関連ヘッダーを出力しちゃってる可能性もあるので
理解出来るならブラウザの開発者ツール使ってHTTPヘッダの中身チェックするといい

なんにせよ再現できる全体ソースが出ないことには答えようがない
0187デフォルトの名無しさん (ワッチョイ 1fe9-bmQX)
垢版 |
2018/05/05(土) 18:17:23.60ID:XYMHadsA0
>>186
原因が分かりました。
変数に改行(\n)付きの長いメッセージを入れてあり、それを表示するのにpreタグ
で囲っていたのが原因でした。

preタグを使わずに改行付きの長いメッセージを表示する方法を考えてみたいと思います。

どうもありがとうございました。
0189デフォルトの名無しさん (ワッチョイ 0beb-pRpi)
垢版 |
2018/05/05(土) 21:35:48.44ID:i6PqpWH90
>>184
やっぱりロックとる場合はロックをとったファイルディスクリプタに
fread, fwriteで読み書きする必要があるんですね
コード参考にさせていただきます
ありがとうございました
0190デフォルトの名無しさん (ワッチョイ 277f-U8nf)
垢版 |
2018/05/06(日) 01:38:07.25ID:qVg6wQW80
プログラムの基本を教えてください。

一つのphpファイルが300行をオーバーしてしまったから、汎用性はないけど一まとまりの機能があって、色んな所から呼び出す処理を別のphpファイルにしてインクルードで呼び出す、
という形で小分けにしていこうと思ってますが、そんな風にバラバラにしてしまってもいいんでしょうか?
0191デフォルトの名無しさん (ワッチョイ 1ee4-jSIs)
垢版 |
2018/05/06(日) 06:09:15.48ID:P7v+SOn20
その考えの行きつく先にオブジェクト指向があるのでオブジェクト指向入門するといいかな
方向性としてはあってるのでとりあえずは思った通りにやってみては?
あと行数に関していえば1万行クラスのソースコードはざらなので(半分はコメントだったりするけど)
長い行数になったときのソースコードの管理の仕方をIDE使って覚えていくといいよ
0194デフォルトの名無しさん (JP 0Hb6-a7mP)
垢版 |
2018/05/08(火) 19:09:31.56ID:GHttMtN9H
関数の呼び出しがあっているのかわかりません

ボタンでCreateとLikesの処理をわけたいんですが、うまく実行できません

(ボタンの処理は別のPHPファイルに書いてます)

create_qaとUpdate_likes_whenbuttonClickは、単体であれば実行ができているのはわかっているのですが、振り分けるためのbutton_Click関数に入れた途端動かなくなります
returnで、振り分けそのものができていることは確認しました(IDを表示することができたので、問題がないかと思っています)
何か間違っていそうか分かる人教えて下さい



public function button_click(Request $request,$session_id){
if(isset($_POST["create"])){
$this->create_qa($request,$session_id);
}
else if(isset($_POST["likes"])){
//return $session_id; これはできてる
$this->update_likes_whenbuttonClick($request,$session_id);
}
}
0196デフォルトの名無しさん (ササクッテロラ Sp23-a7mP)
垢版 |
2018/05/08(火) 21:06:53.22ID:XEaTgBIDp
>>195

errorが全くでなくて、むしろ真っ白なページが表示されます・・・
関数単体だときちんとreturn viewしたページに飛んで、処理もできているのに、こっちだとできないです
0198デフォルトの名無しさん (ササクッテロラ Sp23-a7mP)
垢版 |
2018/05/08(火) 21:22:37.44ID:XEaTgBIDp
>>197
return でelse以降に入ると数値が表示させるようにして確認しましたが、今のところ流れてはなさそうです
分岐を一切作らずに
$this->create_qa($request,$session_id);
だけ入れてもおかしなことになるので、
$this->〜〜〜っていう表記が間違っているような気がするのですが何がおかしいのか全く分からず・・・
0200デフォルトの名無しさん (ワッチョイ 46d2-a7mP)
垢版 |
2018/05/08(火) 21:46:05.47ID:ZabFV5ph0
>>199

引数なし、return0をするだけの別の関数を作って、同じように呼び出しをしてみましたがだめでした、
やっぱりthis〜の行が何かしら影響を及ぼしてるようです・・・
0202デフォルトの名無しさん (ワッチョイ 46d2-a7mP)
垢版 |
2018/05/08(火) 22:27:49.92ID:ZabFV5ph0
>>201
ためしにエラー出力してみましたが、全く何もでてないようで・・・
0203デフォルトの名無しさん (ワッチョイ 46d2-a7mP)
垢版 |
2018/05/08(火) 22:40:25.33ID:ZabFV5ph0
>>194
ですが解決しました!
分岐文の内部でreturn viewができてないのが原因でした
すみませんお騒がせしました
0205デフォルトの名無しさん (ワッチョイ c5eb-bFqk)
垢版 |
2018/05/16(水) 06:54:52.26ID:U06fQouG0
文字列全体を正規表現判定するのってどうすればいいんですか?

入力に不正文字がないかチェックしたいんですけど

pregmatch('/[0-9a-zA-Z]+/', $input)

だと一部にマッチしてもtrueになっちゃうので
文字列全体で数字アルファベットしか使われてないことを確認したいです
0208デフォルトの名無しさん (ワッチョイ c5eb-bFqk)
垢版 |
2018/05/16(水) 08:02:56.78ID:U06fQouG0
あとPHPの配列についてききたいんですけど

a[] = 2;
a[] = 4;

や array(2,4) でつくった場合Cやjavaの配列と同じくメモリ上にvalueだけがならんで
a[1] でアクセスした場合アドレス計算でアクセスされるんでしょうか?

それとも自動的に連想配列になって '1' っていう key を検索するんでしょうか?

メモリにははいるけどキャッシュにははいらないそこそこ大きなテーブルデータを扱ってるので気になりました
0209デフォルトの名無しさん (ワッチョイ 89fa-9WOx)
垢版 |
2018/05/23(水) 19:27:20.90ID:Au5e7VGg0
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

Q3682
0212デフォルトの名無しさん (アウアウカー Sa5d-2Zx2)
垢版 |
2018/05/31(木) 15:22:43.39ID:TDljpn4Za
参考書を1ページずつjpgに自炊スキャンしましたが
今あるjpgの奇数ページと偶数ページをくっつけて見開きページの画像にして保存したいと考えました、phpの画像処理ライブラリは
GD
DmImage
ImageMagick
等があるみたいですが
手軽にできるのはどれですか?
0215デフォルトの名無しさん (ワッチョイ 3315-WL+L)
垢版 |
2018/06/07(木) 16:51:32.87ID:XK0BD38x0
初心者です。。

Class hoge {
public static function aaa (){
echo __CLASS__;
}
public function __construct (){
static::aaa();
}
}
Class piyo extends hoge {}
$var = new piyo();
//hoge
みたいなコンストラクタの中でstaticつけて関数呼び出すのってどういう意味が有るのですか…

static::hogehoge($this);みたいなのがコンストラクタのなかにあるのって
どういうふうに動いてるのかわからないです。
0217デフォルトの名無しさん (ワッチョイ 3315-WL+L)
垢版 |
2018/06/07(木) 17:37:17.26ID:XK0BD38x0
>>216
遅延的束縛がわからんのです。
コンストラクタの中でやってるからpiyoにならないのかな
static $piyo;
public function __construct(){
static::hoge($this);
}
public static function hoge($this){
return static::piyo = $this;
}

みたいなのときとかもうわけわからん
0218デフォルトの名無しさん (ワッチョイ 3315-WL+L)
垢版 |
2018/06/07(木) 17:38:09.15ID:XK0BD38x0
static::$piyoですね
0220デフォルトの名無しさん (ワッチョイ 3315-psTc)
垢版 |
2018/06/07(木) 19:00:51.08ID:XK0BD38x0
>>219
書いてある?
あんまりインスタンス化して使ってるような例ないぽいけど
0221デフォルトの名無しさん (ワッチョイ 3315-psTc)
垢版 |
2018/06/07(木) 23:45:31.41ID:XK0BD38x0
>>217はClass Hogeとして
$aho = new Hoge()とするとインスタンス化した時にHogeの静的プロパティも初期化されるってことだよね。staticとparentがチェーンしてると訳わからんくなる
0222デフォルトの名無しさん (ワッチョイ 3315-psTc)
垢版 |
2018/06/07(木) 23:53:42.93ID:XK0BD38x0
Hogeを継承したpooクラスがあったらpooクラスのstaticプロパティも初期化されるけどselfとどう違うのかわからん。。
0223デフォルトの名無しさん (ワッチョイ eb96-LHz9)
垢版 |
2018/06/10(日) 00:33:54.58ID:4f+KYqKd0
トランプゲームみたいな感じで写真の入ってるカードを並べ替えさせるゲームを作ろうと思っています。

カードはドラッグして移動可能。
所定の□の近くにくるとカードは□に収まる

こういったことを簡単に実現できるおすすめの言語があったら教えてください。
使ったことのある言語はCとC#だけです。
0224デフォルトの名無しさん (ワッチョイ 2176-QX4S)
垢版 |
2018/06/10(日) 01:34:40.62ID:EYgmWGdc0
なぜPHPのスレで聞くのか?
てか、ハブリッシュするプラットフォームに依存する話しだから
それを言わないとだれも答えられない
ロジックだけ実装するならどんな言語でも作れる
0226デフォルトの名無しさん (ワッチョイ 92eb-m0US)
垢版 |
2018/06/20(水) 05:45:13.05ID:gdouP6aq0
フォームで受け取ったデータをそのままディレクトリ名にしたいんですけど
ディレクトリ名に使われて危険な文字をはじく関数みたいなのってないですか?
. と / だけはじけば大丈夫なのかな
0230デフォルトの名無しさん (ワッチョイ 46d5-MIFy)
垢版 |
2018/07/02(月) 20:37:50.95ID:WBjy4TX+0
a.php が吐くHTMLに、b.php を差し込むSSIタグを埋めたところ、挙動がおかしい。
サーバは apache、PHPの出力に対してもSSIが効くように設定してある。
どうおかしいって、b.php 出力がSSIタグの位置からズレた場所に挿入され、しかもなんか断片化してる。
a.php と b.php の出力が混ざった感じというか、a.php と b.php が非同期に並行して動いてる感じというか。
a.php や b.php と同等の内容の a.html と b.html を用意し、a.html に b.php や b.html をSSIするケースや、a.php に b.html をSSIするケースでは問題無く、a.php に b.php をSSIするケースだけでおかしい。
原因の心当たりって無い?
0233デフォルトの名無しさん (ワッチョイ 46d5-MIFy)
垢版 |
2018/07/02(月) 21:25:25.66ID:WBjy4TX+0
>>231
> * SSIはWebサーバの機能(スレ違い)
あぁ、それもそうだ。おっしゃる通り。
残りについては、そういう都合があるとしか言えない。
SSI もまじ。<!--#include ... のやつな。
いろんなもの SSI してるのよ。
0236デフォルトの名無しさん (ワッチョイ ade9-PNnE)
垢版 |
2018/07/04(水) 02:05:21.42ID:D7cT+Okb0
更新履歴〜
みたいなページでSSI使ってたことはある
これはこれで便利やしトリッキー言うほどじゃないだろ

まあ今時としては、SSIみたいな挙動をするphpコード書くだけになるか
0237デフォルトの名無しさん (ワッチョイ 1167-HDH5)
垢版 |
2018/07/04(水) 12:23:51.44ID:0wBgZClm0
public function Hoge($hoge)
{
return function () use ($hoge) {
return $this->test_func($hoge);
};
}

こういうのって意味有りますか?
クロージャのとこに$hogeを持ってきても実際には繋がりはないように見えるんすけど
$var = Hoge($hoge)
//$var = function($bar){ return $this->test_func($bar);}
0238デフォルトの名無しさん (ワッチョイ 1167-HDH5)
垢版 |
2018/07/04(水) 12:24:35.05ID:0wBgZClm0
クロージャの$hogeと最初の引数の$hogeの繋がり
0239デフォルトの名無しさん (ワッチョイ 1167-HDH5)
垢版 |
2018/07/04(水) 12:32:44.93ID:0wBgZClm0
クロージャになっても最初に渡された$hogeは生きてるんやな。。
知らなかった
0240デフォルトの名無しさん (ワッチョイ 9de9-VCRa)
垢版 |
2018/07/04(水) 13:58:24.36ID:CT674Y3Q0
>>236
PHPを使ってるんだったら
SSIの<!--#include...に該当する処理は
取り込み対象をPHPのコードとして評価したいならinclude、
文字列として評価したいならfile_get_contets()するだけの
1行で済む話

SSIはサーバー環境依存だし今どきSSIが有効になってる古いサーバーを
これから先も使い続けるのか?という疑問もある
0242デフォルトの名無しさん (ワッチョイ 027f-7be3)
垢版 |
2018/07/04(水) 16:51:50.97ID:n4h9hTEh0
このゲーム面白すぎてずっとやってる
https://goo.gl/2UVYAA
0243デフォルトの名無しさん (ワッチョイ 45fa-2e90)
垢版 |
2018/07/04(水) 21:46:16.37ID:gFgZc5FG0
CTP
0246デフォルトの名無しさん (ワッチョイ bf9f-wasm)
垢版 |
2018/07/08(日) 17:52:24.96ID:V6T9ucEP0
PHPでerrnoを取得することはできますか?

やりたいことは、ファイルまたはディレクトリの有無を確認しつつ、
falseだった場合は、ENOENTなのかEACCESなのか知りたいのです。

file_existsとis_readableを組み合わせるしかないですか?
0247230 (ワッチョイ bfd5-Jsga)
垢版 |
2018/07/08(日) 20:26:44.98ID:X1ZcCvQ00
>>230
せっかくなので分かったことを報告。
SSI にせよ PHP の virtual にせよ apache のサブリクエストが発行される場合、元リクエストとサブリクエストのPHPのインスタンスは同一のものが使い回されるらしく、グローバル変数なんかは共通されるらしい。
恐らく define や include、出力バッファなんかも共有されてると思う。
それでいろいろ思いもよらない挙動を示すっぽい。

ということが分かったので、適当に回避した。
apacheの設定によるところもあるかもしれないけど、そこまで検証してない。
0251デフォルトの名無しさん (ワッチョイ 6723-mSbI)
垢版 |
2018/07/09(月) 16:51:13.69ID:snrXTXq90
よく分かってないので、スマソ。
モジュール版PHP5.3環境で動かしていたのを、

@ モジュール版5.6環境に移行させる場合
A CGI版5.3環境に移行させる場合

@、Aともにソースコードの書き換えは必須なの?
また、簡単なのはどっち?
0252デフォルトの名無しさん (ワッチョイ 6723-N6TJ)
垢版 |
2018/07/09(月) 17:11:56.44ID:P+nm3UzA0
それだけじゃなんとも言えんよ…
エスパーでも答えられんと思われ
上の話と同じでグローバル変数とか使ってるとかなら書き換える必要あるかもね
使われてるモジュールやライブラリが対応してるかどうかもあるし
同じ環境を用意して実際に動かしてテストするしかないと思う
0253デフォルトの名無しさん (ワッチョイ a781-UVFs)
垢版 |
2018/07/09(月) 17:22:57.00ID:YsFJMBw40
5.6でサポートやめたり、推奨からは図したりしたものがあれば
良くて警告、悪くて動作せずとなる
やってみないと分からないから、試験環境を作って試すのが最善
0254デフォルトの名無しさん (ワッチョイ e7e9-sule)
垢版 |
2018/07/09(月) 18:02:41.46ID:p8VxNcvv0
5.2.X⇒7.2.Xに以降した環境がいくつもあるけど
PHPコンパイルで何度かこけた(コアに取り込まれて使えなくなってるオプションがあった)ぐらいで
コードを手直しをした記憶が全くないなぁ

逆にどんな書き方をしてたら動かなくなるのやら…
0255デフォルトの名無しさん (スププ Sd7f-w8Cw)
垢版 |
2018/07/09(月) 18:09:44.47ID:U1ydYGt1d
開発を
error_reporting=E_ALL(PHP5.4以前ならE_ALL|E_STRICT)
でしてなかったりすると環境移行でエラー出まくったりするかもな
初心者はまずエラーを正しく出すところから学習しないとな
0256デフォルトの名無しさん (ワッチョイ bfd5-Jsga)
垢版 |
2018/07/10(火) 02:26:11.43ID:wjyVwwQl0
>>248
同じインスタンスで動くならそりゃそうだろって話だけど、virtual はともかく SSI が同じインスタンスで動かすのが当たり前かと言われれば微妙じゃね?
$_GET みたいなスーパーグローバルとかどうなっちゃうんだよって問題もあるし、実際出力バッファはまぜこぜになって使い物にならないわけだし。
わざわざ SSI でやるのなんて、他所の誰かが作った全く関係ないものを自分の処理と隔離してページ上に取り込みたいなんてケースだったりするわけで、隔離できないならあんまり意味が無いというか。
そういうものだということが分かってりゃやり方考えるからいいんだけど、なんでそうする?っていう仕様だと思う。
PHPそのものの問題じゃないであろうこと引っ張ってすまないけど。
0257デフォルトの名無しさん (ワッチョイ 07b8-Ww/5)
垢版 |
2018/07/10(火) 12:06:55.09ID:0tZHlanb0
前バージョンと同じように、必要なモジュール・ライブラリがロードされていて、
基本的な環境に差異がないのを前提とすれば、
あとは廃止変更された機能や関数が影響を受ける。
なので動かない場所が出てきて、書き換えが必要になる場合はあるが、
それはコードの1%にも満たないぐらいの量のはずだから、
大規模なアプリケーションでも書き換えに1日はかからないだろう。
0258デフォルトの名無しさん (ワッチョイ e7e9-sule)
垢版 |
2018/07/10(火) 16:01:47.12ID:Whumi4Kc0
>>256
> 他所の誰かが作った全く関係ないものを自分の処理と隔離してページ上に取り込みたい
SSIを使う理由になってないしSSI以外の知識がないだけ
サーバーの知識が多少ある人間なら今この時代にSSIを使うのがいかに馬鹿げているかすぐ分かる
0259デフォルトの名無しさん (スププ Sd7f-w8Cw)
垢版 |
2018/07/10(火) 16:24:53.40ID:XJrRuzBNd
SSIもhtaccessも無駄にサーバーに負荷をかけわ、遅いわ、セキュリティリスクの管理もしにくわで何1つ良いことないから無効にしろと大昔に教わったな
結構最近でもSSIインジェクションで資生堂の小会社がが情報漏えい起こしてたけど資生堂みたいな大きなところが未だにSSI使ってることに驚いた
includeしたいだけなら他にいくらでも代替案あるのにさ
0261デフォルトの名無しさん (スププ Sd7f-cREG)
垢版 |
2018/07/10(火) 16:43:24.55ID:b+YyloMOd
素人だからよく分かんないんだけど
ssiでincludeするのとhtmlで<iframe> or phpでfile_get_contents するのは何が違うの?
ssiを使う理由って何?
0262デフォルトの名無しさん (オイコラミネオ MM9b-Jsga)
垢版 |
2018/07/10(火) 17:02:12.57ID:MaGnmy4dM
>>261
旧来からのスタイルを踏襲しているとか、
SSIはPHP知らなくてもHTML(と言えるか微妙だが)分かれば使えるってのもあるかもね。
サイト全部がPHPじゃないし、みんながみんなPHP使えるわけじゃないからな。
PHP使うなら PHP の include しても file_get_contents しても、適用できるなら得られる結果は一緒でしょ。
0263デフォルトの名無しさん (ワッチョイ 475b-MSAO)
垢版 |
2018/07/10(火) 18:15:06.82ID:lHg/M16h0
>>261
使う理由は特にない

1.SSI/#include file|virtual="path"はpathの中身をそのまま取り込んだ結果を取り込んだ場所で出力する
2.<iframe src="url|local_path">は対象の出力をフレームとして取り込む
3.file_get_contents('url')はurlの出力を取り込む
4.file_get_contents('local_path')はlocal_pathの中身をそのまま取り込む
5.includeは対象を「PHPのコードとして評価する」

1 ≒ 2 ≒ 3 ≠ 4 ≠ 5
だと思っとけばいい
includeとfile_get_contents()が等価なんてのは大嘘なので信じないよう

SSIの#includeに該当する処理は、そのほとんどが<iframe>+αで片付く程度の低レベルの事しかしてないね
繰り返すけど今更使う必要性は全くない過去の遺物です
0265デフォルトの名無しさん (オイコラミネオ MM9b-Jsga)
垢版 |
2018/07/10(火) 18:46:59.92ID:MaGnmy4dM
include と file_get_contents が等価だなんて言ってないぞ。
別のコンテンツを差し込む方法として適用できるケースがあると言ってるだけで。
例えばページのヘッダやらフッタやらを別ファイルに浮かせたとして、それが include できるなら include で、file_get_contents できるなら file_get_contents で差し込めるだろ。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況