【PHP】下らねぇ質問はここに書き込みやがれ 8 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/03/15(水) 00:41:22.79ID:ko4BTSP20
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
2017/05/20(土) 14:23:35.28ID:VyG0A5Zf0
Partが固定長ならsubstrが最速だと思う
2017/05/21(日) 00:05:30.55ID:GvMHZSOA0
>>284です。
正規表現でできました。
ありがとうございます。
2017/05/21(日) 12:28:59.50ID:ANSA2OhR0
【OS名】WindowsServer2012R2
【PHPのバージョン】5.4.9
【連携ソフトウェア】Apache2.2
PECL2.0.1.2(PHP5.4ThreadSafe)
Oracle12.1.0.2(x64)
OracleInstantClientBasic12.2.0.1.0(x86)
OracleInstant ClienODBC12.2.0.1.0(x86)
【質問内容】PHPからDB接続が失敗します。
アドバイスください。
そもそもこの組み合わせで動作しない?
【やったこと】
環境変数Path
OracleInstantClientBasicのbinを先頭に追加。
tnsnames.ora、sqlnet.oraの設定
httpd.conf
LoadModule php5_module "c:/php/php5apache2_2.dll"
php.ini
extension_dir = "c:/php5/ext"
※"ext"、"c:\php5\ext"に変えても同じ
extension=php_oci8_12c.dll
(extフォルダにphp_oci8_12c.dllを格納)
apache再起動・OS再起動
参考にしたサイト
http://www.php.net/manual/ja/oci8.installation.php
【判明していること】
apacheのerror.log…oci_connect undefined function
phpinfo…oci8の項目がない。
他の32ビットアプリからOracle接続できています。
2017/05/21(日) 19:05:16.60ID:YAwwHXxQ0
extentionの組み込みに失敗してるようだから、
試しに他のextention組み込んでみれば?
それもダメならそもそもextention動的に追加できない環境とか
2017/05/21(日) 21:24:59.33ID:rRI3ub450
phpまったく分からない初心者で申し訳ないんですが、こちらの(http://www.punyu.net/php/oekaki.php)お絵かき掲示板をサイトに設置したいのですが、設置方法通りにやっても
Parse error: syntax error, unexpected '}' in ""/poti/htmltemplate.inc(312) : eval()'d code on line 147
このようなエラーが出てしまいます…
該当のファイルは全く手を付けていないので原因が全く分かりません。
本来ならば配布サイトで聞くことなんですが、かなり昔に更新停止してしまっているようで…。
ご教示いただけたら幸いです。
2017/05/21(日) 22:10:58.34ID:YAwwHXxQ0
>>291
そのサイト見ても403エラーしか表示されないのでよくわらかんが、
syntaxエラーということはプログラムが正しい記法で記述されてないということ
PHPのバージョン違いで対応してないのかもしれない

そもそも更新が停止されてるプログラムなんかセキュリティホールあるかもしれんし
素人ならなおさら使うべきではないと思う
ちゃんと今もメンテされてるところを探すべき
2017/05/21(日) 22:14:17.37ID:1J6dhIFt0
そのファイル見たらfor PHP4とか書いてあるんだけど
PHP4のEOLから約9年なんですけど
2017/05/21(日) 22:27:21.97ID:rRI3ub450
みなさんアドバイスありがとうございます。やっぱり古いのはだめなんですね…。
今までレンタルサーバーを使っていたのですが、こちらのhttps://github.com/funige/neo
ツールを使いたくて先程のお絵かき掲示板を設置しようとしていたのです…。こちらで普通につかえているようなので大丈夫だと思ったのですが…。
2017/05/21(日) 22:43:45.41ID:ANSA2OhR0
>>290
ありがとうございます。
明日試してみたいと思います。
2017/05/22(月) 11:49:09.51ID:d1deCwH80
訪問者が以前見ていたページからオススメのページを表示させたいのだけど
そういうことはできるのでしょうか?
詳細な情報は自分で調べてくるので大凡な概要を教えてください
2017/05/22(月) 11:58:52.67ID:wBUnNup00
出来るだろうけど、オススメのページを決めるのはあなただよね?
2017/05/22(月) 12:05:10.49ID:d1deCwH80
オススメというか同カテゴリの人気ページを表示させたいと思っています。
2017/05/22(月) 12:12:45.56ID:wBUnNup00
アクセスユーザーがログインする形なら、ログインしたユーザーID
ログインしいなら、クッキーを使ってアクセスユーザーを特定する
後はサーバー側で、人気ページ集計やオススメページを決定し
そのアドレスに誘導するなりお好きなように
2017/05/22(月) 12:17:01.23ID:d1deCwH80
ログインはないのでクッキーと言うものを使ってみようと思います。
ありがとうございました。
2017/05/22(月) 12:20:23.07ID:pVaUfe3+0
訪問者をどうやって区別するのか?
ログイン処理などでID管理してればID使えるし、そうでないならcookieで識別するか?

訪問者が以前見たページの情報をどこにどうやって保存するのか?
データベースに保存するのか、ファイルに保存するのか?

オススメのページをどう選定するのか?
ページのごとにIDをふって、オススメページの対応表を自分で作るのか?
ユーザの動向からオススメページを決める手法はかなり難しい
レコメンドアルゴリズムとか協調フィルタとかでぐぐれ
PHPにもライブラリはいくつかあるようだが、そのまま使うのは厳しいかも
2017/05/22(月) 13:31:50.42ID:o9BH+SoNH
>>296
「レコメンドエンジン」でググるといいよ。

たとえば、
「レコメンドエンジン(協調フィルタリング)をPHP+Redisで実装」
http://qiita.com/yudsuzuk/items/6de4650cb6d50236533e
2017/05/22(月) 16:59:57.37ID:0HmMgaGq0
switch文でcaseが30個超えたりする場合
もっと簡潔にする方法ってありますか?
単純に引数の値によって個々の返値を変えたいんですが、
シンプルな方法がわかりません。
2017/05/22(月) 17:17:20.84ID:QSwouUjx0
連想配列とissetでやるとか?
2017/05/22(月) 17:17:24.50ID:iPaI6PDPa
>>303
そのswitchが何回出て来るかによる
1回ならもうそのままでいいし繰り返し出て来るならケース自体をオブジェクトにしてexecute呼ぶだけにするとか
2017/05/22(月) 18:38:52.91ID:0HmMgaGq0
配列も考えたんですが、うまい方法がわかりませんでした。
出てくるのは一回だけなので、このままでいってみます。
ありがとうございました。
2017/05/22(月) 22:58:53.15ID:V20bT2wiM
連想配列の方がスマートだと思う
キーを定義ファイルとかにまとめれば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 のときに読み込まれた側ファイルを探索してくれないのでしょうか。
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が返ります。
2017/05/23(火) 22:14:10.10ID:J05KrQMn0
>>308
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のディレクトリ(及び実行するカレントディレクトリ)が違う」
という問題が原因していることが新たにわかりました。
ディレクトリが違うと問題が起きるのでしょうか?
読み込んだモジュールと読み込んだ側、実行カレントなどの
ディレクトリを揃える手段ってありますか?
2017/05/23(火) 23:31:00.98ID:J05KrQMn0
>>311
ディレクトリ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で問題なく外部ファイルを読み込めるのでこれで解決
と思うことにしました。
お騒がせして本当にすみません。
314デフォルトの名無しさん (ワッチョイ d3b7-l8kh)
垢版 |
2017/05/24(水) 01:02:21.63ID:rx1CXyDY0
あれ、投稿したら ¥マークもバックスラッシュになっちゃいましたね・・
つまり、このことがよくわかっていなかったということになります。
2017/05/24(水) 13:44:43.12ID:AcsriXHn0
DIRECTORY_SEPARATOR
2017/05/24(水) 14:00:22.54ID:ktSIKEk8H
>>314
円記号とバックスラッシュは同じ文字コードです。
表示するフォントで見え方が違うだけ。
2017/05/24(水) 15:13:25.30ID:AcsriXHn0
>>316
せっかく環境まで書いてくれているというのに君は
2017/05/24(水) 15:28:30.43ID:ktSIKEk8H
>>317
macでは円記号とバックスラッシュは別の文字コードってことか?
2017/05/24(水) 15:35:58.82ID:ktSIKEk8H
なるほど、調べたらmacでは円記号は0xA5なのか。
それは知らなかった。
2017/05/24(水) 20:03:57.63ID:AcsriXHn0
>>319
utf-8で1バイト目が0xA5にはなりえないというのに君は
2017/05/25(木) 11:03:31.77ID:yXnULsJhH
>>320
何に関してレスされてるのかわからん。
macでバックスラッシュ使うところを0xA5の円記号を使っておかしくなったって話じゃないのか?
2017/05/26(金) 16:50:51.17ID:NBObyIGd0
コンストラクタの引数を使ってひとつの処理を実行するだけのオブジェクトを作る場合
コンストラクタに全ての処理を書いてインスタンス生成のみを行うのと
実行用のメソッドを作って、インスタンス生成直後に$foo->do()から実行するのと
どちらで作るのが一般的なんでしょうか?
処理は内部的な物で、どうしても必要なクラスという条件です
2017/05/26(金) 17:02:35.49ID:FvwfjnU+H
>>322
> 処理は内部的な物で、どうしても必要なクラスという条件です
なら、コンストラクタで実行するしかないよね。
2017/05/26(金) 17:03:43.14ID:EqtXAXHq0
インスタンス生成の必要がないように読めるが。
2017/05/26(金) 18:44:12.74ID:NBObyIGd0
確かに、必要なさそうでした・・
2017/05/30(火) 07:24:05.71ID:3I8BlO+30
>>322
生成&メソッド呼び出し
DIやテストを書いてみれば分かると思う
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;
2017/06/03(土) 17:44:17.71ID:mWYP1opd0
文字化けではない

HTTPレスポンスヘッダのContent-Encodingを見れば分かるがレスポンスボディはgzip圧縮されている
だから結果をgzdecode関数にかければよい
2017/06/03(土) 19:15:54.54ID:vHC5ipdf0
>>328
ありがとうございます。
ずっと文字化けだと思っていました。
解決できました。
2017/06/09(金) 21:35:08.67ID:itsdSOhir
ftp関数ってftp関数の使用が許可されているサーバーから許可されていないサーバーに通信できるの?
さくらインターネットはftp関数使えないけど、使えるサーバーからさくらに接続できる?
2017/06/09(金) 22:47:35.09ID:ltTPD1ZbM
受け入れる側が許可してないと何やっても繋がらんよ
ftpdのプロセスが立ち上がってて、かつ必要なポート番号が開いてる必要がある
アクティブモードかパッシブモードかによって色々変わる
さくらのサーバ側がどうなってるか確認すれば良い

繋げる側は通信が外に出ていければだいたい大丈夫
もちろんftpプロトコルで通信できる環境は必要だが
2017/06/10(土) 00:10:31.61ID:0tXhVGnur
>>331
つまりftpソフトで繋がるサーバーならphpのftp関数とは関係なく大丈夫ってことですかね

繋げる側はエックスサーバーでやってみて大丈夫でした!
2017/06/10(土) 01:01:48.16ID:nnTfCPYs0
>>332
繋ごうとする側にFTPクライアントかFTP関数的なものが必要ということだよ
何のファイルを送受信するか分からんけど、
素のFTPだと暗号化されてないから注意せよ
今の時代ならSFTPとかSCPとか使う方が安全
2017/06/10(土) 06:16:39.22ID:0tXhVGnur
>>333
ああ、そうなんですね。
だとすると繋ごうとする先のレンタルサーバーを確認しないとダメですね。
うーん、仕様を確認してわかるものなのか…。

ちなみに送受信するのはhtmlやcssファイルです。
自分のサーバー(ftp関数を実行して繋ぐ側)はエックスサーバーで決まりなんですが、
ftp関数で繋ぐ先のサーバーはいろんなホスティング会社のサーバーです。
ロリポやさくらなどのレンタルサーバー会社。

ftpソフトで繋げられるからといってphpのftp関数でも繋げられるとは限らないということですね。
2017/06/10(土) 11:06:58.62ID:nnTfCPYs0
>>334
XServerはPHPがほぼ最新だし、
ftp_connect系の関数も基本は標準で入ってるはず
FTPプロトコルは接続時のお作法がサーバの設定によって色々変わるから大変だと思うが頑張って
2017/06/10(土) 12:10:45.46ID:0tXhVGnur
>>335
ありがとうございます!
ちょっと他のサーバーを仮契約して試してみます!
2017/06/12(月) 02:02:20.17ID:9HEIoQd30
>>336
> ftpソフトで繋げられるからといってphpのftp関数でも繋げられるとは限らない
普通につながるから安心していいよ

つなぐ先のサーバのphpにftp関数があるかどうかは関係ない
2017/06/12(月) 11:13:25.44ID:9bwuxRECr
>>337
そうなんだ!
昨日からいくつかサーバー確認しはじめたけど、それがわかるならテストしなくていいから助かります!
2017/06/12(月) 21:29:01.90ID:HwT26Y2zM
いや、テストはした方がいいよ
そりゃ、たいていは繋がると思うが
ポート番号とかモードの設定とかサーバ側の設定次第で色々調整が必要になることはある
2017/06/13(火) 00:13:35.53ID:MT1aMd9/0
ちなみにだけど不正アクセスには使ったらあかんよ
2017/06/13(火) 09:25:25.23ID:onzjies9r
>>339
ポート番号とかモードはユーザーが設定できるようにしてるので大丈夫かな

>>340
そういう目的じゃないので…
逆に不正アクセスできないように配慮はしてるつもり
342デフォルトの名無しさん (ワッチョイ 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"]

よろしくお願いします。
343デフォルトの名無しさん (ワッチョイ e511-Z3xB)
垢版 |
2017/06/13(火) 16:22:16.49ID:e75WWAwz0
APIを作りたいんですが
codeigniterとかフレームワークを使うのってへんですか?
2017/06/13(火) 17:07:34.26ID:3KAtKhUpH
>>343
・そこそこの数のAPIを作る
・認証が必要
・自前でCSRFとかの対策だるい
・自前でルーティングするのだるい
とかなら、フレームワークおすすめ。

ただ、フルスタックのでかいフレームワークじゃなくて、マイクロフレームワークと呼ばれる
のを調べてみるといいよ。
LumenとかSlimとかSilexとか。
2017/06/13(火) 20:13:16.36ID:If/p8sdd0
>>343
変じゃない。
>>344が書いてるようにフレームワーク使った方が楽。
LumenやSlimもいいんだけど、マイナーだからなにか問題起こると
ググっただけでは答えが見つからないこともある。
初心者だったらメジャーなフレームワーク選ぶといいよ。
最近シェア落としてるけどcakeでいいと思う。
エラーメッセージそのままコピペしてググれば、ほぼ答えが出てくる。
2017/06/14(水) 01:10:32.29ID:7F7xS9xRp
ありがとうございます!
2017/06/14(水) 14:12:06.77ID:gEXW+PhK0
かなりひさしぶりにPHP触るんだけど今ってテンプレートエンジンは何が熱い?
昔は、smartyが遅いからsmarty記述法と互換性がある自作エンジンを作ってやってたんだけど
最近熱いエンジンのソースコードが見たくなった
2017/06/14(水) 14:13:39.40ID:gEXW+PhK0
「自作エンジンを作って」ってなんか頭痛が痛いみたいだ
気にしないでw
2017/06/14(水) 14:20:31.94ID:/XZF9UoWH
その自作エンジンでええやん
2017/06/14(水) 14:44:27.06ID:M56szTyh0
質問失礼します。
php7でサーバプログラムを作成中です。

HttpsRequestでデータを受けとってレスポンス、そのデータをWebSocketで別クライアントに返すという機能を実装したいのですが、
両方のポートで待ち受けるようなプログラムって実装可能なんでしょうか?
(1つのポートでも構いませんが、、、)

php7 + Apache で色々試したり、フレームワークのSilexを入れて試したりしましたが、
これってつまりプロセス間通信だったり、なにかしらのストレージに入れないと無理ですよね?
2017/06/14(水) 15:38:38.63ID:/XZF9UoWH
>>350
HTTPリクエストを受け取って処理する部分は、待ち受けする必要ないでしょ
リクエストを受け取って、何か処理して、WebSocketサーバにデータを送信する
WebSocketのサーバもPHPで書きたいなら、そこでは当然接続を待ち受ける必要がある
2017/06/14(水) 15:57:19.95ID:M56szTyh0
>>351
WebSocketは待ち受けて、HttpRequestは待ち受けない(Apatchまかせ)のであれば、データをWebSocketでクライアントに送信する際、確実にストレージなりを利用する事になります。
今回それをやりたく無いので、両方同じクラス内で待ち受けて処理できれば、クラス内の一時メモリを使いまわせるのになぁ。
と思った次第です。Silexで試した理由はそれです。
2017/06/14(水) 16:03:38.60ID:/XZF9UoWH
>>352
> データをWebSocketでクライアントに送信する際、確実にストレージなりを利用する事になります。
え?なんで?
a.phpがHTTPリクエストを処理したなら、a.phpからWebSocketサーバはsocket通信だよ?
2017/06/14(水) 16:10:17.81ID:/XZF9UoWH
>>352
読み間違えてた
a.php: Apacheから呼び出される何かのリクエストを処理するコード
WebSocketサーバ:あるポートで待ち受ける、WebSocketプロトコルをしゃべるサーバ

のとき、a.phpはWebSocketクライアントだよ?
2017/06/14(水) 16:11:37.43ID:M56szTyh0
>>353
という事は、a.phpが呼ばれたらlocalhostに接続して送信切断という流れなんですね。
確かにそれでも可能です。
後から要件追加して申し訳ないですが、a.phpが短時間に大量に実行されるので、できれば接続と切断は繰り返したくないのがあります。
2017/06/14(水) 16:16:39.58ID:M56szTyh0
今試したら、WebSocketのsocket_acceptでHttpRequestを受け取れました。
httpもsocketも同じtcpだからacceptするんですね。目から鱗でした。
接続と切断を繰り返してしまいますが、これしかないですかねぇ。。。
2017/06/14(水) 16:18:14.83ID:/XZF9UoWH
>>355
ちょっとまってくれよ
HTTPリクエストを捌くのはmustなの?そうじゃないの?
短時間に大量のリクエストってどれくらい?100req/sec?10000req/sec?
2017/06/14(水) 16:19:03.30ID:/XZF9UoWH
>>356
つか、WebSocketが何者だか理解してるか?
2017/06/14(水) 16:19:16.79ID:3zsLXGHk0
まるで同一サーバで別プロセスが同一ポートでLISTENしているかのような書き方だけど、どこかに隠し情報があるんだろうなぁ
2017/06/14(水) 16:21:41.56ID:gEXW+PhK0
>>349
他言語ばっかやっててPHP書くのなんて久しぶりだから
最近の流行りもののソースコードを何となく見てみたくなるんだよw
そこで自分が全く知らない新しい事を見つけたら嬉しくならない?
2017/06/14(水) 16:24:58.32ID:mnieIMJY0
海外レンタルサーバーを借りたのですが
○○○.com/ にアクセスると
○○○.com/?i=1
というように、すべてのurlに ?i=1がくっついてくるのですが、これを取り払うには htaccessに何と書けば良いのでしょうか?
それとも他に方法がありますでしょうか?
2017/06/14(水) 16:29:06.69ID:3zsLXGHk0
>>360
どのくらい久しぶりなのかによるけど、改めてsmarty使ってみたら?
「smarty遅い」といってもいろんな理由があるので、使う側の問題で遅いということもある。

他のエンジンがいいならbladeとかtwigとか。
もっとも、やっぱり自作最高やってなりそうな人にも見えるので、やるだけ損かもしれない。
2017/06/14(水) 16:30:12.68ID:M56szTyh0
>>357
同時接続2000人が想定のチャットサーバ書いてます。

WebSocketの処理でhttpのパケットを解析しようかとも考えたのですが、a.phpを叩いてもらって、
そこから接続切断する方が楽そうですね。。。

ブラウザからのhttp requestをWebSocketで受けたらデータが汚すぎて萎えました。
(接続と切断を2〜3回繰り返す。。。)
2017/06/14(水) 16:33:39.90ID:/XZF9UoWH
>>360
> 最近の流行りもののソースコードを何となく見てみたくなるんだよw
見たいんならさっさと見ろ
2017/06/14(水) 16:35:46.52ID:/XZF9UoWH
>>363
だーかーらー、そのチャット中にHTTPリクエストを捌くのは必要なの?不要なの?
いらないんじゃないの?
2017/06/14(水) 16:40:37.12ID:2WK2RY/D0
>>364
>>360みたいな人には何言っても無駄だよ。
「〜したい」「〜やりたい」と言うだけで実際には何もしないし出来ない。
そういう奴は相手しないこったね。
2017/06/14(水) 16:40:41.43ID:M56szTyh0
>>365
http request内のデータが取得できるのであれば、なんだって大丈夫です。
なのでmustではないという事になりますかね。
2017/06/14(水) 16:40:42.09ID:/XZF9UoWH
WebSocketでチャットとかありがちで、ググればサンプルも死ぬほどあるだろうけど、
たとえは、これ http://qiita.com/hosomichi/items/66b309a6c3c20d910218
チャットそのものは、JavascriptとWebSocketサーバがやりとりする
WebSocketサーバは、別に何で実装してもいい
もちろん、最初のページはHTTPリクエストで取得する

このラインでいいの?駄目なの?
駄目だとしたら、何が必要なの?
2017/06/14(水) 16:48:14.61ID:M56szTyh0
>>368
少し祖語があるみたいです。
http request発行者はクライアントではなく中核サーバーになります。
(上でブラウザで試したというのはクライアントを模してやったわけではなく、単なるテストとしてやりました)
今書いているコードはクライアントと中核サーバーとの中継サーバーのものです。
中核サーバーのコードは修正できません。
そこからhttp requestでメッセージが飛んでくるんです。
そういう意味ではhttp requestを捌くのはmustですね。。。
2017/06/14(水) 16:58:29.14ID:/XZF9UoWH
>>369
やっと、どんなものか輪郭が見えたよ

> そういう意味ではhttp requestを捌くのはmustですね。。。
だったら、多数回の接続・切断は必要だということじゃないかな

まぁ、これ以上、俺からは何も言えないけど、ひとつだけ言えるとしたら、
最初に戻って、複数のポートで待ち受けできるかどうかだけど、できるよ
http://php.net/manual/ja/function.socket-select.php
2017/06/14(水) 17:02:24.05ID:M56szTyh0
>>370
おお!
パッと見どうやって使うのか、まだよく理解できていませんが、貴重な情報ありがとうございます!
言葉足らずですいませんでした。
2017/06/14(水) 17:06:01.29ID:/XZF9UoWH
>>371
実際PHPで使ったことないから、ほんとにできるかどうかは不明
できなかったらごめんね

PHPのサンプルは見つからなかったけど、select()はこんな感じで使える
http://totofuga.hateblo.jp/entry/2014/09/05/174554
2017/06/14(水) 17:08:42.57ID:2WK2RY/D0
同時接続2000人ってかなりデカいサービスなので数限られる。
動画配信が一番可能性高いけど、そういう仕事やってるとこは・・・。
まさか会社から2chに繋げてないよね?
知り合いの会社の社員のような気がしてきたw
2chに書き込むとインフラとセキュリティにメールが飛ぶとこもあるぞ。
気をつけなされ。
2017/06/14(水) 17:10:02.55ID:3zsLXGHk0
>>372
> 実際PHPで使ったことないから、ほんとにできるかどうかは不明
> できなかったらごめんね

普通のソケットプログラミングとほぼ同じだよ
2017/06/14(水) 19:32:47.41ID:gEXW+PhK0
>>362
bladeとtwigありがと

smartyはこういうところが変わった
bladeはここがいい
今一番伸びてるのはtwigだ
そういうレスを期待してたんだけどね

なんかグダグダ余計な事言ってるアホが居るから消えるわ

>>366
なんだその決め付けはw
2ch脳も大概にしてくれや
面倒くせぇやつだな
376デフォルトの名無しさん (ワッチョイ 9a88-y0cV)
垢版 |
2017/06/15(木) 00:40:42.03ID:yD3vPxkF0
アフィリエイトのリンクはクリックしたら広告先のURLに移動しますが、
PHPでアフィリエイトリンクからクリック先のURLを取得する方法はないでしょうか?
(つまり、クリックせずに正規のURLが取得したい)
get_headers($url)は無理でした
2017/06/15(木) 00:52:33.37ID:orz99gKc0
>>376
通常はクリックするアクションでGetやPostを要求し、
サーバー側の処理により移動先サイトのURLを受けとることになる

だから、クリックしないと無理じゃないかな
2017/06/15(木) 01:04:52.89ID:orz99gKc0
もしもHTMLソースに埋め込む様な形でリンクが張ってあるなら
ソースを読んで該当箇所を探し、取得する事は出来るかも知れない
2017/06/15(木) 05:45:49.72ID:teBxPoyNr
アフィリリンクはたいていリダイレクトしてるから無理じゃないかな
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
と表示されました。
データベース接続のため、アドバイスをいただきたいと思います。
足りない情報などもあると思いますが、宜しくお願いいたします。
2017/06/19(月) 14:28:03.46ID:4/2FI0cI0
・'mysql://user名:passlocalhost/データベース名' の内容が間違ってる
・MySQLが起動してない

あたりのオチでは?
そもそも今MDB2を使うメリットって皆無だと思うからPDOを勉強した方が良いと思うけど
2017/06/19(月) 14:29:02.12ID:Ce38C9l/H
>>381
最初のアドバイスとしては、MDB2はもう未来がないからPDOにしとけってこと
2017/06/19(月) 14:29:28.56ID:Ce38C9l/H
かぶったw
2017/06/19(月) 16:11:35.81ID:6320K+Ej0
10年前に終ってるものを今さら引き合いに出すなってw
2017/06/19(月) 16:46:26.99ID:4/2FI0cI0
2014年発行の本でMDB2をとりあげた理由ってなんだろう

PHP5.3系の古いバージョンのPDOだと
文字コードの指定ができないという致命的な欠点があったけどその関係だろうか?
そこまで踏み込んで解説されてるのであれば別に良いけどね

恥ずかしながら
「一般社団法人 PHP技術者認定機構」なんてものがある事を初めて知ったw
実務でどれくらい役に立つんだろうねこれ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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