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:ko4BTSP20332デフォルトの名無しさん (オッペケ 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の試験に受かりたいってこと?
なら動かさなくてもいいじゃん、暗記だけでいいと思うよ
正直、もうほとんど使われてないライブラリだから
実際には大して役に立たない
試験受かったら新しめの本買って学び直せ
なら動かさなくてもいいじゃん、暗記だけでいいと思うよ
正直、もうほとんど使われてないライブラリだから
実際には大して役に立たない
試験受かったら新しめの本買って学び直せ
393デフォルトの名無しさん (ワッチョイ f723-Udsw)
2017/06/28(水) 23:04:51.83ID:7cLKB0Py0 PHPや他言語で、JSのconsole.log();みたいに
オブジェクトや配列を▼ボタンで折りたたみ/展開できる
デバッグ方法ない?
オブジェクトや配列を▼ボタンで折りたたみ/展開できる
デバッグ方法ない?
394デフォルトの名無しさん (ワッチョイ 572b-LvKX)
2017/06/28(水) 23:07:31.32ID:8ccEp+RW0 >>393
それブラウザの機能だから
それブラウザの機能だから
395デフォルトの名無しさん (ワッチョイ c1c2-OatX)
2017/06/29(木) 08:09:11.69ID:IUqqYZb20 Laravel使ってdd()
396デフォルトの名無しさん (ブーイモ MMed-p+6f)
2017/06/29(木) 17:16:58.19ID:olsHrbVIM 多次元配列どうしの結合で教えてくださいませ。
以下のようなそれぞれの配列を、
Array1
(
[0] => Array
(
[key1] => 1
[key2] => 2
)
Array2
(
[0] => Array
(
[key3] => 1
)
このように1つの配列にまとめたい場合はどのようにすればいいでしょうか。
Array
(
[0] => Array
(
[key1] => 1
[key2] => 2
[key3] => 1
)
よろしくお願いします。
以下のようなそれぞれの配列を、
Array1
(
[0] => Array
(
[key1] => 1
[key2] => 2
)
Array2
(
[0] => Array
(
[key3] => 1
)
このように1つの配列にまとめたい場合はどのようにすればいいでしょうか。
Array
(
[0] => Array
(
[key1] => 1
[key2] => 2
[key3] => 1
)
よろしくお願いします。
397デフォルトの名無しさん (アウアウカー Sae9-2GBU)
2017/06/29(木) 18:00:57.13ID:/ne8B1aHa [array_merge(Array1[0],Array2[0])]
398デフォルトの名無しさん (ブーイモ MMed-p+6f)
2017/06/29(木) 19:19:10.78ID:olsHrbVIM >>397
できました、ありがとうございます!
できました、ありがとうございます!
399デフォルトの名無しさん (ワッチョイ c2cd-wjSU)
2017/06/30(金) 01:31:07.59ID:xquLJ6q20 $Array1[0] + $Array2[0] でもok
400デフォルトの名無しさん (ブーイモ MM62-p+6f)
2017/06/30(金) 14:43:54.43ID:IOmACzTvM 質問させてください。
条件分岐で結果の数が多い場合、
if文でネストする以外にいい方法はありますでしょうか。
配列の同じキーの値を、1〜5つ前まで順にたどって、
同じ値が続いていたら続いたぶんの数を新たに配列に入れたいと考えています。
よろしくお願いします。
条件分岐で結果の数が多い場合、
if文でネストする以外にいい方法はありますでしょうか。
配列の同じキーの値を、1〜5つ前まで順にたどって、
同じ値が続いていたら続いたぶんの数を新たに配列に入れたいと考えています。
よろしくお願いします。
401デフォルトの名無しさん (ワッチョイ c2cd-0bL8)
2017/06/30(金) 15:29:51.48ID:xquLJ6q20 foreachで回してカウントすればいいのでは?
402デフォルトの名無しさん (アウアウカー Sae9-2GBU)
2017/06/30(金) 15:57:18.21ID:rakscAnxa403デフォルトの名無しさん (ワッチョイ bdc2-nP2k)
2017/06/30(金) 16:18:07.71ID:EFdSifWf0 >>400
エスパーで答えるとarray_count_values()を使えば解決する気がする
エスパーで答えるとarray_count_values()を使えば解決する気がする
404 (ブーイモ MM62-p+6f)
2017/06/30(金) 18:59:07.63ID:IOmACzTvM もろもろレスありがとうございます。
>>402
いまこんな感じです。
配列allDataのhogeValue値をもとに、
1件前との差分値がdiffValueに入っており、
zeroOneに下がったか上がったかのフラグ値が0or1で入ってます。
実際は5連続まで判定したいのでネスト足りてませんが、
以下のコードは配列allDataのzeroOneキーを3つ前までたどって、
0が続いた場合に連続してます値をzeroCheckキーにPushしてます。
いまは5連続までですが、最終的に7くらいまで増える可能性があります。
if($allData[$i - 1]["zeroOne"] == 0) {
if($allData[$i - 2]["zeroOne"] == 0) {
if($allData[$i - 3]["zeroOne"] == 0) {
$allData[$i]["zeroCheck"] = "4連続";
} else {
$allData[$i]["zeroCheck"] = "3連続";
}
} else {
$allData[$i]["zeroCheck"] = "2連続";
}
} else {
$hairetsu[$i]["zeroCheck"] = "1回目";
}
>>402
いまこんな感じです。
配列allDataのhogeValue値をもとに、
1件前との差分値がdiffValueに入っており、
zeroOneに下がったか上がったかのフラグ値が0or1で入ってます。
実際は5連続まで判定したいのでネスト足りてませんが、
以下のコードは配列allDataのzeroOneキーを3つ前までたどって、
0が続いた場合に連続してます値をzeroCheckキーにPushしてます。
いまは5連続までですが、最終的に7くらいまで増える可能性があります。
if($allData[$i - 1]["zeroOne"] == 0) {
if($allData[$i - 2]["zeroOne"] == 0) {
if($allData[$i - 3]["zeroOne"] == 0) {
$allData[$i]["zeroCheck"] = "4連続";
} else {
$allData[$i]["zeroCheck"] = "3連続";
}
} else {
$allData[$i]["zeroCheck"] = "2連続";
}
} else {
$hairetsu[$i]["zeroCheck"] = "1回目";
}
405 (ブーイモ MM62-p+6f)
2017/06/30(金) 19:00:51.81ID:IOmACzTvM >>402
まとめて送信できなかったので、配列は以下の通りです
配列:$allData
Array
(
[0] => Array
(
[id] => 1
[hogeValue] => 9594
[diffValue] => 0
[zeroOne] => 0
[zeroCheck] => 0
)
[1] => Array
(
[id] => 2
[hogeValue] => 9494
[diffValue] => -100
[zeroOne] => 0
[zeroCheck] => 1回目
)
…
まとめて送信できなかったので、配列は以下の通りです
配列:$allData
Array
(
[0] => Array
(
[id] => 1
[hogeValue] => 9594
[diffValue] => 0
[zeroOne] => 0
[zeroCheck] => 0
)
[1] => Array
(
[id] => 2
[hogeValue] => 9494
[diffValue] => -100
[zeroOne] => 0
[zeroCheck] => 1回目
)
…
406デフォルトの名無しさん (ワッチョイ bdc2-nP2k)
2017/06/30(金) 19:15:45.47ID:EFdSifWf0 array_column($allData, 'zeroOne');
で
'zeroOne'の値だけ抜き出した配列を別に作ってそれをforeach()あたりで回してチェックすればいいだけな気がするが
何か勘違いしてたらすまない
※array_column()はPHP5.5以上でしか使えないから注意。仮に使えなくても自分で作れるよね?
で
'zeroOne'の値だけ抜き出した配列を別に作ってそれをforeach()あたりで回してチェックすればいいだけな気がするが
何か勘違いしてたらすまない
※array_column()はPHP5.5以上でしか使えないから注意。仮に使えなくても自分で作れるよね?
407デフォルトの名無しさん (アウアウカー Sae9-2GBU)
2017/06/30(金) 19:29:33.71ID:cIeri8pZa408デフォルトの名無しさん (アウアウカー Sae9-2GBU)
2017/06/30(金) 19:32:52.91ID:cIeri8pZa409デフォルトの名無しさん (ワッチョイ c183-nP2k)
2017/06/30(金) 19:38:09.13ID:R3qh0H/X0 いまいち何がしたいのか不明な部分が多いが
$zero = array();
foreach ($allData as $k => $v) {
if ($v['zeroOne'] === 0) {
$zero[] = $v['id'];
}
}
で'zeroOne'の値が0になってる'id'だけを収めた配列$zeroを作れば分かりやすいんじゃない?
$zero = array();
foreach ($allData as $k => $v) {
if ($v['zeroOne'] === 0) {
$zero[] = $v['id'];
}
}
で'zeroOne'の値が0になってる'id'だけを収めた配列$zeroを作れば分かりやすいんじゃない?
410 (ブーイモ MM62-p+6f)
2017/06/30(金) 19:41:09.28ID:IOmACzTvM >>406
PHPのバージョンは大丈夫です。
array_columnで抜き出してforeachで回したとして、
そこで連続してるかどうかの判定は同じような条件分岐が必要ですよね?
ちなみに上記のコードは配列全件($allData)をfor文で回してる中のコードなので結局同じのような気が…$iがそのfor文の変数です。
if文の数珠つなぎ以外で書ける方法がないか知りたいんですが、
わかりにくくてすいません。
PHPのバージョンは大丈夫です。
array_columnで抜き出してforeachで回したとして、
そこで連続してるかどうかの判定は同じような条件分岐が必要ですよね?
ちなみに上記のコードは配列全件($allData)をfor文で回してる中のコードなので結局同じのような気が…$iがそのfor文の変数です。
if文の数珠つなぎ以外で書ける方法がないか知りたいんですが、
わかりにくくてすいません。
411 (ブーイモ MM62-p+6f)
2017/06/30(金) 19:54:02.55ID:IOmACzTvM412デフォルトの名無しさん (ワッチョイ 2d2d-Vkm7)
2017/06/30(金) 20:48:04.60ID:jM2/iqY60 とりあえず殴り書いてみた
$zeroCount = 0;
foreach($allData as &$data){
if($data['zeroOne'] === 1 ){
$zeroCount = 0;
$data['zeroCheck'] = 'reset';
}elseif($data['zeroOne'] === 0){
++$zeroCount;
$data['zeroCheck'] = $zeroCount===1 ? '1回目' : $zeroCount.'連続';
}
}
unset($data);
$zeroCount = 0;
foreach($allData as &$data){
if($data['zeroOne'] === 1 ){
$zeroCount = 0;
$data['zeroCheck'] = 'reset';
}elseif($data['zeroOne'] === 0){
++$zeroCount;
$data['zeroCheck'] = $zeroCount===1 ? '1回目' : $zeroCount.'連続';
}
}
unset($data);
413 (ブーイモ MMed-p+6f)
2017/07/03(月) 12:23:07.80ID:B+GGE7aBM414 (ブーイモ MMed-p+6f)
2017/07/03(月) 12:35:32.09ID:B+GGE7aBM415デフォルトの名無しさん (ワッチョイ 6d6c-vtNh)
2017/07/03(月) 19:17:40.49ID:JHZQFGt10 質問失礼します。
WebSocket サーバーを php で作成したのですが、Linux のコマンドラインから実行するとフリーズします(当たり前ですが)
php hogehoge.php(エンター押したらフリーズ)
フリーズしないようにするにはどう書けば良いのでしょうか?
分かる方、よろしくお願いします。
WebSocket サーバーを php で作成したのですが、Linux のコマンドラインから実行するとフリーズします(当たり前ですが)
php hogehoge.php(エンター押したらフリーズ)
フリーズしないようにするにはどう書けば良いのでしょうか?
分かる方、よろしくお願いします。
416デフォルトの名無しさん (オイコラミネオ MMd6-OatX)
2017/07/03(月) 21:32:52.53ID:gkI5GTRGM 最後に&付けてバックグラウンドにするとが、
デーモン化するとかじゃないの?
デーモン化するとかじゃないの?
417デフォルトの名無しさん (オイコラミネオ MMd6-OatX)
2017/07/03(月) 21:46:40.38ID:gkI5GTRGM screenとかtmuxとか使える環境にした方がいいかもね
418デフォルトの名無しさん (ブーイモ MMb6-tH5o)
2017/07/04(火) 13:26:39.98ID:7V16igb5M419デフォルトの名無しさん (ワッチョイ 6d6c-vtNh)
2017/07/04(火) 13:27:40.09ID:1MjQBQYF0 最後に&を付ける事で解決しました。
このやり方は知りませんでした。
ありがとうございます。
このやり方は知りませんでした。
ありがとうございます。
420415 (ワッチョイ 6d6c-vtNh)
2017/07/04(火) 13:31:25.48ID:1MjQBQYF0421デフォルトの名無しさん (ブーイモ MMb6-tH5o)
2017/07/04(火) 13:37:48.03ID:7V16igb5M >>420
実行中?w
実行中?w
422デフォルトの名無しさん (ワッチョイ 6d6c-OatX)
2017/07/04(火) 14:10:34.27ID:Ij02Usie0 処理をバックグラウンドに回してるだけだから、
最後はちゃんとフォアグラウンドに戻して終了するとか、
PIDみてkillするとかしないとダメだからな
最後はちゃんとフォアグラウンドに戻して終了するとか、
PIDみてkillするとかしないとダメだからな
423デフォルトの名無しさん (JP 0H16-CicO)
2017/07/04(火) 15:05:16.21ID:jjyWg722H >>422
SIGHUPで自動的に終了する場合もあるけどね
SIGHUPで自動的に終了する場合もあるけどね
424デフォルトの名無しさん (アウアウカー Sae9-HpRm)
2017/07/04(火) 16:29:15.13ID:vUvZYSdca フォアグラウンドで待受してる状態をフリーズと呼んでたのか成程
425415 (ワッチョイ 6d6c-vtNh)
2017/07/04(火) 16:43:25.58ID:1MjQBQYF0 rcスクリプト書いて、
service hogehoged start
で起動するようにしました。
スクリプト内で
php hogehoge.php --pidfile=/var/run/hogehoge.pid &
という風に起動しています。
pidfile は hogehoge.php 内部で getmypid() を保存しています。
kill はそのrcスクリプト内で stop 命令の時にやっています。
案の定、起動直後に [ OK ] が表示されませんが、不都合は無さそうなのでとりあえずこれで良しとしています。
service hogehoged start
で起動するようにしました。
スクリプト内で
php hogehoge.php --pidfile=/var/run/hogehoge.pid &
という風に起動しています。
pidfile は hogehoge.php 内部で getmypid() を保存しています。
kill はそのrcスクリプト内で stop 命令の時にやっています。
案の定、起動直後に [ OK ] が表示されませんが、不都合は無さそうなのでとりあえずこれで良しとしています。
426デフォルトの名無しさん (ワッチョイ 6d6c-OatX)
2017/07/04(火) 16:55:30.44ID:Ij02Usie0 サーバーいじれる立場ならSupervisorとか使えば
PIDの管理とかいちいちしなくても簡単にできるよ
PIDの管理とかいちいちしなくても簡単にできるよ
427デフォルトの名無しさん (JP 0H16-CicO)
2017/07/04(火) 17:01:51.07ID:jjyWg722H >>425
そのやり方だと、ターミナル閉じたら終わっちゃう環境もあるよ
そのやり方だと、ターミナル閉じたら終わっちゃう環境もあるよ
428415 (ワッチョイ 6d6c-vtNh)
2017/07/04(火) 17:32:02.24ID:1MjQBQYF0429デフォルトの名無しさん (ワッチョイ 6d6c-OatX)
2017/07/04(火) 17:39:59.80ID:Ij02Usie0430415 (ワッチョイ 6d6c-vtNh)
2017/07/04(火) 17:44:00.65ID:1MjQBQYF0431デフォルトの名無しさん (JP 0H16-CicO)
2017/07/04(火) 18:22:31.77ID:jjyWg722H >>430
起動するコマンドラインを
nohup php hogehoge.php --pidfile=/var/run/hogehoge.pid &
とすれば大丈夫。
大抵のプロセスはHUPシグナルを受け取ると終了しちゃうんだけど、ターミナルを閉じるときに
バックグラウンドジョブにHUPシグナルを送るかどうかは、ログインシェルの設定による。
システムのデフォルトで送るか送らないかは決まってるけど、個々人で設定もできる。
詳しい話は、こことか参照。
「技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他)」
https://www.glamenv-septzen.net/view/854
起動するコマンドラインを
nohup php hogehoge.php --pidfile=/var/run/hogehoge.pid &
とすれば大丈夫。
大抵のプロセスはHUPシグナルを受け取ると終了しちゃうんだけど、ターミナルを閉じるときに
バックグラウンドジョブにHUPシグナルを送るかどうかは、ログインシェルの設定による。
システムのデフォルトで送るか送らないかは決まってるけど、個々人で設定もできる。
詳しい話は、こことか参照。
「技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他)」
https://www.glamenv-septzen.net/view/854
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【悲報】維新の政治資金でガールズバー、高市首相「良いか悪いかは国民の皆さまが判断されること」 [115996789]
- 【悲報】タンパク質さん、寿命を縮めることが判明
- 【マギレコ】VIPでマギアレコード&マギアエクセドラ【まどドラ】
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 衛生的に気持ち悪くて性風俗店行ったこと無いんだ
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
