PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
http://www.php.net/manual/ja/
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 7
http://echo.2ch.net/test/read.cgi/tech/1478657006/
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
【PHP】下らねぇ質問はここに書き込みやがれ 8 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ bfb2-csvI)
2017/03/15(水) 00:41:22.79ID:ko4BTSP20293デフォルトの名無しさん (ワッチョイ 1bc1-bwHs)
2017/05/21(日) 22:14:17.37ID:1J6dhIFt0 そのファイル見たらfor PHP4とか書いてあるんだけど
PHP4のEOLから約9年なんですけど
PHP4のEOLから約9年なんですけど
294デフォルトの名無しさん (ワッチョイ 1bc8-tN1F)
2017/05/21(日) 22:27:21.97ID:rRI3ub450 みなさんアドバイスありがとうございます。やっぱり古いのはだめなんですね…。
今までレンタルサーバーを使っていたのですが、こちらのhttps://github.com/funige/neo
ツールを使いたくて先程のお絵かき掲示板を設置しようとしていたのです…。こちらで普通につかえているようなので大丈夫だと思ったのですが…。
今までレンタルサーバーを使っていたのですが、こちらのhttps://github.com/funige/neo
ツールを使いたくて先程のお絵かき掲示板を設置しようとしていたのです…。こちらで普通につかえているようなので大丈夫だと思ったのですが…。
296デフォルトの名無しさん (ワッチョイ 0fa1-PZTw)
2017/05/22(月) 11:49:09.51ID:d1deCwH80 訪問者が以前見ていたページからオススメのページを表示させたいのだけど
そういうことはできるのでしょうか?
詳細な情報は自分で調べてくるので大凡な概要を教えてください
そういうことはできるのでしょうか?
詳細な情報は自分で調べてくるので大凡な概要を教えてください
297デフォルトの名無しさん (ワッチョイ de1f-bwHs)
2017/05/22(月) 11:58:52.67ID:wBUnNup00 出来るだろうけど、オススメのページを決めるのはあなただよね?
298デフォルトの名無しさん (ワッチョイ 0fa1-PZTw)
2017/05/22(月) 12:05:10.49ID:d1deCwH80 オススメというか同カテゴリの人気ページを表示させたいと思っています。
299デフォルトの名無しさん (ワッチョイ de1f-bwHs)
2017/05/22(月) 12:12:45.56ID:wBUnNup00 アクセスユーザーがログインする形なら、ログインしたユーザーID
ログインしいなら、クッキーを使ってアクセスユーザーを特定する
後はサーバー側で、人気ページ集計やオススメページを決定し
そのアドレスに誘導するなりお好きなように
ログインしいなら、クッキーを使ってアクセスユーザーを特定する
後はサーバー側で、人気ページ集計やオススメページを決定し
そのアドレスに誘導するなりお好きなように
300デフォルトの名無しさん (ワッチョイ 0fa1-PZTw)
2017/05/22(月) 12:17:01.23ID:d1deCwH80 ログインはないのでクッキーと言うものを使ってみようと思います。
ありがとうございました。
ありがとうございました。
301デフォルトの名無しさん (ワッチョイ 5ff3-IUzK)
2017/05/22(月) 12:20:23.07ID:pVaUfe3+0 訪問者をどうやって区別するのか?
ログイン処理などでID管理してればID使えるし、そうでないならcookieで識別するか?
訪問者が以前見たページの情報をどこにどうやって保存するのか?
データベースに保存するのか、ファイルに保存するのか?
オススメのページをどう選定するのか?
ページのごとにIDをふって、オススメページの対応表を自分で作るのか?
ユーザの動向からオススメページを決める手法はかなり難しい
レコメンドアルゴリズムとか協調フィルタとかでぐぐれ
PHPにもライブラリはいくつかあるようだが、そのまま使うのは厳しいかも
ログイン処理などでID管理してればID使えるし、そうでないならcookieで識別するか?
訪問者が以前見たページの情報をどこにどうやって保存するのか?
データベースに保存するのか、ファイルに保存するのか?
オススメのページをどう選定するのか?
ページのごとにIDをふって、オススメページの対応表を自分で作るのか?
ユーザの動向からオススメページを決める手法はかなり難しい
レコメンドアルゴリズムとか協調フィルタとかでぐぐれ
PHPにもライブラリはいくつかあるようだが、そのまま使うのは厳しいかも
302デフォルトの名無しさん (JP 0H16-cm4/)
2017/05/22(月) 13:31:50.42ID:o9BH+SoNH >>296
「レコメンドエンジン」でググるといいよ。
たとえば、
「レコメンドエンジン(協調フィルタリング)をPHP+Redisで実装」
http://qiita.com/yudsuzuk/items/6de4650cb6d50236533e
「レコメンドエンジン」でググるといいよ。
たとえば、
「レコメンドエンジン(協調フィルタリング)をPHP+Redisで実装」
http://qiita.com/yudsuzuk/items/6de4650cb6d50236533e
303デフォルトの名無しさん (ワッチョイ 6745-hm/v)
2017/05/22(月) 16:59:57.37ID:0HmMgaGq0 switch文でcaseが30個超えたりする場合
もっと簡潔にする方法ってありますか?
単純に引数の値によって個々の返値を変えたいんですが、
シンプルな方法がわかりません。
もっと簡潔にする方法ってありますか?
単純に引数の値によって個々の返値を変えたいんですが、
シンプルな方法がわかりません。
304デフォルトの名無しさん (ワッチョイ 9fd4-AGu1)
2017/05/22(月) 17:17:20.84ID:QSwouUjx0 連想配列とissetでやるとか?
305デフォルトの名無しさん (アウアウカー Sacb-PCQh)
2017/05/22(月) 17:17:24.50ID:iPaI6PDPa306303 (ワッチョイ 6745-hm/v)
2017/05/22(月) 18:38:52.91ID:0HmMgaGq0 配列も考えたんですが、うまい方法がわかりませんでした。
出てくるのは一回だけなので、このままでいってみます。
ありがとうございました。
出てくるのは一回だけなので、このままでいってみます。
ありがとうございました。
307デフォルトの名無しさん (オイコラミネオ MM56-IUzK)
2017/05/22(月) 22:58:53.15ID:V20bT2wiM 連想配列の方がスマートだと思う
キーを定義ファイルとかにまとめればswitchよりもキレイで見やすい
キーを定義ファイルとかにまとめればswitchよりもキレイで見やすい
308デフォルトの名無しさん (ワッチョイ d3b7-l8kh)
2017/05/23(火) 21:42:21.92ID:tFSGr+Xo0 外部ファイルをよみこんだけど、
その外部ファイル上からクラスを探してくれないときはどうすればいいですか?
たとえば読み込む側ファイルが、 use.phpだとして
<?php
require_once '/xxx/foo.php';
var_dump(require '/xxx/foo.php');
// => true
$foo = new Foo();
// => PHP Fatal error: Class 'Foo' not found use.php on line 7
→この 「not found use.php 」となっていることから、
そもそも読み込んだ foo.php 上を探してくれていない可能性があります。
もちろん、 foo.phpには
<?php
class Foo{
public function func($arg){
echo $arg;
}
}
とだけ記述されていて、極めてシンプルな検証用ファイルなので、
extendsとかimplementsとかそういった要素は関係していません。
なぜ new のときに読み込まれた側ファイルを探索してくれないのでしょうか。
その外部ファイル上からクラスを探してくれないときはどうすればいいですか?
たとえば読み込む側ファイルが、 use.phpだとして
<?php
require_once '/xxx/foo.php';
var_dump(require '/xxx/foo.php');
// => true
$foo = new Foo();
// => PHP Fatal error: Class 'Foo' not found use.php on line 7
→この 「not found use.php 」となっていることから、
そもそも読み込んだ foo.php 上を探してくれていない可能性があります。
もちろん、 foo.phpには
<?php
class Foo{
public function func($arg){
echo $arg;
}
}
とだけ記述されていて、極めてシンプルな検証用ファイルなので、
extendsとかimplementsとかそういった要素は関係していません。
なぜ new のときに読み込まれた側ファイルを探索してくれないのでしょうか。
309デフォルトの名無しさん (ワッチョイ d3b7-l8kh)
2017/05/23(火) 21:45:25.83ID:tFSGr+Xo0 すみません誤記がありました
上記の
var_dump(require '/xxx/foo.php');
で requireとなっていますが、
var_dump(require_once '/xxx/foo.php');
でもtrueが返ります。
上記の
var_dump(require '/xxx/foo.php');
で requireとなっていますが、
var_dump(require_once '/xxx/foo.php');
でもtrueが返ります。
310デフォルトの名無しさん (ワッチョイ 1bc1-bwHs)
2017/05/23(火) 22:14:10.10ID:J05KrQMn0 >>308
use.phpとfoo.phpを同一ディレクトリに配置して
'/xxx/foo.php' -> __DIR__.'/foo.php'
に書き換えて動かしたけど再現しない
実際に再現するコードは?
use.phpとfoo.phpを同一ディレクトリに配置して
'/xxx/foo.php' -> __DIR__.'/foo.php'
に書き換えて動かしたけど再現しない
実際に再現するコードは?
311デフォルトの名無しさん (ワッチョイ d3b7-l8kh)
2017/05/23(火) 22:29:34.43ID:tFSGr+Xo0 >>310
検証ありがとうございます。
今、私も foo.php と use.phpを同じカレントにおいて実行したところ
実行できました。
つまり、この問題は「foo.phpとuse.phpのディレクトリ(及び実行するカレントディレクトリ)が違う」
という問題が原因していることが新たにわかりました。
ディレクトリが違うと問題が起きるのでしょうか?
読み込んだモジュールと読み込んだ側、実行カレントなどの
ディレクトリを揃える手段ってありますか?
検証ありがとうございます。
今、私も foo.php と use.phpを同じカレントにおいて実行したところ
実行できました。
つまり、この問題は「foo.phpとuse.phpのディレクトリ(及び実行するカレントディレクトリ)が違う」
という問題が原因していることが新たにわかりました。
ディレクトリが違うと問題が起きるのでしょうか?
読み込んだモジュールと読み込んだ側、実行カレントなどの
ディレクトリを揃える手段ってありますか?
312デフォルトの名無しさん (ワッチョイ 1bc1-bwHs)
2017/05/23(火) 23:31:00.98ID:J05KrQMn0 >>311
ディレクトリaaaを掘ってそこにuse.phpを移動しかつ
__DIR__.'/foo.php' -> __DIR__.'/../foo.php'
として問題なく動作する
繰り返すが再現する条件と実行可能なコードを出せ
きちんと原因を知りたいならな
ディレクトリaaaを掘ってそこにuse.phpを移動しかつ
__DIR__.'/foo.php' -> __DIR__.'/../foo.php'
として問題なく動作する
繰り返すが再現する条件と実行可能なコードを出せ
きちんと原因を知りたいならな
313デフォルトの名無しさん (ワッチョイ d3b7-l8kh)
2017/05/24(水) 01:00:45.23ID:rx1CXyDY0 >>312
すみません、自己解決しました。
上記の質問をしたのは autoloadの useが使えなくなり、
require_once(); もcomposerでインストールしたライブラリでは
使えなかったためで、
そもそもの useが使えない原因を特定しました。
私はwindowsから macにPCを変えたばかりで、macでは
\マークと\ を分けていることに気が付きませんでした。
option + \ で \ を出力できることを知り、 useの問題を解決しました。
require_once ();の問題は解決したことにはなりませんが、
とりあえず useで問題なく外部ファイルを読み込めるのでこれで解決
と思うことにしました。
お騒がせして本当にすみません。
すみません、自己解決しました。
上記の質問をしたのは autoloadの useが使えなくなり、
require_once(); もcomposerでインストールしたライブラリでは
使えなかったためで、
そもそもの useが使えない原因を特定しました。
私はwindowsから macにPCを変えたばかりで、macでは
\マークと\ を分けていることに気が付きませんでした。
option + \ で \ を出力できることを知り、 useの問題を解決しました。
require_once ();の問題は解決したことにはなりませんが、
とりあえず useで問題なく外部ファイルを読み込めるのでこれで解決
と思うことにしました。
お騒がせして本当にすみません。
314デフォルトの名無しさん (ワッチョイ d3b7-l8kh)
2017/05/24(水) 01:02:21.63ID:rx1CXyDY0 あれ、投稿したら ¥マークもバックスラッシュになっちゃいましたね・・
つまり、このことがよくわかっていなかったということになります。
つまり、このことがよくわかっていなかったということになります。
315デフォルトの名無しさん (ワッチョイ 0bcd-icqO)
2017/05/24(水) 13:44:43.12ID:AcsriXHn0 DIRECTORY_SEPARATOR
316デフォルトの名無しさん (JP 0H16-cm4/)
2017/05/24(水) 14:00:22.54ID:ktSIKEk8H317デフォルトの名無しさん (ワッチョイ 0bcd-icqO)
2017/05/24(水) 15:13:25.30ID:AcsriXHn0 >>316
せっかく環境まで書いてくれているというのに君は
せっかく環境まで書いてくれているというのに君は
318デフォルトの名無しさん (JP 0H16-cm4/)
2017/05/24(水) 15:28:30.43ID:ktSIKEk8H >>317
macでは円記号とバックスラッシュは別の文字コードってことか?
macでは円記号とバックスラッシュは別の文字コードってことか?
319デフォルトの名無しさん (JP 0H16-cm4/)
2017/05/24(水) 15:35:58.82ID:ktSIKEk8H なるほど、調べたらmacでは円記号は0xA5なのか。
それは知らなかった。
それは知らなかった。
320デフォルトの名無しさん (ワッチョイ 0bcd-icqO)
2017/05/24(水) 20:03:57.63ID:AcsriXHn0 >>319
utf-8で1バイト目が0xA5にはなりえないというのに君は
utf-8で1バイト目が0xA5にはなりえないというのに君は
321デフォルトの名無しさん (JP 0H7f-/6qz)
2017/05/25(木) 11:03:31.77ID:yXnULsJhH322デフォルトの名無しさん (ワッチョイ 5b45-sqEw)
2017/05/26(金) 16:50:51.17ID:NBObyIGd0 コンストラクタの引数を使ってひとつの処理を実行するだけのオブジェクトを作る場合
コンストラクタに全ての処理を書いてインスタンス生成のみを行うのと
実行用のメソッドを作って、インスタンス生成直後に$foo->do()から実行するのと
どちらで作るのが一般的なんでしょうか?
処理は内部的な物で、どうしても必要なクラスという条件です
コンストラクタに全ての処理を書いてインスタンス生成のみを行うのと
実行用のメソッドを作って、インスタンス生成直後に$foo->do()から実行するのと
どちらで作るのが一般的なんでしょうか?
処理は内部的な物で、どうしても必要なクラスという条件です
323デフォルトの名無しさん (JP 0H7f-/6qz)
2017/05/26(金) 17:02:35.49ID:FvwfjnU+H324デフォルトの名無しさん (ワッチョイ 8bcd-wwwt)
2017/05/26(金) 17:03:43.14ID:EqtXAXHq0 インスタンス生成の必要がないように読めるが。
325デフォルトの名無しさん (ワッチョイ 5b45-sqEw)
2017/05/26(金) 18:44:12.74ID:NBObyIGd0 確かに、必要なさそうでした・・
326デフォルトの名無しさん (ワッチョイ 8b3c-/6qz)
2017/05/30(火) 07:24:05.71ID:3I8BlO+30327デフォルトの名無しさん (ワッチョイ 09a1-k7rq)
2017/06/03(土) 14:50:17.96ID:vHC5ipdf0 Webページのソースコードが文字化けするページを見つけたのですが対象方法がわかりませんでした。
どのようにすれば良いのでしょう?
$url="http://momoniji.com";
$html=file_get_contents($url);
$html=mb_convert_encoding($html,'utf8','auto');
echo $html;
どのようにすれば良いのでしょう?
$url="http://momoniji.com";
$html=file_get_contents($url);
$html=mb_convert_encoding($html,'utf8','auto');
echo $html;
328デフォルトの名無しさん (ワッチョイ edc7-rLqX)
2017/06/03(土) 17:44:17.71ID:mWYP1opd0 文字化けではない
HTTPレスポンスヘッダのContent-Encodingを見れば分かるがレスポンスボディはgzip圧縮されている
だから結果をgzdecode関数にかければよい
HTTPレスポンスヘッダのContent-Encodingを見れば分かるがレスポンスボディはgzip圧縮されている
だから結果をgzdecode関数にかければよい
329デフォルトの名無しさん (ワッチョイ 09a1-k7rq)
2017/06/03(土) 19:15:54.54ID:vHC5ipdf0330デフォルトの名無しさん (オッペケ Sr71-i0+1)
2017/06/09(金) 21:35:08.67ID:itsdSOhir ftp関数ってftp関数の使用が許可されているサーバーから許可されていないサーバーに通信できるの?
さくらインターネットはftp関数使えないけど、使えるサーバーからさくらに接続できる?
さくらインターネットはftp関数使えないけど、使えるサーバーからさくらに接続できる?
331デフォルトの名無しさん (オイコラミネオ MMeb-jiBQ)
2017/06/09(金) 22:47:35.09ID:ltTPD1ZbM 受け入れる側が許可してないと何やっても繋がらんよ
ftpdのプロセスが立ち上がってて、かつ必要なポート番号が開いてる必要がある
アクティブモードかパッシブモードかによって色々変わる
さくらのサーバ側がどうなってるか確認すれば良い
繋げる側は通信が外に出ていければだいたい大丈夫
もちろんftpプロトコルで通信できる環境は必要だが
ftpdのプロセスが立ち上がってて、かつ必要なポート番号が開いてる必要がある
アクティブモードかパッシブモードかによって色々変わる
さくらのサーバ側がどうなってるか確認すれば良い
繋げる側は通信が外に出ていければだいたい大丈夫
もちろんftpプロトコルで通信できる環境は必要だが
332デフォルトの名無しさん (オッペケ Sr71-i0+1)
2017/06/10(土) 00:10:31.61ID:0tXhVGnur333デフォルトの名無しさん (ワッチョイ 4500-jiBQ)
2017/06/10(土) 01:01:48.16ID:nnTfCPYs0 >>332
繋ごうとする側にFTPクライアントかFTP関数的なものが必要ということだよ
何のファイルを送受信するか分からんけど、
素のFTPだと暗号化されてないから注意せよ
今の時代ならSFTPとかSCPとか使う方が安全
繋ごうとする側にFTPクライアントかFTP関数的なものが必要ということだよ
何のファイルを送受信するか分からんけど、
素のFTPだと暗号化されてないから注意せよ
今の時代ならSFTPとかSCPとか使う方が安全
334デフォルトの名無しさん (オッペケ Sr71-i0+1)
2017/06/10(土) 06:16:39.22ID:0tXhVGnur >>333
ああ、そうなんですね。
だとすると繋ごうとする先のレンタルサーバーを確認しないとダメですね。
うーん、仕様を確認してわかるものなのか…。
ちなみに送受信するのはhtmlやcssファイルです。
自分のサーバー(ftp関数を実行して繋ぐ側)はエックスサーバーで決まりなんですが、
ftp関数で繋ぐ先のサーバーはいろんなホスティング会社のサーバーです。
ロリポやさくらなどのレンタルサーバー会社。
ftpソフトで繋げられるからといってphpのftp関数でも繋げられるとは限らないということですね。
ああ、そうなんですね。
だとすると繋ごうとする先のレンタルサーバーを確認しないとダメですね。
うーん、仕様を確認してわかるものなのか…。
ちなみに送受信するのはhtmlやcssファイルです。
自分のサーバー(ftp関数を実行して繋ぐ側)はエックスサーバーで決まりなんですが、
ftp関数で繋ぐ先のサーバーはいろんなホスティング会社のサーバーです。
ロリポやさくらなどのレンタルサーバー会社。
ftpソフトで繋げられるからといってphpのftp関数でも繋げられるとは限らないということですね。
335デフォルトの名無しさん (ワッチョイ 4500-jiBQ)
2017/06/10(土) 11:06:58.62ID:nnTfCPYs0 >>334
XServerはPHPがほぼ最新だし、
ftp_connect系の関数も基本は標準で入ってるはず
FTPプロトコルは接続時のお作法がサーバの設定によって色々変わるから大変だと思うが頑張って
XServerはPHPがほぼ最新だし、
ftp_connect系の関数も基本は標準で入ってるはず
FTPプロトコルは接続時のお作法がサーバの設定によって色々変わるから大変だと思うが頑張って
336デフォルトの名無しさん (オッペケ Sr71-i0+1)
2017/06/10(土) 12:10:45.46ID:0tXhVGnur337デフォルトの名無しさん (ワッチョイ 1532-Ell8)
2017/06/12(月) 02:02:20.17ID:9HEIoQd30338デフォルトの名無しさん (オッペケ Sr71-i0+1)
2017/06/12(月) 11:13:25.44ID:9bwuxRECr339デフォルトの名無しさん (オイコラミネオ MMeb-jiBQ)
2017/06/12(月) 21:29:01.90ID:HwT26Y2zM いや、テストはした方がいいよ
そりゃ、たいていは繋がると思うが
ポート番号とかモードの設定とかサーバ側の設定次第で色々調整が必要になることはある
そりゃ、たいていは繋がると思うが
ポート番号とかモードの設定とかサーバ側の設定次第で色々調整が必要になることはある
340デフォルトの名無しさん (ワッチョイ 1532-Ell8)
2017/06/13(火) 00:13:35.53ID:MT1aMd9/0 ちなみにだけど不正アクセスには使ったらあかんよ
341デフォルトの名無しさん (オッペケ Sr71-i0+1)
2017/06/13(火) 09:25:25.23ID:onzjies9r342デフォルトの名無しさん (ワッチョイ 15db-55DC)
2017/06/13(火) 11:59:39.85ID:y4mccwa90 画像ファイルをアップロードして一覧表示するプログラムを作成していて、
iOS端末だけ保存ファイル名が取れないのですが原因わかりますでしょうか。
formから以下の記述で取得してもすべてimage.jpgにリネームされて
複数アップロードしてもぜんぶ同じ画像になってしまいます。
index.html
<form name=“upform" method="post" action=“test.php" enctype="multipart/form-data">
<input type="file" name="uploadfile[]" multiple>
…
test.php
$_FILES["uploadfile"]["name"]
よろしくお願いします。
iOS端末だけ保存ファイル名が取れないのですが原因わかりますでしょうか。
formから以下の記述で取得してもすべてimage.jpgにリネームされて
複数アップロードしてもぜんぶ同じ画像になってしまいます。
index.html
<form name=“upform" method="post" action=“test.php" enctype="multipart/form-data">
<input type="file" name="uploadfile[]" multiple>
…
test.php
$_FILES["uploadfile"]["name"]
よろしくお願いします。
343デフォルトの名無しさん (ワッチョイ e511-Z3xB)
2017/06/13(火) 16:22:16.49ID:e75WWAwz0 APIを作りたいんですが
codeigniterとかフレームワークを使うのってへんですか?
codeigniterとかフレームワークを使うのってへんですか?
344デフォルトの名無しさん (JP 0H6b-yTT2)
2017/06/13(火) 17:07:34.26ID:3KAtKhUpH >>343
・そこそこの数のAPIを作る
・認証が必要
・自前でCSRFとかの対策だるい
・自前でルーティングするのだるい
とかなら、フレームワークおすすめ。
ただ、フルスタックのでかいフレームワークじゃなくて、マイクロフレームワークと呼ばれる
のを調べてみるといいよ。
LumenとかSlimとかSilexとか。
・そこそこの数のAPIを作る
・認証が必要
・自前でCSRFとかの対策だるい
・自前でルーティングするのだるい
とかなら、フレームワークおすすめ。
ただ、フルスタックのでかいフレームワークじゃなくて、マイクロフレームワークと呼ばれる
のを調べてみるといいよ。
LumenとかSlimとかSilexとか。
345デフォルトの名無しさん (ワッチョイ 23cd-D9zB)
2017/06/13(火) 20:13:16.36ID:If/p8sdd0346デフォルトの名無しさん (ササクッテロル Sp71-DEJT)
2017/06/14(水) 01:10:32.29ID:7F7xS9xRp ありがとうございます!
347デフォルトの名無しさん (ワッチョイ ddc2-OlK+)
2017/06/14(水) 14:12:06.77ID:gEXW+PhK0 かなりひさしぶりにPHP触るんだけど今ってテンプレートエンジンは何が熱い?
昔は、smartyが遅いからsmarty記述法と互換性がある自作エンジンを作ってやってたんだけど
最近熱いエンジンのソースコードが見たくなった
昔は、smartyが遅いからsmarty記述法と互換性がある自作エンジンを作ってやってたんだけど
最近熱いエンジンのソースコードが見たくなった
348デフォルトの名無しさん (ワッチョイ ddc2-OlK+)
2017/06/14(水) 14:13:39.40ID:gEXW+PhK0 「自作エンジンを作って」ってなんか頭痛が痛いみたいだ
気にしないでw
気にしないでw
349デフォルトの名無しさん (JP 0H6b-yTT2)
2017/06/14(水) 14:20:31.94ID:/XZF9UoWH その自作エンジンでええやん
350デフォルトの名無しさん (ワッチョイ 7d6c-Fz1p)
2017/06/14(水) 14:44:27.06ID:M56szTyh0 質問失礼します。
php7でサーバプログラムを作成中です。
HttpsRequestでデータを受けとってレスポンス、そのデータをWebSocketで別クライアントに返すという機能を実装したいのですが、
両方のポートで待ち受けるようなプログラムって実装可能なんでしょうか?
(1つのポートでも構いませんが、、、)
php7 + Apache で色々試したり、フレームワークのSilexを入れて試したりしましたが、
これってつまりプロセス間通信だったり、なにかしらのストレージに入れないと無理ですよね?
php7でサーバプログラムを作成中です。
HttpsRequestでデータを受けとってレスポンス、そのデータをWebSocketで別クライアントに返すという機能を実装したいのですが、
両方のポートで待ち受けるようなプログラムって実装可能なんでしょうか?
(1つのポートでも構いませんが、、、)
php7 + Apache で色々試したり、フレームワークのSilexを入れて試したりしましたが、
これってつまりプロセス間通信だったり、なにかしらのストレージに入れないと無理ですよね?
351デフォルトの名無しさん (JP 0H6b-yTT2)
2017/06/14(水) 15:38:38.63ID:/XZF9UoWH >>350
HTTPリクエストを受け取って処理する部分は、待ち受けする必要ないでしょ
リクエストを受け取って、何か処理して、WebSocketサーバにデータを送信する
WebSocketのサーバもPHPで書きたいなら、そこでは当然接続を待ち受ける必要がある
HTTPリクエストを受け取って処理する部分は、待ち受けする必要ないでしょ
リクエストを受け取って、何か処理して、WebSocketサーバにデータを送信する
WebSocketのサーバもPHPで書きたいなら、そこでは当然接続を待ち受ける必要がある
352350 (ワッチョイ 7d6c-Fz1p)
2017/06/14(水) 15:57:19.95ID:M56szTyh0 >>351
WebSocketは待ち受けて、HttpRequestは待ち受けない(Apatchまかせ)のであれば、データをWebSocketでクライアントに送信する際、確実にストレージなりを利用する事になります。
今回それをやりたく無いので、両方同じクラス内で待ち受けて処理できれば、クラス内の一時メモリを使いまわせるのになぁ。
と思った次第です。Silexで試した理由はそれです。
WebSocketは待ち受けて、HttpRequestは待ち受けない(Apatchまかせ)のであれば、データをWebSocketでクライアントに送信する際、確実にストレージなりを利用する事になります。
今回それをやりたく無いので、両方同じクラス内で待ち受けて処理できれば、クラス内の一時メモリを使いまわせるのになぁ。
と思った次第です。Silexで試した理由はそれです。
353デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/14(水) 16:03:38.60ID:/XZF9UoWH >>352
> データをWebSocketでクライアントに送信する際、確実にストレージなりを利用する事になります。
え?なんで?
a.phpがHTTPリクエストを処理したなら、a.phpからWebSocketサーバはsocket通信だよ?
> データをWebSocketでクライアントに送信する際、確実にストレージなりを利用する事になります。
え?なんで?
a.phpがHTTPリクエストを処理したなら、a.phpからWebSocketサーバはsocket通信だよ?
354デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/14(水) 16:10:17.81ID:/XZF9UoWH >>352
読み間違えてた
a.php: Apacheから呼び出される何かのリクエストを処理するコード
WebSocketサーバ:あるポートで待ち受ける、WebSocketプロトコルをしゃべるサーバ
のとき、a.phpはWebSocketクライアントだよ?
読み間違えてた
a.php: Apacheから呼び出される何かのリクエストを処理するコード
WebSocketサーバ:あるポートで待ち受ける、WebSocketプロトコルをしゃべるサーバ
のとき、a.phpはWebSocketクライアントだよ?
355350 (ワッチョイ 7d6c-Fz1p)
2017/06/14(水) 16:11:37.43ID:M56szTyh0 >>353
という事は、a.phpが呼ばれたらlocalhostに接続して送信切断という流れなんですね。
確かにそれでも可能です。
後から要件追加して申し訳ないですが、a.phpが短時間に大量に実行されるので、できれば接続と切断は繰り返したくないのがあります。
という事は、a.phpが呼ばれたらlocalhostに接続して送信切断という流れなんですね。
確かにそれでも可能です。
後から要件追加して申し訳ないですが、a.phpが短時間に大量に実行されるので、できれば接続と切断は繰り返したくないのがあります。
356350 (ワッチョイ 7d6c-Fz1p)
2017/06/14(水) 16:16:39.58ID:M56szTyh0 今試したら、WebSocketのsocket_acceptでHttpRequestを受け取れました。
httpもsocketも同じtcpだからacceptするんですね。目から鱗でした。
接続と切断を繰り返してしまいますが、これしかないですかねぇ。。。
httpもsocketも同じtcpだからacceptするんですね。目から鱗でした。
接続と切断を繰り返してしまいますが、これしかないですかねぇ。。。
357デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/14(水) 16:18:14.83ID:/XZF9UoWH358デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/14(水) 16:19:03.30ID:/XZF9UoWH >>356
つか、WebSocketが何者だか理解してるか?
つか、WebSocketが何者だか理解してるか?
359デフォルトの名無しさん (ワッチョイ 1532-Ell8)
2017/06/14(水) 16:19:16.79ID:3zsLXGHk0 まるで同一サーバで別プロセスが同一ポートでLISTENしているかのような書き方だけど、どこかに隠し情報があるんだろうなぁ
360デフォルトの名無しさん (ワッチョイ ddc2-OlK+)
2017/06/14(水) 16:21:41.56ID:gEXW+PhK0361デフォルトの名無しさん (ワッチョイ 0be3-ceo9)
2017/06/14(水) 16:24:58.32ID:mnieIMJY0 海外レンタルサーバーを借りたのですが
○○○.com/ にアクセスると
○○○.com/?i=1
というように、すべてのurlに ?i=1がくっついてくるのですが、これを取り払うには htaccessに何と書けば良いのでしょうか?
それとも他に方法がありますでしょうか?
○○○.com/ にアクセスると
○○○.com/?i=1
というように、すべてのurlに ?i=1がくっついてくるのですが、これを取り払うには htaccessに何と書けば良いのでしょうか?
それとも他に方法がありますでしょうか?
362デフォルトの名無しさん (ワッチョイ 1532-Ell8)
2017/06/14(水) 16:29:06.69ID:3zsLXGHk0 >>360
どのくらい久しぶりなのかによるけど、改めてsmarty使ってみたら?
「smarty遅い」といってもいろんな理由があるので、使う側の問題で遅いということもある。
他のエンジンがいいならbladeとかtwigとか。
もっとも、やっぱり自作最高やってなりそうな人にも見えるので、やるだけ損かもしれない。
どのくらい久しぶりなのかによるけど、改めてsmarty使ってみたら?
「smarty遅い」といってもいろんな理由があるので、使う側の問題で遅いということもある。
他のエンジンがいいならbladeとかtwigとか。
もっとも、やっぱり自作最高やってなりそうな人にも見えるので、やるだけ損かもしれない。
363350 (ワッチョイ 7d6c-Fz1p)
2017/06/14(水) 16:30:12.68ID:M56szTyh0 >>357
同時接続2000人が想定のチャットサーバ書いてます。
WebSocketの処理でhttpのパケットを解析しようかとも考えたのですが、a.phpを叩いてもらって、
そこから接続切断する方が楽そうですね。。。
ブラウザからのhttp requestをWebSocketで受けたらデータが汚すぎて萎えました。
(接続と切断を2〜3回繰り返す。。。)
同時接続2000人が想定のチャットサーバ書いてます。
WebSocketの処理でhttpのパケットを解析しようかとも考えたのですが、a.phpを叩いてもらって、
そこから接続切断する方が楽そうですね。。。
ブラウザからのhttp requestをWebSocketで受けたらデータが汚すぎて萎えました。
(接続と切断を2〜3回繰り返す。。。)
364デフォルトの名無しさん (JP 0H6b-yTT2)
2017/06/14(水) 16:33:39.90ID:/XZF9UoWH365デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/14(水) 16:35:46.52ID:/XZF9UoWH366デフォルトの名無しさん (ワッチョイ 23cd-D9zB)
2017/06/14(水) 16:40:37.12ID:2WK2RY/D0367デフォルトの名無しさん (ワッチョイ 7d6c-Fz1p)
2017/06/14(水) 16:40:41.43ID:M56szTyh0368デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/14(水) 16:40:42.09ID:/XZF9UoWH WebSocketでチャットとかありがちで、ググればサンプルも死ぬほどあるだろうけど、
たとえは、これ http://qiita.com/hosomichi/items/66b309a6c3c20d910218
チャットそのものは、JavascriptとWebSocketサーバがやりとりする
WebSocketサーバは、別に何で実装してもいい
もちろん、最初のページはHTTPリクエストで取得する
このラインでいいの?駄目なの?
駄目だとしたら、何が必要なの?
たとえは、これ http://qiita.com/hosomichi/items/66b309a6c3c20d910218
チャットそのものは、JavascriptとWebSocketサーバがやりとりする
WebSocketサーバは、別に何で実装してもいい
もちろん、最初のページはHTTPリクエストで取得する
このラインでいいの?駄目なの?
駄目だとしたら、何が必要なの?
369350 (ワッチョイ 7d6c-Fz1p)
2017/06/14(水) 16:48:14.61ID:M56szTyh0 >>368
少し祖語があるみたいです。
http request発行者はクライアントではなく中核サーバーになります。
(上でブラウザで試したというのはクライアントを模してやったわけではなく、単なるテストとしてやりました)
今書いているコードはクライアントと中核サーバーとの中継サーバーのものです。
中核サーバーのコードは修正できません。
そこからhttp requestでメッセージが飛んでくるんです。
そういう意味ではhttp requestを捌くのはmustですね。。。
少し祖語があるみたいです。
http request発行者はクライアントではなく中核サーバーになります。
(上でブラウザで試したというのはクライアントを模してやったわけではなく、単なるテストとしてやりました)
今書いているコードはクライアントと中核サーバーとの中継サーバーのものです。
中核サーバーのコードは修正できません。
そこからhttp requestでメッセージが飛んでくるんです。
そういう意味ではhttp requestを捌くのはmustですね。。。
370デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/14(水) 16:58:29.14ID:/XZF9UoWH >>369
やっと、どんなものか輪郭が見えたよ
> そういう意味ではhttp requestを捌くのはmustですね。。。
だったら、多数回の接続・切断は必要だということじゃないかな
まぁ、これ以上、俺からは何も言えないけど、ひとつだけ言えるとしたら、
最初に戻って、複数のポートで待ち受けできるかどうかだけど、できるよ
http://php.net/manual/ja/function.socket-select.php
やっと、どんなものか輪郭が見えたよ
> そういう意味ではhttp requestを捌くのはmustですね。。。
だったら、多数回の接続・切断は必要だということじゃないかな
まぁ、これ以上、俺からは何も言えないけど、ひとつだけ言えるとしたら、
最初に戻って、複数のポートで待ち受けできるかどうかだけど、できるよ
http://php.net/manual/ja/function.socket-select.php
371350 (ワッチョイ 7d6c-Fz1p)
2017/06/14(水) 17:02:24.05ID:M56szTyh0372デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/14(水) 17:06:01.29ID:/XZF9UoWH >>371
実際PHPで使ったことないから、ほんとにできるかどうかは不明
できなかったらごめんね
PHPのサンプルは見つからなかったけど、select()はこんな感じで使える
http://totofuga.hateblo.jp/entry/2014/09/05/174554
実際PHPで使ったことないから、ほんとにできるかどうかは不明
できなかったらごめんね
PHPのサンプルは見つからなかったけど、select()はこんな感じで使える
http://totofuga.hateblo.jp/entry/2014/09/05/174554
373デフォルトの名無しさん (ワッチョイ 23cd-D9zB)
2017/06/14(水) 17:08:42.57ID:2WK2RY/D0 同時接続2000人ってかなりデカいサービスなので数限られる。
動画配信が一番可能性高いけど、そういう仕事やってるとこは・・・。
まさか会社から2chに繋げてないよね?
知り合いの会社の社員のような気がしてきたw
2chに書き込むとインフラとセキュリティにメールが飛ぶとこもあるぞ。
気をつけなされ。
動画配信が一番可能性高いけど、そういう仕事やってるとこは・・・。
まさか会社から2chに繋げてないよね?
知り合いの会社の社員のような気がしてきたw
2chに書き込むとインフラとセキュリティにメールが飛ぶとこもあるぞ。
気をつけなされ。
374デフォルトの名無しさん (ワッチョイ 1532-Ell8)
2017/06/14(水) 17:10:02.55ID:3zsLXGHk0375デフォルトの名無しさん (ワッチョイ ddc2-OlK+)
2017/06/14(水) 19:32:47.41ID:gEXW+PhK0376デフォルトの名無しさん (ワッチョイ 9a88-y0cV)
2017/06/15(木) 00:40:42.03ID:yD3vPxkF0 アフィリエイトのリンクはクリックしたら広告先のURLに移動しますが、
PHPでアフィリエイトリンクからクリック先のURLを取得する方法はないでしょうか?
(つまり、クリックせずに正規のURLが取得したい)
get_headers($url)は無理でした
PHPでアフィリエイトリンクからクリック先のURLを取得する方法はないでしょうか?
(つまり、クリックせずに正規のURLが取得したい)
get_headers($url)は無理でした
377デフォルトの名無しさん (ワッチョイ aee3-yC+1)
2017/06/15(木) 00:52:33.37ID:orz99gKc0378デフォルトの名無しさん (ワッチョイ aee3-yC+1)
2017/06/15(木) 01:04:52.89ID:orz99gKc0 もしもHTMLソースに埋め込む様な形でリンクが張ってあるなら
ソースを読んで該当箇所を探し、取得する事は出来るかも知れない
ソースを読んで該当箇所を探し、取得する事は出来るかも知れない
379デフォルトの名無しさん (オッペケ Srab-kfIt)
2017/06/15(木) 05:45:49.72ID:teBxPoyNr アフィリリンクはたいていリダイレクトしてるから無理じゃないかな
380デフォルトの名無しさん (ワッチョイ c791-FeJb)
2017/06/15(木) 08:48:34.30ID:3zpPLTtW0 head要求とか?
381デフォルトの名無しさん (ワッチョイ 3aed-g/RG)
2017/06/19(月) 14:11:01.90ID:JoeiF6VU0 【OS名】Win10
【PHPのバージョン】 5.6.30
【連携ソフトウェア】MySQL XAMPP
PHP5技術者認定初級の公式教本(2014年9月20日発行)を読みながら勉強をしてる全くの初心者です。
データベースを作成、接続する部分でつまづいてしまいました。データベース、ユーザーの作成を行い
<meta charset = "UTF-8">
<?php
require 'MDB2.php';
$db = MDB2::connect('mysql://user名:passlocalhost/データベース名');
if(PEAR::isError($db)){
die ("接続失敗:" . $db->getMessage());
}else{
echo "接続できました。";
}
を実行、「接続失敗:MDB2 Error: connect failed」と返ってきます。
PHP5.3以降でMDB2_1.4以降を利用するためにはエラー制御、またはMDB2ドライバのbeta版インストールが必要とのことなのでbeta版のインストールをしました。
この手順に失敗があったのか確認する方法がわからず、とりあえずpaer listで確認したところ、
INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET:
=========================================
PACKAGE VERSION STATE
Archive_Tar 1.4.3 stable
Console_Getopt 1.4.1 stable
MDB2 2.5.0b5 beta
MDB2_Driver_mysql 1.5.0b4 beta
PEAR 1.10.4 stable
Structures_Graph 1.1.1 stable
XML_Util 1.4.2 stable
と表示されました。
データベース接続のため、アドバイスをいただきたいと思います。
足りない情報などもあると思いますが、宜しくお願いいたします。
【PHPのバージョン】 5.6.30
【連携ソフトウェア】MySQL XAMPP
PHP5技術者認定初級の公式教本(2014年9月20日発行)を読みながら勉強をしてる全くの初心者です。
データベースを作成、接続する部分でつまづいてしまいました。データベース、ユーザーの作成を行い
<meta charset = "UTF-8">
<?php
require 'MDB2.php';
$db = MDB2::connect('mysql://user名:passlocalhost/データベース名');
if(PEAR::isError($db)){
die ("接続失敗:" . $db->getMessage());
}else{
echo "接続できました。";
}
を実行、「接続失敗:MDB2 Error: connect failed」と返ってきます。
PHP5.3以降でMDB2_1.4以降を利用するためにはエラー制御、またはMDB2ドライバのbeta版インストールが必要とのことなのでbeta版のインストールをしました。
この手順に失敗があったのか確認する方法がわからず、とりあえずpaer listで確認したところ、
INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET:
=========================================
PACKAGE VERSION STATE
Archive_Tar 1.4.3 stable
Console_Getopt 1.4.1 stable
MDB2 2.5.0b5 beta
MDB2_Driver_mysql 1.5.0b4 beta
PEAR 1.10.4 stable
Structures_Graph 1.1.1 stable
XML_Util 1.4.2 stable
と表示されました。
データベース接続のため、アドバイスをいただきたいと思います。
足りない情報などもあると思いますが、宜しくお願いいたします。
382デフォルトの名無しさん (ワッチョイ 5383-VgqF)
2017/06/19(月) 14:28:03.46ID:4/2FI0cI0 ・'mysql://user名:passlocalhost/データベース名' の内容が間違ってる
・MySQLが起動してない
あたりのオチでは?
そもそも今MDB2を使うメリットって皆無だと思うからPDOを勉強した方が良いと思うけど
・MySQLが起動してない
あたりのオチでは?
そもそも今MDB2を使うメリットって皆無だと思うからPDOを勉強した方が良いと思うけど
383デフォルトの名無しさん (JP 0Ha6-yC+1)
2017/06/19(月) 14:29:02.12ID:Ce38C9l/H >>381
最初のアドバイスとしては、MDB2はもう未来がないからPDOにしとけってこと
最初のアドバイスとしては、MDB2はもう未来がないからPDOにしとけってこと
384デフォルトの名無しさん (JP 0Ha6-yC+1)
2017/06/19(月) 14:29:28.56ID:Ce38C9l/H かぶったw
385デフォルトの名無しさん (ワッチョイ 3acd-2WTa)
2017/06/19(月) 16:11:35.81ID:6320K+Ej0 10年前に終ってるものを今さら引き合いに出すなってw
386デフォルトの名無しさん (ワッチョイ 5383-VgqF)
2017/06/19(月) 16:46:26.99ID:4/2FI0cI0 2014年発行の本でMDB2をとりあげた理由ってなんだろう
PHP5.3系の古いバージョンのPDOだと
文字コードの指定ができないという致命的な欠点があったけどその関係だろうか?
そこまで踏み込んで解説されてるのであれば別に良いけどね
恥ずかしながら
「一般社団法人 PHP技術者認定機構」なんてものがある事を初めて知ったw
実務でどれくらい役に立つんだろうねこれ
PHP5.3系の古いバージョンのPDOだと
文字コードの指定ができないという致命的な欠点があったけどその関係だろうか?
そこまで踏み込んで解説されてるのであれば別に良いけどね
恥ずかしながら
「一般社団法人 PHP技術者認定機構」なんてものがある事を初めて知ったw
実務でどれくらい役に立つんだろうねこれ
387デフォルトの名無しさん (ワッチョイ 4fe3-yC+1)
2017/06/19(月) 17:27:56.89ID:7bEKAPau0 >>381
PHP5技術者認定初級の公式教本って
オライリージャパンの「初めてのPHP5 増補改訂版」かな?
原書の方は Final Release Date: June 2004ってある。
日本語翻訳で追補しているかも
7章の13辺りからPDOでの操作が載っているようだから、
その辺と読み替えてみたらどうだろう
PHP5技術者認定初級の公式教本って
オライリージャパンの「初めてのPHP5 増補改訂版」かな?
原書の方は Final Release Date: June 2004ってある。
日本語翻訳で追補しているかも
7章の13辺りからPDOでの操作が載っているようだから、
その辺と読み替えてみたらどうだろう
388デフォルトの名無しさん (ワッチョイ 876c-BQIS)
2017/06/19(月) 20:39:06.96ID:2foBmcl+0 2014年でMDB2なんて使う必要性ゼロだったと思う
当時でもPDOもしくはmysqliのどっちかしか推奨されてなかった気がする
その本はすぐに捨てて2015年以降に発刊された本を買い直した方がいい
できればPHP7に対応してるやつ
当時でもPDOもしくはmysqliのどっちかしか推奨されてなかった気がする
その本はすぐに捨てて2015年以降に発刊された本を買い直した方がいい
できればPHP7に対応してるやつ
389デフォルトの名無しさん (ワッチョイ 4fe3-yC+1)
2017/06/19(月) 21:49:59.12ID:7bEKAPau0 この本から出題されるらしいから、それは無理だと思う
390デフォルトの名無しさん (ワッチョイ 87cd-hHqA)
2017/06/19(月) 21:50:08.46ID:LhGzpkui0 つか、phpなんてググるだけでいいだろ
教本なんていらんのや!
教本なんていらんのや!
391デフォルトの名無しさん (ワッチョイ 4fe3-yC+1)
2017/06/19(月) 21:58:44.96ID:7bEKAPau0 真面目な修行僧に失礼な!
392デフォルトの名無しさん (ワッチョイ eb00-BQIS)
2017/06/20(火) 02:19:52.47ID:iK2sGPi10 目的はPHPの試験に受かりたいってこと?
なら動かさなくてもいいじゃん、暗記だけでいいと思うよ
正直、もうほとんど使われてないライブラリだから
実際には大して役に立たない
試験受かったら新しめの本買って学び直せ
なら動かさなくてもいいじゃん、暗記だけでいいと思うよ
正直、もうほとんど使われてないライブラリだから
実際には大して役に立たない
試験受かったら新しめの本買って学び直せ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 青森 緊急地震速報 [ぐれ★]
- 【速報】衆院議員定数削減法案、自民・維新が今国会成立見送りで調整 [Hitzeschleier★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ★2 [冬月記者★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★2 [蚤の市★]
- 東京都「都民の税金1.5兆円が国に奪われている」「全国に分配されている」に地方民ブチギレ ★2 [Hitzeschleier★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★5 [Hitzeschleier★]
- 地蔵 [268244553]
- 地震だぁぁぁあ
- 小野田紀美「今年の漢字は『推』!、推しが総理になりまして。推し活をした1年だったなあと」 [256556981]
- 街で見かける謎のシールあるじゃん?
- ぢしん [856698234]
- 【悲報】ネトウヨの次のターゲット「渡邊渚」に決まるwwwwwwwwwwwwwwwwwwwww [455031798]
