[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/09 11:07 / Filesize : 332 KB / Number-of Response : 1020
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】下らねぇ質問はここに書き込みやがれ 8



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

231 名前:デフォルトの名無しさん [2017/05/11(木) 19:30:24.73 ID:5AwxqDXW0.net]
jsonの中身を貼ればいいんじゃない?

232 名前:デフォルトの名無しさん [2017/05/11(木) 20:28:10.01 ID:bHhk+rd90.net]
PHP5.6なのですが、php.iniのoutput_bufferingをOnにしないと
CookieやSessionが使えなくなったのですが、関係あります?
Cookieが使えない原因が分からず、output_bufferingをOnにしたら使えました
ググっても関連があるようには思えないのですが、もしあるなら教えてください

233 名前:デフォルトの名無しさん mailto:sage [2017/05/11(木) 20:50:12.91 ID:auiRJU69M.net]
関係あるよ
php.net/manual/ja/function.setcookie.php

バッファオフにした場合は
出力した後にsetcookieしたらダメ

234 名前:デフォルトの名無しさん mailto:sage [2017/05/11(木) 20:53:36.93 ID:bHhk+rd90.net]
>>228
マニュアルに書いてましたか・・・
勉強不足でした。ありがとうございました

235 名前:デフォルトの名無しさん [2017/05/13(土) 14:56:11.69 ID:DB8bCe2a0.net]
みなさん、画像ファイルのアップロード先フォルダはどのようにしていますか?
単純に/uploadsみたいなところに入れますか?
それともWordpressみたいに
/uploads/2017/05というように日付でフォルダ分けして管理しますか?

236 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 15:15:34.69 ID:EKwOhdT+0.net]
状況に応じて変わるとしか言えん
どういう使い方するか考えればおのずと決まるはず

237 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 16:37:08.01 ID:DB8bCe2a0.net]
確かにそうなんですが、
ある程度のスタンダードな考え方・分け方は知りたいと思いまして。
他のサイトを調べると日付で分けることが多いみたいなんで、
大量に画像をアップロードする可能性があるなら、そうしてたほうが無難なんですかねぇ

238 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 19:20:12.73 ID:bYeLo1gSa.net]
imageフォルダでいいじゃん。

239 名前:デフォルトの名無しさん mailto:sage [2017/05/15(月) 00:06:32.69 ID:TcVKQbFq0.net]
>>230
何故フォルダに分けてるのかは、お前は分かっていないということだな? 231、233も含めて



240 名前:デフォルトの名無しさん [2017/05/15(月) 11:21:27.48 ID:1833Pji90.net]
Configure::read()

という書き方って専門用語でなんて言うのでしたっけ?
PHPのバージョンによってもこの書き方が使える場合とエラーになる場合があり、
それを調べようと思ったのですが、用語をど忘れしてしまいました

241 名前:デフォルトの名無しさん mailto:sage [2017/05/15(月) 11:48:48.70 ID:1833Pji90.net]
疑似変数ですかね。
色々と質問させていただきましたが、
マニュアルを見逃すことが多いので、注意したいと思います。

242 名前:デフォルトの名無しさん mailto:sage [2017/05/15(月) 12:28:14.73 ID:Nyf5aX+Ca.net]
スコープ定義演算子

243 名前:198 mailto:sage [2017/05/15(月) 17:52:15.38 ID:dvw/ajfi0.net]
(続き)今日はシフトの非番なのでやってみました

------------------
>>211の ini_set('display_errors', 1);  は
failed to open stream: Permission denied in ・・・ test01.php
となりました。 ※長々と文章が続きますのでここだけ抜粋

------------------
>>212
例外処理でSplFileObjectを使ってみました。
try {
$obj = new SplFileObject("abc.txt", "w");
} catch (Exception $e) {
//エラー処理
echo $e->getMessage();
}

これだと 500 (Internal Server Error) が出ます。

set_error_handler は未だです

------------------
>>217の「fopen()の戻り値$handleを調べて」で
$handle = fopen("abc.txt", "w");// abc.txtを書き込みモードで開く
print $handle;
をやってみましたが、何も表示されません。

------------------
現時点での結論は「原因が全く分からない」です。

244 名前:デフォルトの名無しさん mailto:sage [2017/05/15(月) 18:17:58.64 ID:Jjv98UEoH.net]
>>238
> >>217の「fopen()の戻り値$handleを調べて」で
> $handle = fopen("abc.txt", "w");// abc.txtを書き込みモードで開く
> print $handle;
> をやってみましたが、何も表示されません。
>
> ------------------
> 現時点での結論は「原因が全く分からない」です。

いやいや、何も表示されないというのは、fopen()が失敗してるってことだよ。
falseをprintしても何も表示されないから。
成功してたら、"Resouce id #5"みたいに表示されるはずだから。

245 名前:デフォルトの名無しさん mailto:sage [2017/05/15(月) 18:24:42.83 ID:Jjv98UEoH.net]
つか、

>>238
> >>211の ini_set('display_errors', 1);  は
> failed to open stream: Permission denied in ・・・ test01.php
> となりました。 ※長々と文章が続きますのでここだけ抜粋
エラーの原因出力されてるじゃん・・・

246 名前:デフォルトの名無しさん mailto:sage [2017/05/15(月) 19:55:48.98 ID:Vb5ZKsqrM.net]
とにかくエラーログがてるところまで何とかしろ
そこにたどり着く前に色々やっても何も分からんだけ
先に進まず、まずはここだけやれ

そしてエラーログが出るようになったら必ずログを確認しろ
500エラーなら必ず理由がログに出る

247 名前:211 mailto:sage [2017/05/15(月) 20:17:22.18 ID:nSGL9egfa.net]
>>238
せめてさ, エラーメッセージでググるくらいのことはしてくれよ

248 名前:デフォルトの名無しさん mailto:sage [2017/05/15(月) 21:04:15.00 ID:fnDHHxZB0.net]
ローカルで使用する時に別ドライブから画像参照したい
htmlだと
<img src="file:///I:/img/0000.jpg">
こう書けば別ドライブから画像を参照して表示できるのだけど
PHPではこう書いてもできない。
どうすればいいでしょうか?

249 名前:211 mailto:sage [2017/05/15(月) 21:15:35.34 ID:nSGL9egfa.net]
>>243
php.net/manual/wrappers.file.php



250 名前:198 mailto:sage [2017/05/15(月) 22:19:38.89 ID:dvw/ajfi0.net]
>>239-242
FFFTPでサーバー上の目的テキストのパーミッションを開き、権限者「その他」で「書き込み」
にチェックマークを入れたところ、print $handle; は Resource id #3 が出ました。
※Chromeで実行しましたがエラーは出ていません

文字化けしていますが曲りなりに成功しました。 有難うございます。

251 名前:198 mailto:sage [2017/05/15(月) 22:44:25.11 ID:dvw/ajfi0.net]
(追記)
文字化けは、目的テキストの文字コードを UTF-8 にするため
$str = "テスト文章です";
$str = mb_convert_encoding($str, "UTF-8", "EUC-JP");

でOKでした。
何故か "EUC-JP" でなくファイルの元コード "sjis" や "Shift_JIS" から
変換すると文字化けのままです。

252 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 00:20:46.81 ID:P5MMw6+60.net]
>>244
お返事ありがとうございます。
ローカルだとうまくいきませんでした。
何か別の方法を考えてみます。

253 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 00:55:45.12 ID:hc9PncuC0.net]
>>247もそうだけど、上手くいかないならまずはアクセスログ、エラーログを見よ
ログがでてないならまずはログを出すところから始めろ
PHP ログ 出力 でググって調べろ
上手くいかない場合、ここで聞くよりログを見た方が確実だし早い

254 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 01:19:07.84 ID:T1OkV7Tma.net]
>>235
staticメソッド

255 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 11:16:48.66 ID:3A9hLCJa0.net]
冷たいようだが手遅れになる前にハッキリと言っとく

プログラムが意図した通りに動かない時
自分でエラーメッセージを確認してググるなり本なりで調べて解決しようとして
私はこう思ってこうしたのだけど動きません

という質問の仕方なら分かるし将来性はある

動きません
分かりません

という質問の仕方しかできないなら、ハッキリ言うがプログラミングには向いてない
手遅れになる前に他の業界にいきましょう

256 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 12:22:29.62 ID:CV++bHOB0.net]
>>250
でもそれはアナタが慣れているから。
初心者はエラーメッセージの出し方も分からないないし、長々としたメッセージの
どこを見れば良いかも分からない。

優越感の視点で書いちゃダメだよ。それに

> ハッキリ言うがプログラミングには向いてない

オマエ、FPGAのプログラミングもやったことあるの?
プログラミングなんてPC上でカタカタやって終わりのモノだけだと思ってないか?

それに資料の殆どが英語という言語もあるんだぜ

257 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 12:29:18.04 ID:EpHNLcPNa.net]
プログラミングやってたら知りたい情報が英語で書かれてることなんて珍しくもないし、そんなとこで優越感持たれても困る
業界どうこうの話じゃなくて、自助努力の痕跡が見つけられるかどうかでしょ

258 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 13:01:25.46 ID:3A9hLCJa0.net]
>>251
日進月歩の世界だから自分の力で調べて解決する能力のない人は向いてないってだけの話
長ったらしいエラーが出たら出たで、今度はそのエラーをググればいいじゃないか
昔はググる事すらできなかったのにさw

別にプログラミングに限った話でもない
20半ばぐらいまでならまだ間に合うから、さっさと業種を変えた方がいい
手遅れになった人を何人も見てきてるし30過ぎまで引きずるとほんと悲惨だよ
お前そんなんじゃ結婚もできないだろって奴ばっか

FPGAなんて言葉を出して優越感()に浸ってるお方には理解できないのかもしれないけどさw

259 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 13:04:24.73 ID:UWwVfOAn0.net]
というか物凄く親切丁寧なPHPのエラーですら読んで理解できないのはプログラム云々以前の問題だと思う
中学レベルの英語力すらないのか?



260 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 13:05:13.59 ID:CV++bHOB0.net]
>>253
要はエラーが出ない場合は、「エラーメッセージの出し方を教えて下さい」で、
あと「どの個所を見れば良いのですか?」 という2行を追加ということでOK?

あとFPGAの存在は知っておいて損は無いよ。
専用ツールをライセンス購入すると100万円超えるけど

261 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 13:10:06.47 ID:7x0iPo/hM.net]
優越感に浸ってる痛い255がいると聞いて

262 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 13:17:27.07 ID:CV++bHOB0.net]
このスレのキーワードは『優越感』になりそうだなw

263 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 13:25:03.78 ID:Ilchk1CoH.net]
>>251
オマエ、今年の痛い奴No1を更新したぞ

264 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 13:49:00.36 ID:6VEQJAMtM.net]
検証の手順と質問の仕方は考えてほしい
超能力者じゃないと答えられん質問投げられてもだれも得しない

エラーログを出す(まったく出てないなら出す方法から調べる)
エラーログを見る
エラーログをコピペしてググって調べる
再度ソースを確認する

それでも分からなければソースとエラーログを
他人に見られてはいけないところ(パスワードどか)以外全部ここにコピペで書け
そうすれば答えてくれる人も多くいると思う
ソースだけとかでも分からない場合が多いので

265 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 14:13:25.93 ID:Ilchk1CoH.net]
>>243
> ローカルで使用する時に別ドライブから画像参照したい
> htmlだと
> <img src="file:///I:/img/0000.jpg">
> こう書けば別ドライブから画像を参照して表示できるのだけど
「ローカル」というのがローカルPCで動作するHTTPサーバを指すなら、HTMLでも表示できないと思うが。
単にHTMLファイルをダブルクリックして表示することを指しているのなら、それに変わるPHPの使い方はできない。

266 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 14:34:15.08 ID:l7Nmuuc60.net]
テンプレに追記が必要か?

[プログラムが動かない場合]
* エラーは出ているか?
出ている→コードと内容をそのままコピペ
出ていない→error_reporting(E_ALL); ini_set('display_errors', true); をコード先頭に追記して実行して表示されるエラーをコピペ

267 名前:デフォルトの名無しさん [2017/05/16(火) 16:49:20.37 ID:WEDWU0250.net]
すいません、以下質問させてください。
SQLで取得したデータを多次元配列に入れてHTMLのテーブルでリスト表示してます。
そのテーブルヘッダにドロップダウンリストを付けて、
複数条件の絞り込み機能を付けたいのですが、
配列をフィルタリングするにあたり、どのような関数またはロジックを使えばいいでしょうか。

キー(フィールド):
10列ほど。検索値の指定は全キー必須ではなく、指定したりしなかったりされる。
なお1列だけ数値データがあり、それについては範囲検索する。(0-3, 4-6, 7-9…)

配列形式:
Array (
[0] => Array ( [titile1] => hoge [titile2] => fuga [〜 [title10] => 2 )
[1] => Array ( [titile1] => piyo [titile2] => fuga [〜 [title10] => 7 )
[2] => Array ( [titile1] => hoge [titile2] => hogera [〜 [title10] => 5 )


例えば、title1をhogeでドロップダウン選択したら、
Array0と2のレコードを抽出して表示

よろしくお願いします。

268 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 17:06:54.87 ID:dXmAFpYY0.net]
>>262
配列をフィルタリングするんじゃなくて sql の where 句を変えるようにするんだよ

269 名前:デフォルトの名無しさん [2017/05/16(火) 17:36:29.81 ID:WEDWU0250.net]
>>263
ありがとうございます。
1ユーザー単位の検索回数が多いであろうと想定して必要以上のDBアクセスを避けるために、
最初のページ読込で全データとったらあとは配列でなんとかしたかったのですが無理そうですかね…。



270 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 17:48:51.64 ID:Ilchk1CoH.net]
>>264
Javascriptで実装する範疇ですね。
Web制作板に適切なスレがあるかも・・・。

まぁ簡単に言えば、条件に適合する行は描画して、そうでない行はスキップすればいい。
それを全部自前で実装するか、何かのライブラリを使うか、フレームワークを使うか。
ライブラリは、https://datatables.net/とか。

これ以上は、Web制作板かな。(Javascriptの質問を重ねないように)

271 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 17:53:29.44 ID:ekUh1gbRa.net]
普通にarray_filterじゃダメなの?

272 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 17:58:06.48 ID:Ilchk1CoH.net]
>>266
クライアントでやりたいんだと思うよ。

273 名前:デフォルトの名無しさん [2017/05/16(火) 18:08:30.13 ID:WEDWU0250.net]
>>265
やはり、いち関数とかでどうこうできないですかね…残念。
検索値のログを取りたくてPHPを選択してみた経緯でした。
JavaScriptではファイル書き込みなどのファイル操作ができないようなので。
ありがとうございます。

274 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 18:13:09.89 ID:Ilchk1CoH.net]
>>268
サーバにクエリ投げてPHPで実装すれば?

275 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 18:15:43.77 ID:/gdfS9gt0.net]
いや、PHPでもゴリゴリ実装すればできると思うよ
ログも取れるし
SQLで間引くか、表示の直前で間引くかすれば良い
当然、適切なSQLを生成して必要な情報のみ取得して表示した方がサーバには優しい

276 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 18:16:14.25 ID:dXmAFpYY0.net]
>>264
まずは普通に作ってみたらいいのにと思うんだけど。

>>265 がいうようにクライアントでフィルタをかけるなら、クライアントに全データを渡すこと

277 名前:ノなるのは問題ないのか
 (配列にフィルタかける方法を知りたがってるんだからクライアントでのフィルタは意図していないと思っていたけど)
・セッションに保持するなら、データが更新されたときの整合性はどう担保していくのか

を考慮しないといけないんじゃない?
[]
[ここ壊れてます]

278 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 18:23:37.41 ID:Ilchk1CoH.net]
もう、全件Excelに読み込んで、Excelの機能でフィルタリングしちゃえ

279 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 18:30:03.35 ID:l7Nmuuc60.net]
RESTで必要な分だけJSONで取れるようにすればよいのでは



280 名前:デフォルトの名無しさん [2017/05/16(火) 18:42:09.76 ID:WEDWU0250.net]
みなさん、ありがとうございます。

>>266
あらためて調べなおしてみたら、array_filterでいけるかもですね。
これだと検索キーのぶんだけ、ネストでぶら下げていかなきゃいけない…のかな。
とりあえずベタでやってみます。
数値の範囲指定検索がややこしそう…。

>>267
最初はJqueryとか使って動的にやれたらな〜と軽く考えてましたが、
検索値指定してボタン押したら、セッションで検索値と配列渡して飛び先のphpページで処理して表示する流れにしました。

>>269
クエリでやらないのは>>264に書いた理由でした。

>>270
そうですねー、あまり余計な負荷は避けたいかなと。

>>271
クライアントにはデータは渡したくないので、あくまでサーバー側で処理したいと考えてます。
おっしゃる通り、まずはトライしてみます。array_filterで。
セッションの部分はまだ勉強不足でして…宿題です。
(データ登録は数日に1回10件くらいなのでシビアに見なくても大丈夫…かな?)

281 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 21:08:45.69 ID:6VEQJAMtM.net]
アクセス多いならデータベースに負荷をかけない方法として
memcacheやradisなどのキャッシュサーバ使ったり
PHPのAPCキャッシュを使うことも検討するといいよ
いきなりは厳しいけど、徐々に勉強していけばいいと思います

282 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 21:11:58.31 ID:6VEQJAMtM.net]
Redisは正式にはキャッシュじゃなかった
キャッシュ的にも使えるよ、という意味です
Sessionよりもより効率的なので将来的にはここまで頑張って進んでほしい

283 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 21:29:08.64 ID:9H3961U80.net]
>>261
良いのでは?
スレタイを声に出して100回読んでみろと言いたいところだが>>250は真実だしな
口が臭い奴にお前口が臭いよとはっきり言う方がある意味では親切なのと同じで
向いてない奴には向いてないとはっきり告げるのも必要だ
綺麗事だけじゃ仕事は勤まらん

284 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 21:33:22.36 ID:9H3961U80.net]
>>274
既に誰かが書いてたらすまないが、初回のsql発行結果を元に配列ソート用のJavaScriptのコードをPHPで出力してやるなんてやり方もあるよ
もう少し詳しく書きたいんだがスマホからなのですまない

285 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 21:57:02.88 ID:P5MMw6+60.net]
>>260
> 単にHTMLファイルをダブルクリックして表示することを指しているのなら、それに変わるPHPの使い方はできない。

ありがとうございます。
それがわかっただけでも対策を立てることができるので助かります。

286 名前:デフォルトの名無しさん mailto:sage [2017/05/17(水) 07:51:06.10 ID:3lPWTVzo0.net]
すいませんapcuみたいな有効期限付けれる kvs ライブラリで有名なの教えてもらえませんか
拡張機能ではなくcomposerで入れられるのがいいです

287 名前:デフォルトの名無しさん mailto:sage [2017/05/17(水) 09:42:34.81 ID:u2bs0BxyM.net]
>>280
https://github.com/chatbox-inc-hoge/SimpleKVS
有名でもないし、有効期限の実装もまだかもしれん
PHPだけでの実装なら都度都度ディスクから読み書きするしかないだろうから色々と厳しそう
SQLite使えるならそこにKVS実装するとか
ぶっちゃけ、どこかにmemcachedプロセス立

288 名前:ソ上げるのが一番速いと思う []
[ここ壊れてます]

289 名前:デフォルトの名無しさん [2017/05/17(水) 11:50:09.98 ID:3lPWTVzo0.net]
>>281
ランキング的なものをjsonで書き出して普段は読み込むだけなのでファイルでもいいかなと
レンサバなのでmemcachedは難しそうです
ありがとうございましたm(__)m



290 名前:デフォルトの名無しさん [2017/05/17(水) 12:56:49.09 ID:lSa7TP7B0.net]
>>276
そうなんですよねー。
いずれSQLはコールドデータ的にして、Redisにコピってそっちでやり取りできたらいいなあと。
Dockerとかで環境作れそうですけど、基本的な実装が終わったらトライしてみたいですね。
APCキャッシュは知らなかったので調べてみます。

>>274
そんなやり方があるんですね。
お時間あったらでいいのでもう少し情報いただると助かります、
自分のほうでも調べてみますので。

ありがとうございます。

291 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 12:45:16.74 ID:juCOIKkd0.net]
文字列の最後が「Part1」とか「Part23」と感じなってるんだけど
この数値の部分を取り出すにはどうすればいいでしょう?

292 名前:デフォルトの名無しさん [2017/05/20(土) 13:22:04.09 ID:+AHq9zzn0.net]
正規表現でいいだろ。とくに高速にこだわなければ。

293 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 14:06:53.01 ID:fTSvx8FL0.net]
Partを空文字列に変換する

294 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 14:23:35.28 ID:VyG0A5Zf0.net]
Partが固定長ならsubstrが最速だと思う

295 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 00:05:30.55 ID:GvMHZSOA0.net]
>>284です。
正規表現でできました。
ありがとうございます。

296 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 12:28:59.50 ID:ANSA2OhR0.net]
【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再起動
参考にしたサイト
www.php.net/manual/ja/oci8.installation.php
【判明していること】
apacheのerror.log…oci_connect undefined function
phpinfo…oci8の項目がない。
他の32ビットアプリからOracle接続できています。

297 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 19:05:16.60 ID:YAwwHXxQ0.net]
extentionの組み込みに失敗してるようだから、
試しに他のextention組み込んでみれば?
それもダメならそもそもextention動的に追加できない環境とか

298 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 21:24:59.33 ID:rRI3ub450.net]
phpまったく分からない初心者で申し訳ないんですが、こちらの(www.punyu.net/php/oekaki.php)お絵かき掲示板をサイトに設置したいのですが、設置方法通りにやっても
Parse error: syntax error, unexpected '}' in ""/poti/htmltemplate.inc(312) : eval()'d code on line 147
このようなエラーが出てしまいます…
該当のファイルは全く手を付けていないので原因が全く分かりません。
本来ならば配布サイトで聞くことなんですが、かなり昔に更新停止してしまっているようで…。
ご教示いただけたら幸いです。

299 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 22:10:58.34 ID:YAwwHXxQ0.net]
>>291
そのサイト見ても403エラーしか表示されないのでよくわらかんが、
syntaxエラーということはプログラムが正しい記法で記述されてないということ
PHPのバージョン違いで対応してないのかもしれない

そもそも更新が停止されてるプログラムなんかセキュリティホールあるかもしれんし
素人ならなおさら使うべきではないと思う
ちゃんと今もメンテされてるところを探すべき



300 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 22:14:17.37 ID:1J6dhIFt0.net]
そのファイル見たらfor PHP4とか書いてあるんだけど
PHP4のEOLから約9年なんですけど

301 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 22:27:21.97 ID:rRI3ub450.net]
みなさんアドバイスありがとうございます。やっぱり古いのはだめなんですね…。
今までレンタルサーバーを使っていたのですが、こちらのhttps://github.com/funige/neo
ツールを使いたくて先程のお絵かき掲示板を設置しようとしていたのです…。こちらで普通につかえているようなので大丈夫だと思ったのですが…。

302 名前:289 mailto:sage [2017/05/21(日) 22:43:45.41 ID:ANSA2OhR0.net]
>>290
ありがとうございます。
明日試してみたいと思います。

303 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 11:49:09.51 ID:d1deCwH80.net]
訪問者が以前見ていたページからオススメのページを表示させたいのだけど
そういうことはできるのでしょうか?
詳細な情報は自分で調べてくるので大凡な概要を教えてください

304 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 11:58:52.67 ID:wBUnNup00.net]
出来るだろうけど、オススメのページを決めるのはあなただよね?

305 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 12:05:10.49 ID:d1deCwH80.net]
オススメというか同カテゴリの人気ページを表示させたいと思っています。

306 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 12:12:45.56 ID:wBUnNup00.net]
アクセスユーザーがログインする形なら、ログインしたユーザーID
ログインしいなら、クッキーを使ってアクセスユーザーを特定する
後はサーバー側で、人気ページ集計やオススメページを決定し
そのアドレスに誘導するなりお好きなように

307 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 12:17:01.23 ID:d1deCwH80.net]
ログインはないのでクッキーと言うものを使ってみようと思います。
ありがとうございました。

308 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 12:20:23.07 ID:pVaUfe3+0.net]
訪問者をどうやって区別するのか?
ログイン処理などでID管理してればID使えるし、そうでないならcookieで識別するか?

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

オススメのページをどう選定するのか?
ページのごとにIDをふって、オススメページの対応表を自分で作るのか?
ユーザの動向からオススメページを決める手法はかなり難しい
レコメンドアルゴリズムとか協調フィルタとかでぐぐれ
PHPにもライブラリはいくつかあるようだが、そのまま使うのは厳しいかも

309 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 13:31:50.42 ID:o9BH+SoNH.net]
>>296
「レコメンドエンジン」でググるといいよ。

たとえば、
「レコメンドエンジン(協調フィルタリング)をPHP+Redisで実装」
qiita.com/yudsuzuk/items/6de4650cb6d50236533e



310 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 16:59:57.37 ID:0HmMgaGq0.net]
switch文でcaseが30個超えたりする場合
もっと簡潔にする方法ってありますか?
単純に引数の値によって個々の返値を変えたいんですが、
シンプルな方法がわかりません。

311 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 17:17:20.84 ID:QSwouUjx0.net]
連想配列とissetでやるとか?

312 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 17:17:24.50 ID:iPaI6PDPa.net]
>>303
そのswitchが何回出て来るかによる
1回ならもうそのままでいいし繰り返し出て来るならケース自体をオブジェクトにしてexecute呼ぶだけにするとか

313 名前:303 mailto:sage [2017/05/22(月) 18:38:52.91 ID:0HmMgaGq0.net]
配列も考えたんですが、うまい方法がわかりませんでした。
出てくるのは一回だけなので、このままでいってみます。
ありがとうございました。

314 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 22:58:53.15 ID:V20bT2wiM.net]
連想配列の方がスマートだと思う
キーを定義ファイルとかにまとめればswitchよりもキレイで見やすい

315 名前:デフォルトの名無しさん [2017/05/23(火) 21:42:21.92 ID:t ]
[ここ壊れてます]

316 名前:FSGr+Xo0.net mailto: 外部ファイルをよみこんだけど、
その外部ファイル上からクラスを探してくれないときはどうすればいいですか?
たとえば読み込む側ファイルが、 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 のときに読み込まれた側ファイルを探索してくれないのでしょうか。
[]
[ここ壊れてます]

317 名前:デフォルトの名無しさん [2017/05/23(火) 21:45:25.83 ID:tFSGr+Xo0.net]
すみません誤記がありました
上記の
var_dump(require '/xxx/foo.php');
で requireとなっていますが、
var_dump(require_once '/xxx/foo.php');
でもtrueが返ります。

318 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 22:14:10.10 ID:J05KrQMn0.net]
>>308
use.phpとfoo.phpを同一ディレクトリに配置して
'/xxx/foo.php' -> __DIR__.'/foo.php'
に書き換えて動かしたけど再現しない

実際に再現するコードは?

319 名前:デフォルトの名無しさん [2017/05/23(火) 22:29:34.43 ID:tFSGr+Xo0.net]
>>310
検証ありがとうございます。
今、私も foo.php と use.phpを同じカレントにおいて実行したところ
実行できました。
つまり、この問題は「foo.phpとuse.phpのディレクトリ(及び実行するカレントディレクトリ)が違う」
という問題が原因していることが新たにわかりました。
ディレクトリが違うと問題が起きるのでしょうか?
読み込んだモジュールと読み込んだ側、実行カレントなどの
ディレクトリを揃える手段ってありますか?



320 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 23:31:00.98 ID:J05KrQMn0.net]
>>311
ディレクトリaaaを掘ってそこにuse.phpを移動しかつ
__DIR__.'/foo.php' -> __DIR__.'/../foo.php'
として問題なく動作する

繰り返すが再現する条件と実行可能なコードを出せ
きちんと原因を知りたいならな

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
> 処理は内部的な物で、どうしても必要なクラスという条件です
なら、コンストラクタで実行するしかないよね。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<332KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef