- 1 名前:デフォルトの名無しさん(ワッチョイ bfb2-csvI) mailto:sage [2017/03/15(水) 00:41:22.79 ID:ko4BTSP20.net]
- PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】 www.php.net/manual/ja/ 前スレ 【PHP】下らねぇ質問はここに書き込みやがれ 7 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
- 321 名前:デフォルトの名無しさん [2017/05/24(水) 01:00:45.23 ID:rx1CXyDY0.net]
- >>312
すみません、自己解決しました。 上記の質問をしたのは autoloadの useが使えなくなり、 require_once(); もcomposerでインストールしたライブラリでは 使えなかったためで、 そもそもの useが使えない原因を特定しました。 私はwindowsから macにPCを変えたばかりで、macでは \マークと\ を分けていることに気が付きませんでした。 option + \ で \ を出力できることを知り、 useの問題を解決しました。 require_once ();の問題は解決したことにはなりませんが、 とりあえず useで問題なく外部ファイルを読み込めるのでこれで解決 と思うことにしました。 お騒がせして本当にすみません。
- 322 名前:デフォルトの名無しさん [2017/05/24(水) 01:02:21.63 ID:rx1CXyDY0.net]
- あれ、投稿したら ¥マークもバックスラッシュになっちゃいましたね・・
つまり、このことがよくわかっていなかったということになります。
- 323 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 13:44:43.12 ID:AcsriXHn0.net]
- DIRECTORY_SEPARATOR
- 324 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 14:00:22.54 ID:ktSIKEk8H.net]
- >>314
円記号とバックスラッシュは同じ文字コードです。 表示するフォントで見え方が違うだけ。
- 325 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 15:13:25.30 ID:AcsriXHn0.net]
- >>316
せっかく環境まで書いてくれているというのに君は
- 326 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 15:28:30.43 ID:ktSIKEk8H.net]
- >>317
macでは円記号とバックスラッシュは別の文字コードってことか?
- 327 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 15:35:58.82 ID:ktSIKEk8H.net]
- なるほど、調べたらmacでは円記号は0xA5なのか。
それは知らなかった。
- 328 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 20:03:57.63 ID:AcsriXHn0.net]
- >>319
utf-8で1バイト目が0xA5にはなりえないというのに君は
- 329 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 11:03:31.77 ID:yXnULsJhH.net]
- >>320
何に関してレスされてるのかわからん。 macでバックスラッシュ使うところを0xA5の円記号を使っておかしくなったって話じゃないのか?
- 330 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 16:50:51.17 ID:NBObyIGd0.net]
- コンストラクタの引数を使ってひとつの処理を実行するだけのオブジェクトを作る場合
コンストラクタに全ての処理を書いてインスタンス生成のみを行うのと 実行用のメソッドを作って、インスタンス生成直後に$foo->do()から実行するのと どちらで作るのが一般的なんでしょうか? 処理は内部的な物で、どうしても必要なクラスという条件です
- 331 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 17:02:35.49 ID:FvwfjnU+H.net]
- >>322
> 処理は内部的な物で、どうしても必要なクラスという条件です なら、コンストラクタで実行するしかないよね。
- 332 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 17:03:43.14 ID:EqtXAXHq0.net]
- インスタンス生成の必要がないように読めるが。
- 333 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 18:44:12.74 ID:NBObyIGd0.net]
- 確かに、必要なさそうでした・・
- 334 名前:デフォルトの名無しさん mailto:sage [2017/05/30(火) 07:24:05.71 ID:3I8BlO+30.net]
- >>322
生成&メソッド呼び出し DIやテストを書いてみれば分かると思う
- 335 名前:デフォルトの名無しさん mailto:sage [2017/06/03(土) 14:50:17.96 ID:vHC5ipdf0.net]
- Webページのソースコードが文字化けするページを見つけたのですが対象方法がわかりませんでした。
どのようにすれば良いのでしょう? $url="momoniji.com"; $html=file_get_contents($url); $html=mb_convert_encoding($html,'utf8','auto'); echo $html;
- 336 名前:デフォルトの名無しさん mailto:sage [2017/06/03(土) 17:44:17.71 ID:mWYP1opd0.net]
- 文字化けではない
HTTPレスポンスヘッダのContent-Encodingを見れば分かるがレスポンスボディはgzip圧縮されている だから結果をgzdecode関数にかければよい
- 337 名前:デフォルトの名無しさん mailto:sage [2017/06/03(土) 19:15:54.54 ID:vHC5ipdf0.net]
- >>328
ありがとうございます。 ずっと文字化けだと思っていました。 解決できました。
- 338 名前:デフォルトの名無しさん (オッペケ Sr71-i0+1) mailto:sage [2017/06/09(金) 21:35:08.67 ID:itsdSOhir.net]
- ftp関数ってftp関数の使用が許可されているサーバーから許可されていないサーバーに通信できるの?
さくらインターネットはftp関数使えないけど、使えるサーバーからさくらに接続できる?
- 339 名前:デフォルトの名無しさん (オイコラミネオ MMeb-jiBQ) mailto:sage [2017/06/09(金) 22:47:35.09 ID:ltTPD1ZbM.net]
- 受け入れる側が許可してないと何やっても繋がらんよ
ftpdのプロセスが立ち上がってて、かつ必要なポート番号が開いてる必要がある アクティブモードかパッシブモードかによって色々変わる さくらのサーバ側がどうなってるか確認すれば良い 繋げる側は通信が外に出ていければだいたい大丈夫 もちろんftpプロトコルで通信できる環境は必要だが
- 340 名前:デフォルトの名無しさん (オッペケ Sr71-i0+1) mailto:sage [2017/06/10(土) 00:10:31.61 ID:0tXhVGnur.net]
- >>331
つまりftpソフトで繋がるサーバーならphpのftp関数とは関係なく大丈夫ってことですかね 繋げる側はエックスサーバーでやってみて大丈夫でした!
- 341 名前:デフォルトの名無しさん (ワッチョイ 4500-jiBQ) mailto:sage [2017/06/10(土) 01:01:48.16 ID:nnTfCPYs0.net]
- >>332
繋ごうとする側にFTPクライアントかFTP関数的なものが必要ということだよ 何のファイルを送受信するか分からんけど、 素のFTPだと暗号化されてないから注意せよ 今の時代ならSFTPとかSCPとか使う方が安全
- 342 名前:デフォルトの名無しさん (オッペケ Sr71-i0+1) mailto:sage [2017/06/10(土) 06:16:39.22 ID:0tXhVGnur.net]
- >>333
ああ、そうなんですね。 だとすると繋ごうとする先のレンタルサーバーを確認しないとダメですね。 うーん、仕様を確認してわかるものなのか…。 ちなみに送受信するのはhtmlやcssファイルです。 自分のサーバー(ftp関数を実行して繋ぐ側)はエックスサーバーで決まりなんですが、 ftp関数で繋ぐ先のサーバーはいろんなホスティング会社のサーバーです。 ロリポやさくらなどのレンタルサーバー会社。 ftpソフトで繋げられるからといってphpのftp関数でも繋げられるとは限らないということですね。
- 343 名前:デフォルトの名無しさん (ワッチョイ 4500-jiBQ) mailto:sage [2017/06/10(土) 11:06:58.62 ID:nnTfCPYs0.net]
- >>334
XServerはPHPがほぼ最新だし、 ftp_connect系の関数も基本は標準で入ってるはず FTPプロトコルは接続時のお作法がサーバの設定によって色々変わるから大変だと思うが頑張って
- 344 名前:デフォルトの名無しさん (オッペケ Sr71-i0+1) mailto:sage [2017/06/10(土) 12:10:45.46 ID:0tXhVGnur.net]
- >>335
ありがとうございます! ちょっと他のサーバーを仮契約して試してみます!
- 345 名前:デフォルトの名無しさん (ワッチョイ 1532-Ell8) mailto:sage [2017/06/12(月) 02:02:20.17 ID:9HEIoQd30.net]
- >>336
> ftpソフトで繋げられるからといってphpのftp関数でも繋げられるとは限らない 普通につながるから安心していいよ つなぐ先のサーバのphpにftp関数があるかどうかは関係ない
- 346 名前:デフォルトの名無しさん (オッペケ Sr71-i0+1) mailto:sage [2017/06/12(月) 11:13:25.44 ID:9bwuxRECr.net]
- >>337
そうなんだ! 昨日からいくつかサーバー確認しはじめたけど、それがわかるならテストしなくていいから助かります!
- 347 名前:デフォルトの名無しさん (オイコラミネオ MMeb-jiBQ) mailto:sage [2017/06/12(月) 21:29:01.90 ID:HwT26Y2zM.net]
- いや、テストはした方がいいよ
そりゃ、たいていは繋がると思うが ポート番号とかモードの設定とかサーバ側の設定次第で色々調整が必要になることはある
- 348 名前:デフォルトの名無しさん (ワッチョイ 1532-Ell8) mailto:sage [2017/06/13(火) 00:13:35.53 ID:MT1aMd9/0.net]
- ちなみにだけど不正アクセスには使ったらあかんよ
- 349 名前:デフォルトの名無しさん (オッペケ Sr71-i0+1) mailto:sage [2017/06/13(火) 09:25:25.23 ID:onzjies9r.net]
- >>339
ポート番号とかモードはユーザーが設定できるようにしてるので大丈夫かな >>340 そういう目的じゃないので… 逆に不正アクセスできないように配慮はしてるつもり
- 350 名前:デフォルトの名無しさん (ワッチョイ 15db-55DC) [2017/06/13(火) 11:59:39.85 ID:y4mccwa90.net]
- 画像ファイルをアップロードして一覧表示するプログラムを作成していて、
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"] よろしくお願いします。
- 351 名前:デフォルトの名無しさん (ワッチョイ e511-Z3xB) [2017/06/13(火) 16:22:16.49 ID:e75WWAwz0.net]
- APIを作りたいんですが
codeigniterとかフレームワークを使うのってへんですか?
- 352 名前:デフォルトの名無しさん (JP 0H6b-yTT2) mailto:sage [2017/06/13(火) 17:07:34.26 ID:3KAtKhUpH.net]
- >>343
・そこそこの数のAPIを作る ・認証が必要 ・自前でCSRFとかの対策だるい ・自前でルーティングするのだるい とかなら、フレームワークおすすめ。 ただ、フルスタックのでかいフレームワークじゃなくて、マイクロフレームワークと呼ばれる のを調べてみるといいよ。 LumenとかSlimとかSilexとか。
- 353 名前:デフォルトの名無しさん (ワッチョイ 23cd-D9zB) mailto:sage [2017/06/13(火) 20:13:16.36 ID:If/p8sdd0.net]
- >>343
変じゃない。 >>344が書いてるようにフレームワーク使った方が楽。 LumenやSlimもいいんだけど、マイナーだからなにか問題起こると ググっただけでは答えが見つからないこともある。 初心者だったらメジャーなフレームワーク選ぶといいよ。 最近シェア落としてるけどcakeでいいと思う。 エラーメッセージそのままコピペしてググれば、ほぼ答えが出てくる。
- 354 名前:デフォルトの名無しさん (ササクッテロル Sp71-DEJT) mailto:sage [2017/06/14(水) 01:10:32.29 ID:7F7xS9xRp.net]
- ありがとうございます!
- 355 名前:デフォルトの名無しさん (ワッチョイ ddc2-OlK+) mailto:sage [2017/06/14(水) 14:12:06.77 ID:gEXW+PhK0.net]
- かなりひさしぶりにPHP触るんだけど今ってテンプレートエンジンは何が熱い?
昔は、smartyが遅いからsmarty記述法と互換性がある自作エンジンを作ってやってたんだけど 最近熱いエンジンのソースコードが見たくなった
- 356 名前:デフォルトの名無しさん (ワッチョイ ddc2-OlK+) mailto:sage [2017/06/14(水) 14:13:39.40 ID:gEXW+PhK0.net]
- 「自作エンジンを作って」ってなんか頭痛が痛いみたいだ
気にしないでw
- 357 名前:デフォルトの名無しさん (JP 0H6b-yTT2) mailto:sage [2017/06/14(水) 14:20:31.94 ID:/XZF9UoWH.net]
- その自作エンジンでええやん
- 358 名前:デフォルトの名無しさん (ワッチョイ 7d6c-Fz1p) mailto:sage [2017/06/14(水) 14:44:27.06 ID:M56szTyh0.net]
- 質問失礼します。
php7でサーバプログラムを作成中です。 HttpsRequestでデータを受けとってレスポンス、そのデータをWebSocketで別クライアントに返すという機能を実装したいのですが、 両方のポートで待ち受けるようなプログラムって実装可能なんでしょうか? (1つのポートでも構いませんが、、、) php7 + Apache で色々試したり、フレームワークのSilexを入れて試したりしましたが、 これってつまりプロセス間通信だったり、なにかしらのストレージに入れないと無理ですよね?
- 359 名前:デフォルトの名無しさん (JP 0H6b-yTT2) mailto:sage [2017/06/14(水) 15:38:38.63 ID:/XZF9UoWH.net]
- >>350
HTTPリクエストを受け取って処理する部分は、待ち受けする必要ないでしょ リクエストを受け取って、何か処理して、WebSocketサーバにデータを送信する WebSocketのサーバもPHPで書きたいなら、そこでは当然接続を待ち受ける必要がある
- 360 名前:350 (ワッチョイ 7d6c-Fz1p) mailto:sage [2017/06/14(水) 15:57:19.95 ID:M56szTyh0.net]
- >>351
WebSocketは待ち受けて、HttpRequestは待ち受けない(Apatchまかせ)のであれば、データをWebSocketでクライアントに送信する際、確実にストレージなりを利用する事になります。 今回それをやりたく無いので、両方同じクラス内で待ち受けて処理できれば、クラス内の一時メモリを使いまわせるのになぁ。 と思った次第です。Silexで試した理由はそれです。
- 361 名前:デフォルトの名無しさん (JP 0H6b-m0Mh) mailto:sage [2017/06/14(水) 16:03:38.60 ID:/XZF9UoWH.net]
- >>352
> データをWebSocketでクライアントに送信する際、確実にストレージなりを利用する事になります。 え?なんで? a.phpがHTTPリクエストを処理したなら、a.phpからWebSocketサーバはsocket通信だよ?
- 362 名前:デフォルトの名無しさん (JP 0H6b-m0Mh) mailto:sage [2017/06/14(水) 16:10:17.81 ID:/XZF9UoWH.net]
- >>352
読み間違えてた a.php: Apacheから呼び出される何かのリクエストを処理するコード WebSocketサーバ:あるポートで待ち受ける、WebSocketプロトコルをしゃべるサーバ のとき、a.phpはWebSocketクライアントだよ?
- 363 名前:350 (ワッチョイ 7d6c-Fz1p) mailto:sage [2017/06/14(水) 16:11:37.43 ID:M56szTyh0.net]
- >>353
という事は、a.phpが呼ばれたらlocalhostに接続して送信切断という流れなんですね。 確かにそれでも可能です。 後から要件追加して申し訳ないですが、a.phpが短時間に大量に実行されるので、できれば接続と切断は繰り返したくないのがあります。
- 364 名前:350 (ワッチョイ 7d6c-Fz1p) mailto:sage [2017/06/14(水) 16:16:39.58 ID:M56szTyh0.net]
- 今試したら、WebSocketのsocket_acceptでHttpRequestを受け取れました。
httpもsocketも同じtcpだからacceptするんですね。目から鱗でした。 接続と切断を繰り返してしまいますが、これしかないですかねぇ。。。
- 365 名前:デフォルトの名無しさん (JP 0H6b-m0Mh) mailto:sage [2017/06/14(水) 16:18:14.83 ID:/XZF9UoWH.net]
- >>355
ちょっとまってくれよ HTTPリクエストを捌くのはmustなの?そうじゃないの? 短時間に大量のリクエストってどれくらい?100req/sec?10000req/sec?
- 366 名前:デフォルトの名無しさん (JP 0H6b-m0Mh) mailto:sage [2017/06/14(水) 16:19:03.30 ID:/XZF9UoWH.net]
- >>356
つか、WebSocketが何者だか理解してるか?
- 367 名前:デフォルトの名無しさん (ワッチョイ 1532-Ell8) mailto:sage [2017/06/14(水) 16:19:16.79 ID:3zsLXGHk0.net]
- まるで同一サーバで別プロセスが同一ポートでLISTENしているかのような書き方だけど、どこかに隠し情報があるんだろうなぁ
- 368 名前:デフォルトの名無しさん (ワッチョイ ddc2-OlK+) mailto:sage [2017/06/14(水) 16:21:41.56 ID:gEXW+PhK0.net]
- >>349
他言語ばっかやっててPHP書くのなんて久しぶりだから 最近の流行りもののソースコードを何となく見てみたくなるんだよw そこで自分が全く知らない新しい事を見つけたら嬉しくならない?
- 369 名前:デフォルトの名無しさん (ワッチョイ 0be3-ceo9) mailto:sage [2017/06/14(水) 16:24:58.32 ID:mnieIMJY0.net]
- 海外レンタルサーバーを借りたのですが
○○○.com/ にアクセスると ○○○.com/?i=1 というように、すべてのurlに ?i=1がくっついてくるのですが、これを取り払うには htaccessに何と書けば良いのでしょうか? それとも他に方法がありますでしょうか?
- 370 名前:デフォルトの名無しさん (ワッチョイ 1532-Ell8) mailto:sage [2017/06/14(水) 16:29:06.69 ID:3zsLXGHk0.net]
- >>360
どのくらい久しぶりなのかによるけど、改めてsmarty使ってみたら? 「smarty遅い」といってもいろんな理由があるので、使う側の問題で遅いということもある。 他のエンジンがいいならbladeとかtwigとか。 もっとも、やっぱり自作最高やってなりそうな人にも見えるので、やるだけ損かもしれない。
- 371 名前:350 (ワッチョイ 7d6c-Fz1p) mailto:sage [2017/06/14(水) 16:30:12.68 ID:M56szTyh0.net]
- >>357
同時接続2000人が想定のチャットサーバ書いてます。 WebSocketの処理でhttpのパケットを解析しようかとも考えたのですが、a.phpを叩いてもらって、 そこから接続切断する方が楽そうですね。。。 ブラウザからのhttp requestをWebSocketで受けたらデータが汚すぎて萎えました。 (接続と切断を2〜3回繰り返す。。。)
- 372 名前:デフォルトの名無しさん (JP 0H6b-yTT2) mailto:sage [2017/06/14(水) 16:33:39.90 ID:/XZF9UoWH.net]
- >>360
> 最近の流行りもののソースコードを何となく見てみたくなるんだよw 見たいんならさっさと見ろ
- 373 名前:デフォルトの名無しさん (JP 0H6b-m0Mh) mailto:sage [2017/06/14(水) 16:35:46.52 ID:/XZF9UoWH.net]
- >>363
だーかーらー、そのチャット中にHTTPリクエストを捌くのは必要なの?不要なの? いらないんじゃないの?
- 374 名前:デフォルトの名無しさん (ワッチョイ 23cd-D9zB) mailto:sage [2017/06/14(水) 16:40:37.12 ID:2WK2RY/D0.net]
- >>364
>>360みたいな人には何言っても無駄だよ。 「〜したい」「〜やりたい」と言うだけで実際には何もしないし出来ない。 そういう奴は相手しないこったね。
- 375 名前:デフォルトの名無しさん (ワッチョイ 7d6c-Fz1p) mailto:sage [2017/06/14(水) 16:40:41.43 ID:M56szTyh0.net]
- >>365
http request内のデータが取得できるのであれば、なんだって大丈夫です。 なのでmustではないという事になりますかね。
- 376 名前:デフォルトの名無しさん (JP 0H6b-m0Mh) mailto:sage [2017/06/14(水) 16:40:42.09 ID:/XZF9UoWH.net]
- WebSocketでチャットとかありがちで、ググればサンプルも死ぬほどあるだろうけど、
たとえは、これ qiita.com/hosomichi/items/66b309a6c3c20d910218 チャットそのものは、JavascriptとWebSocketサーバがやりとりする WebSocketサーバは、別に何で実装してもいい もちろん、最初のページはHTTPリクエストで取得する このラインでいいの?駄目なの? 駄目だとしたら、何が必要なの?
- 377 名前:350 (ワッチョイ 7d6c-Fz1p) mailto:sage [2017/06/14(水) 16:48:14.61 ID:M56szTyh0.net]
- >>368
少し祖語があるみたいです。 http request発行者はクライアントではなく中核サーバーになります。 (上でブラウザで試したというのはクライアントを模してやったわけではなく、単なるテストとしてやりました) 今書いているコードはクライアントと中核サーバーとの中継サーバーのものです。 中核サーバーのコードは修正できません。 そこからhttp requestでメッセージが飛んでくるんです。 そういう意味ではhttp requestを捌くのはmustですね。。。
- 378 名前:デフォルトの名無しさん (JP 0H6b-m0Mh) mailto:sage [2017/06/14(水) 16:58:29.14 ID:/XZF9UoWH.net]
- >>369
やっと、どんなものか輪郭が見えたよ > そういう意味ではhttp requestを捌くのはmustですね。。。 だったら、多数回の接続・切断は必要だということじゃないかな まぁ、これ以上、俺からは何も言えないけど、ひとつだけ言えるとしたら、 最初に戻って、複数のポートで待ち受けできるかどうかだけど、できるよ php.net/manual/ja/function.socket-select.php
- 379 名前:350 (ワッチョイ 7d6c-Fz1p) mailto:sage [2017/06/14(水) 17:02:24.05 ID:M56szTyh0.net]
- >>370
おお! パッと見どうやって使うのか、まだよく理解できていませんが、貴重な情報ありがとうございます! 言葉足らずですいませんでした。
- 380 名前:デフォルトの名無しさん (JP 0H6b-m0Mh) mailto:sage [2017/06/14(水) 17:06:01.29 ID:/XZF9UoWH.net]
- >>371
実際PHPで使ったことないから、ほんとにできるかどうかは不明 できなかったらごめんね PHPのサンプルは見つからなかったけど、select()はこんな感じで使える totofuga.hateblo.jp/entry/2014/09/05/174554
- 381 名前:デフォルトの名無しさん (ワッチョイ 23cd-D9zB) mailto:sage [2017/06/14(水) 17:08:42.57 ID:2WK2RY/D0.net]
- 同時接続2000人ってかなりデカいサービスなので数限られる。
動画配信が一番可能性高いけど、そういう仕事やってるとこは・・・。 まさか会社から2chに繋げてないよね? 知り合いの会社の社員のような気がしてきたw 2chに書き込むとインフラとセキュリティにメールが飛ぶとこもあるぞ。 気をつけなされ。
- 382 名前:デフォルトの名無しさん (ワッチョイ 1532-Ell8) mailto:sage [2017/06/14(水) 17:10:02.55 ID:3zsLXGHk0.net]
- >>372
> 実際PHPで使ったことないから、ほんとにできるかどうかは不明 > できなかったらごめんね 普通のソケットプログラミングとほぼ同じだよ
- 383 名前:デフォルトの名無しさん (ワッチョイ ddc2-OlK+) mailto:sage [2017/06/14(水) 19:32:47.41 ID:gEXW+PhK0.net]
- >>362
bladeとtwigありがと smartyはこういうところが変わった bladeはここがいい 今一番伸びてるのはtwigだ そういうレスを期待してたんだけどね なんかグダグダ余計な事言ってるアホが居るから消えるわ >>366 なんだその決め付けはw 2ch脳も大概にしてくれや 面倒くせぇやつだな
- 384 名前:デフォルトの名無しさん (ワッチョイ 9a88-y0cV) [2017/06/15(木) 00:40:42.03 ID:yD3vPxkF0.net]
- アフィリエイトのリンクはクリックしたら広告先のURLに移動しますが、
PHPでアフィリエイトリンクからクリック先のURLを取得する方法はないでしょうか? (つまり、クリックせずに正規のURLが取得したい) get_headers($url)は無理でした
- 385 名前:デフォルトの名無しさん (ワッチョイ aee3-yC+1) mailto:sage [2017/06/15(木) 00:52:33.37 ID:orz99gKc0.net]
- >>376
通常はクリックするアクションでGetやPostを要求し、 サーバー側の処理により移動先サイトのURLを受けとることになる だから、クリックしないと無理じゃないかな
- 386 名前:デフォルトの名無しさん (ワッチョイ aee3-yC+1) mailto:sage [2017/06/15(木) 01:04:52.89 ID:orz99gKc0.net]
- もしもHTMLソースに埋め込む様な形でリンクが張ってあるなら
ソースを読んで該当箇所を探し、取得する事は出来るかも知れない
- 387 名前:デフォルトの名無しさん (オッペケ Srab-kfIt) mailto:sage [2017/06/15(木) 05:45:49.72 ID:teBxPoyNr.net]
- アフィリリンクはたいていリダイレクトしてるから無理じゃないかな
- 388 名前:デフォルトの名無しさん (ワッチョイ c791-FeJb) mailto:sage [2017/06/15(木) 08:48:34.30 ID:3zpPLTtW0.net]
- head要求とか?
- 389 名前:デフォルトの名無しさん (ワッチョイ 3aed-g/RG) [2017/06/19(月) 14:11:01.90 ID:JoeiF6VU0.net]
- 【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 と表示されました。 データベース接続のため、アドバイスをいただきたいと思います。 足りない情報などもあると思いますが、宜しくお願いいたします。
- 390 名前:デフォルトの名無しさん (ワッチョイ 5383-VgqF) mailto:sage [2017/06/19(月) 14:28:03.46 ID:4/2FI0cI0.net]
- ・'mysql://user名:passlocalhost/データベース名' の内容が間違ってる
・MySQLが起動してない あたりのオチでは? そもそも今MDB2を使うメリットって皆無だと思うからPDOを勉強した方が良いと思うけど
- 391 名前:デフォルトの名無しさん (JP 0Ha6-yC+1) mailto:sage [2017/06/19(月) 14:29:02.12 ID:Ce38C9l/H.net]
- >>381
最初のアドバイスとしては、MDB2はもう未来がないからPDOにしとけってこと
- 392 名前:デフォルトの名無しさん (JP 0Ha6-yC+1) mailto:sage [2017/06/19(月) 14:29:28.56 ID:Ce38C9l/H.net]
- かぶったw
- 393 名前:デフォルトの名無しさん (ワッチョイ 3acd-2WTa) mailto:sage [2017/06/19(月) 16:11:35.81 ID:6320K+Ej0.net]
- 10年前に終ってるものを今さら引き合いに出すなってw
- 394 名前:デフォルトの名無しさん (ワッチョイ 5383-VgqF) mailto:sage [2017/06/19(月) 16:46:26.99 ID:4/2FI0cI0.net]
- 2014年発行の本でMDB2をとりあげた理由ってなんだろう
PHP5.3系の古いバージョンのPDOだと 文字コードの指定ができないという致命的な欠点があったけどその関係だろうか? そこまで踏み込んで解説されてるのであれば別に良いけどね 恥ずかしながら 「一般社団法人 PHP技術者認定機構」なんてものがある事を初めて知ったw 実務でどれくらい役に立つんだろうねこれ
- 395 名前:デフォルトの名無しさん (ワッチョイ 4fe3-yC+1) mailto:sage [2017/06/19(月) 17:27:56.89 ID:7bEKAPau0.net]
- >>381
PHP5技術者認定初級の公式教本って オライリージャパンの「初めてのPHP5 増補改訂版」かな? 原書の方は Final Release Date: June 2004ってある。 日本語翻訳で追補しているかも 7章の13辺りからPDOでの操作が載っているようだから、 その辺と読み替えてみたらどうだろう
- 396 名前:デフォルトの名無しさん (ワッチョイ 876c-BQIS) mailto:sage [2017/06/19(月) 20:39:06.96 ID:2foBmcl+0.net]
- 2014年でMDB2なんて使う必要性ゼロだったと思う
当時でもPDOもしくはmysqliのどっちかしか推奨されてなかった気がする その本はすぐに捨てて2015年以降に発刊された本を買い直した方がいい できればPHP7に対応してるやつ
- 397 名前:デフォルトの名無しさん (ワッチョイ 4fe3-yC+1) mailto:sage [2017/06/19(月) 21:49:59.12 ID:7bEKAPau0.net]
- この本から出題されるらしいから、それは無理だと思う
- 398 名前:デフォルトの名無しさん (ワッチョイ 87cd-hHqA) [2017/06/19(月) 21:50:08.46 ID:LhGzpkui0.net]
- つか、phpなんてググるだけでいいだろ
教本なんていらんのや!
- 399 名前:デフォルトの名無しさん (ワッチョイ 4fe3-yC+1) mailto:sage [2017/06/19(月) 21:58:44.96 ID:7bEKAPau0.net]
- 真面目な修行僧に失礼な!
- 400 名前:デフォルトの名無しさん (ワッチョイ eb00-BQIS) mailto:sage [2017/06/20(火) 02:19:52.47 ID:iK2sGPi10.net]
- 目的はPHPの試験に受かりたいってこと?
なら動かさなくてもいいじゃん、暗記だけでいいと思うよ 正直、もうほとんど使われてないライブラリだから 実際には大して役に立たない 試験受かったら新しめの本買って学び直せ
- 401 名前:デフォルトの名無しさん (ワッチョイ f723-Udsw) [2017/06/28(水) 23:04:51.83 ID:7cLKB0Py0.net]
- PHPや他言語で、JSのconsole.log();みたいに
オブジェクトや配列を▼ボタンで折りたたみ/展開できる デバッグ方法ない?
- 402 名前:デフォルトの名無しさん (ワッチョイ 572b-LvKX) mailto:sage [2017/06/28(水) 23:07:31.32 ID:8ccEp+RW0.net]
- >>393
それブラウザの機能だから
- 403 名前:デフォルトの名無しさん (ワッチョイ c1c2-OatX) mailto:sage [2017/06/29(木) 08:09:11.69 ID:IUqqYZb20.net]
- Laravel使ってdd()
- 404 名前:デフォルトの名無しさん (ブーイモ MMed-p+6f) [2017/06/29(木) 17:16:58.19 ID:olsHrbVIM.net]
- 多次元配列どうしの結合で教えてくださいませ。
以下のようなそれぞれの配列を、 Array1 ( [0] => Array ( [key1] => 1 [key2] => 2 ) Array2 ( [0] => Array ( [key3] => 1 ) このように1つの配列にまとめたい場合はどのようにすればいいでしょうか。 Array ( [0] => Array ( [key1] => 1 [key2] => 2 [key3] => 1 ) よろしくお願いします。
- 405 名前:デフォルトの名無しさん (アウアウカー Sae9-2GBU) mailto:sage [2017/06/29(木) 18:00:57.13 ID:/ne8B1aHa.net]
- [array_merge(Array1[0],Array2[0])]
- 406 名前:デフォルトの名無しさん (ブーイモ MMed-p+6f) [2017/06/29(木) 19:19:10.78 ID:olsHrbVIM.net]
- >>
- 407 名前:397
できました、ありがとうございます! []- [ここ壊れてます]
- 408 名前:デフォルトの名無しさん (ワッチョイ c2cd-wjSU) mailto:sage [2017/06/30(金) 01:31:07.59 ID:xquLJ6q20.net]
- $Array1[0] + $Array2[0] でもok
- 409 名前:デフォルトの名無しさん (ブーイモ MM62-p+6f) [2017/06/30(金) 14:43:54.43 ID:IOmACzTvM.net]
- 質問させてください。
条件分岐で結果の数が多い場合、 if文でネストする以外にいい方法はありますでしょうか。 配列の同じキーの値を、1〜5つ前まで順にたどって、 同じ値が続いていたら続いたぶんの数を新たに配列に入れたいと考えています。 よろしくお願いします。
- 410 名前:デフォルトの名無しさん (ワッチョイ c2cd-0bL8) [2017/06/30(金) 15:29:51.48 ID:xquLJ6q20.net]
- foreachで回してカウントすればいいのでは?
- 411 名前:デフォルトの名無しさん (アウアウカー Sae9-2GBU) mailto:sage [2017/06/30(金) 15:57:18.21 ID:rakscAnxa.net]
- >>400
同じキーの値ってどういうこと? 二次元配列? ネストしてていいから一回コード見せてくれると助かる
- 412 名前:デフォルトの名無しさん (ワッチョイ bdc2-nP2k) mailto:sage [2017/06/30(金) 16:18:07.71 ID:EFdSifWf0.net]
- >>400
エスパーで答えるとarray_count_values()を使えば解決する気がする
- 413 名前: (ブーイモ MM62-p+6f) [2017/06/30(金) 18:59:07.63 ID:IOmACzTvM.net]
- もろもろレスありがとうございます。
>>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回目"; }
- 414 名前: (ブーイモ MM62-p+6f) [2017/06/30(金) 19:00:51.81 ID:IOmACzTvM.net]
- >>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回目 ) …
- 415 名前:デフォルトの名無しさん (ワッチョイ bdc2-nP2k) mailto:sage [2017/06/30(金) 19:15:45.47 ID:EFdSifWf0.net]
- array_column($allData, 'zeroOne');
で 'zeroOne'の値だけ抜き出した配列を別に作ってそれをforeach()あたりで回してチェックすればいいだけな気がするが 何か勘違いしてたらすまない ※array_column()はPHP5.5以上でしか使えないから注意。仮に使えなくても自分で作れるよね?
- 416 名前:デフォルトの名無しさん (アウアウカー Sae9-2GBU) mailto:sage [2017/06/30(金) 19:29:33.71 ID:cIeri8pZa.net]
- >>404
途中で1が出てきたら打ち切り?継続? 例えばzeroOneが0,0,1,0,0の順番だった場合はどうなるの?
- 417 名前:デフォルトの名無しさん (アウアウカー Sae9-2GBU) mailto:sage [2017/06/30(金) 19:32:52.91 ID:cIeri8pZa.net]
- >>404
あとその5とか7ってのは$allDataの長さなの? それとも要素数が100でも最初の5つだけ見るって話? $allDataの要素数が5未満になる可能性は考えなくていい?
- 418 名前:デフォルトの名無しさん (ワッチョイ c183-nP2k) mailto:sage [2017/06/30(金) 19:38:09.13 ID:R3qh0H/X0.net]
- いまいち何がしたいのか不明な部分が多いが
$zero = array(); foreach ($allData as $k => $v) { if ($v['zeroOne'] === 0) { $zero[] = $v['id']; } } で'zeroOne'の値が0になってる'id'だけを収めた配列$zeroを作れば分かりやすいんじゃない?
- 419 名前: (ブーイモ MM62-p+6f) [2017/06/30(金) 19:41:09.28 ID:IOmACzTvM.net]
- >>406
PHPのバージョンは大丈夫です。 array_columnで抜き出してforeachで回したとして、 そこで連続してるかどうかの判定は同じような条件分岐が必要ですよね? ちなみに上記のコードは配列全件($allData)をfor文で回してる中のコードなので結局同じのような気が…$iがそのfor文の変数です。 if文の数珠つなぎ以外で書ける方法がないか知りたいんですが、 わかりにくくてすいません。
- 420 名前: (ブーイモ MM62-p+6f) [2017/06/30(金) 19:54:02.55 ID:IOmACzTvM.net]
- >>407
1が出ても処理は継続します。 いまのとこ1が出てきたら適当な値を入れて全件最後まで回してます。 >>408 5とか7は要素の長さとかではなく、 「同じ値が何連続まで続いているか」の判定回数です。 要素は全件見ます、いままだ100件ほどですが。 要素は今後増えるので5未満は考えてません。 >>409 ありがとうございます、検証してみます。
- 421 名前:デフォルトの名無しさん (ワッチョイ 2d2d-Vkm7) [2017/06/30(金) 20:48:04.60 ID:jM2/iqY60.net]
- とりあえず殴り書いてみた
$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);
|

|