トップページphp
1001コメント304KB

【PHP】下らねぇ質問はID出して書き込みやがれ 110

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2011/08/30(火) 17:23:31.78ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 109
http://hibari.2ch.net/test/read.cgi/php/1311803617/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0897nobodyさん2011/09/23(金) 23:08:33.29ID:???
試間違書思
側設定無場合往生気
場合無設定
0898nobodyさん2011/09/23(金) 23:09:20.22ID:???
>>897
はがない
0899nobodyさん2011/09/24(土) 00:35:57.94ID:???
mysql_connect('localhost','root','');
でいけると思うが
0900nobodyさん2011/09/24(土) 01:26:24.92ID:???
0901nobodyさん2011/09/24(土) 02:07:28.88ID:3Mrta0IS
curlでヘッダーとボディを分けたいのですが


if (preg_match("/^(.*)\r\n\r\n/s", $response_body, $header)) {

 $response_header = $header[0];

 $response_body = preg_replace("/^.*\r\n\r\n/s", '', $response_body);

}

これだとLocationで飛ばされた場合ヘッダーが残ってしまいます。
どう分けるべきでしょうか
0902nobodyさん2011/09/24(土) 02:26:34.74ID:MalQcT1d
? みたいなコードをデコードして全角スペースに変換する関数などは
PHPにありますか?
0903nobodyさん2011/09/24(土) 02:27:18.04ID:MalQcT1d
失礼しました。
  こんなコードです。
0904nobodyさん2011/09/24(土) 03:04:25.67ID:???
header('Content-Type: text/html; charset=UTF-8');
echo 'あ' . mb_convert_encoding(' ', 'UTF-8', 'HTML-ENTITIES') . 'ん';
09058942011/09/24(土) 07:56:58.91ID:b87ynDOu
>>896、899
ありがとうございます、できました。
0906nobodyさん2011/09/24(土) 10:38:15.22ID:???
>>903
html_entity_decode
0907nobodyさん2011/09/24(土) 18:12:37.99ID:???
今はSPLって標準で入っているものと見なしていいんかな。
皆さんのご意見を聞かせてくだせい。
0908nobodyさん2011/09/24(土) 18:37:47.26ID:???
PHP5が標準になってるとみなしていいか、と聞くわけにはいかなかった理由が知りたい
0909nobodyさん2011/09/24(土) 18:46:57.66ID:???
今はよくわからないのですが、5が出た頃はコンパイルオプションでわざわざSPLを外している人が自分の周りにはよく居たので。
0910nobodyさん2011/09/24(土) 18:50:45.30ID:???
どんな集団だよ
0911nobodyさん2011/09/24(土) 22:42:19.26ID:???
集団ではなく、自分の周りによく居ました。
09128772011/09/24(土) 22:57:34.10ID:k/GpB/4m
>>882 >>883
ありがとうございます。参考になりました。
とりあえず以下のようなコードでやりたいことは実現できることが分かりました。
(スマートな方法では無いんでしょうけど///)
何かもっといい方法がありましたらアドバイスお待ちしてます。

$str="60*60*24";
$func="function test(){return ". $str .";}";
eval($func);
echo (test());
0913nobodyさん2011/09/24(土) 23:25:38.62ID:???
>>912
eval使うなら外部から任意のコードを実行されないようにセキュリティに気をつけて。
事前に$strを調べて数式に利用される文字以外を許容しないようにするとか。
0914nobodyさん2011/09/25(日) 00:56:33.14ID:???
$str='60*60*24';
echo eval('return ' . $str . ';');
0915nobodyさん2011/09/25(日) 04:30:21.43ID:???
>>909
それを踏まえたうえで、入っているものとみなしていいかという質問をしたのであれば、
入っているとみなしてはいけないと答えるしかないが。

クライアントOSがWindows7の場合、IEは入っているとみなしていいか?という質問に置き換えられると思う。
0916nobodyさん2011/09/25(日) 05:12:01.74ID:???
わかりました。つまり、Firefoxは入っているとみなしていいわけですね。
0917nobodyさん2011/09/25(日) 10:26:18.17ID:???
>>914
実際のコードで固定値にしてるとは限らないだろ。
0918nobodyさん2011/09/25(日) 13:14:32.62ID:???
>>917
固定値にしていないとも限らんぞ。
0919nobodyさん2011/09/25(日) 15:00:39.77ID:???
>>918
固定値にしていないとも限らんこともないだろ。
0920nobodyさん2011/09/25(日) 15:32:07.94ID:???
>>919
チャウチャウちゃうんちゃう?
0921nobodyさん2011/09/25(日) 15:39:52.56ID:???
>>920
ちゃいまんがなでんがなでっしゃろ
0922nobodyさん2011/09/25(日) 17:47:45.82ID:lSLAMoo3
phpでのmemcached(ver.1.4.5)の使い方について知りたいんですが

$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("接続できませんでした");
$memcache->set('key', date('Y-m-d h:m:s'), false, 1000) or die ("データをサーバに保存できませんでした");
$rs = $memcache->get('key');
//検証
var_dump($rs);

という形で動作チェックしてるんですが、$rsの値がブラウザリロードする度に変わります
1000秒間同じ値が維持されるはずですよね?
どこかに間違いやチェックすべき点があれば教えてください
よろしくお願いします
0923nobodyさん2011/09/25(日) 17:53:38.39ID:???
よろしくお願いされました
0924nobodyさん2011/09/25(日) 18:21:08.36ID:???
毎回セットしてるからじゃね?
2回目は「$memcache->set('key', date('Y-m-d h:m:s'), false, 1000)」の部分を削って見てみれ

memcacheは知らんが、普通この種のAPIには、値がセットされているか?を調べるメソッドがあるはずだからそれ使えばよろし
0925nobodyさん2011/09/25(日) 18:25:24.62ID:LQyKU57v
checkdateで正しい日付なのですがfalseになります。
これって何が原因でしょうか?
0926nobodyさん2011/09/25(日) 20:02:04.88ID:???
setでfalseになる件は分からないけど、ほしい動作はaddじゃないのかな。
それと、flagsにfalseを指定している由来はどこから
0927nobodyさん2011/09/25(日) 20:02:49.40ID:???
>>925
お前の頭って言って欲しいってこと?
09289262011/09/25(日) 20:06:51.00ID:???
ああ、>>922=>>925なのかとおもってたごめん
>>922
setで
09299262011/09/25(日) 20:08:29.75ID:???
…orz

>>922
setでfalseに云々はスルーしてください

>>926
よくわからないけど、引数の順番を間違えたとか、全角の数字文字列を渡したとか。
0930nobodyさん2011/09/25(日) 20:53:54.15ID:UUy9A1AC
>>913
おっしゃる通りです。で、対策を考えたのですが、「文字列に$記号、括弧が出たら削除する」というのでどうでしょうか?
>>914
参考になります。使わせていただきます
0931nobodyさん2011/09/25(日) 20:57:22.77ID:???
>>930
いやいや、linuxコマンドとか実行されたらどうすんのよ。
数字と数学記号以外が含まれてたら無効にしないとやばいでしょ。
数式だけだったら括弧が含まれてても大丈夫だろ。
0932nobodyさん2011/09/25(日) 20:58:22.97ID:???
shellに受け渡す変数用のescapeファンクションとかなかったっけ?
マヌアルのevalとかsystemとか書いてるセクション一通り読んでおくといいよ
0933nobodyさん2011/09/25(日) 21:04:06.20ID:???
linuxコマンドだけじゃなく、PHPの任意のコードが実行されてもマズいでしょ
0934nobodyさん2011/09/25(日) 21:14:20.93ID:???
というかその程度の事を態々PHPでやらないとだめな事なのか?と思ってしまう
0935nobodyさん2011/09/25(日) 21:19:33.92ID:UUy9A1AC
了解です。以下のコードではどうでしょう
$str="60*60*24 phpinfo()";
$str=mb_ereg_replace("[^0-9*+-/%]","",$str);
echo eval("return $str ;");// 86400 が返る
0936nobodyさん2011/09/25(日) 22:02:52.41ID:???
いいんじゃね?eregよりpregを使うべきだがこの際どっちでもいいだろ
0937nobodyさん2011/09/25(日) 22:57:10.01ID:???
括弧を使った数式は計算しないの?
数学関数が使われていたら?
0938nobodyさん2011/09/25(日) 23:17:42.81ID:UUy9A1AC
>>936
preg とmb_eregの違いをよく理解してないんですが、より処理の軽い方を使いたいと思います。
>>937
今回は、時間を秒数単位で取得するのに、可読性のいい書式にしたかったので・・・
60*60*24*7 =7日 みたいな感じ
その意味では剰余のケースも要らないんですけど、
今後、他の用途に使うことがあれば考慮しないと駄目ですね。
0939nobodyさん2011/09/25(日) 23:22:22.02ID:???
PHPを使った電卓アプリってことでいいんじゃない。
でもこういうアプリはjavascriptで出来たほうが軽いと思うけどね。
0940nobodyさん2011/09/25(日) 23:48:02.78ID:???
mb_eregが出てくるって事はマルチバイト文字列の可能性があるってことで、
その上でpregつかうならu必須かな
0941nobodyさん2011/09/26(月) 00:53:19.75ID:???
まぁ数字と四則演算記号以外を除去するだけなら気にしなくていいんじゃね
0942nobodyさん2011/09/26(月) 01:51:44.94ID:???
【PHPのバージョン】5.3.6
【連携ソフトウエア】なし



PHPのヒアドキュメントを、PHP アプリケーションが対応しているのに一回もまともに使えた試しが無いのですが、どうすれば良いでしょうか?

例えば。
<?php

$hDoc = <<< EOF

It is <strong>very important</strong> to study.

EOF;

echo(hDoc);

?>
なんてスクリプトを書いてサーバーにアップロード。
そしてこれを実行すると全く無反応(ヒアドキュメント自体は外部スクリプトに書いてあって、それをrequire()しているため)です。
何故でしょうか?
0943nobodyさん2011/09/26(月) 02:08:35.93ID:???
>ヒアドキュメント自体は外部スクリプトに書いてあって、それをrequire()しているため

ここの部分どう書いてるかちゃんと書いてくれないかな
あとID出さないとうるさい人多いよ
0944nobodyさん2011/09/26(月) 02:12:46.46ID:???
無反応であることの理由を括弧書きしているように見えるんだけど、何かの間違いだよね。

echo($hDoc);
では?
0945nobodyさん2011/09/26(月) 02:19:00.80ID:???
>>942
requireしてる云々言う前に、自分が>>942で書いたソースで試してみたのか?
0946nobodyさん2011/09/26(月) 07:07:36.93ID:???
エラー表示を有効にするか、せめてlintしよう
0947nobodyさん2011/09/26(月) 08:48:28.85ID:gM/XS757
>>924
解決しました、ありがとうございました
0948nobodyさん2011/09/26(月) 10:05:35.87ID:???
>>942
<<<□EOF

<<<EOF

echo(hDoc);

echo($hDoc);
0949nobodyさん2011/09/26(月) 10:49:20.78ID:4HUDHxKv
【OS名】Ubuntu 11.04
【PHPのバージョン】5.2
【連携ソフトウェア】なし
【質問内容】
session_start() せずにセッションの有無を判定する方法はありますか?
0950nobodyさん2011/09/26(月) 10:54:55.22ID:???
>>949
session_id
09519492011/09/26(月) 11:21:57.57ID:4HUDHxKv
>>950
ありがとうございます。できました。
0952nobodyさん2011/09/26(月) 15:02:53.23ID:???
>>948

<<<のあとと終端IDに余計なものが入っていたのが原因でした。
ありがとうございました。
0953nobodyさん2011/09/26(月) 15:28:11.95ID:???
>>948 >>952
<<<□EOF

うちの環境では<<<の後に半角スペースが入っててもエラーにならないよ。
>>942のソースの$hDocだけ直したらちゃんと表示されたけどね。
0954nobodyさん2011/09/26(月) 18:18:18.48ID:aEjSFzjc
PHPのRPMを作りたいのですが
specファイルが付属しておらず、
そのテンプレートらしきphp5.spec.inが付属しています。
これを手作業で書き換えるのでしょうか?
それともこれを入力ファイルとして処理するツールみたいなものがあるのでしょうか?
0955nobodyさん2011/09/26(月) 18:47:47.70ID:???
>>954
何にspecファイルが付属してなかったん
0956nobodyさん2011/09/26(月) 19:08:49.35ID:???
>>955
PHPのソースファイルです
0957nobodyさん2011/09/26(月) 19:10:26.54ID:???
specファイルがほしいだけならconfigureすればできるけど、そっから先がしんどいと思う
makerpmとかついてるけど。
以前RPM作ったときは素直にSRPMから作ったよ
0958nobodyさん2011/09/26(月) 20:12:20.06ID:???
configureでspecファイルまで作られるのですか?
makefileだけでなく?
たしかにSRPMを参考にするのが良さそうですね
むしろ最初からそうしとけってかんじですね
0959nobodyさん2011/09/27(火) 00:25:29.33ID:???
>>958
なんで聞く前にconfigureしなかったの
0960nobodyさん2011/09/27(火) 01:12:54.16ID:???
>>953

>>948 >>952
<<<□EOF

うちの環境では<<<の後に半角スペースが入っててもエラーにならないよ。
>>942のソースの$hDocだけ直したらちゃんと表示されたけどね。


質問者の環境が問題なのであって、あんたの環境は関係ない。
と余計なレスしないでいただけませんでしょうかね。
ウザいです。
0961nobodyさん2011/09/27(火) 01:36:19.07ID:???
>>960
どう見てもあんたの書き込みの方がウザいよ
わざわざ>>953の全文を引用してゴミを増やす必要ないと思うけど
わざとか?
0962nobodyさん2011/09/27(火) 01:42:58.04ID:???
$抜けなんかは誤植の可能性もあるからどうとも言えんわな
そして実際半角スペースが入ってても問題はないし
まぁ半角スペース以外の見えない文字が入ってた可能性は高いと思うけど
というかそもそもウザイという為だけのレスの方が見ててうざいわw
0963nobodyさん2011/09/27(火) 09:39:53.08ID:???
>>959
テンプレートになるphp5.spec.inに既に使われていない古いタグが使われているなど
あまり管理されている形跡がなかったので・・。
たしかに生成されていますが
php5.spec.inを単純にコピーしただけのものでした。
もともとはphp5.spec.inを元にconfigureオプションを組み込んだspecファイルを作るつもりだったのかな?
0964nobodyさん2011/09/27(火) 20:28:33.73ID:qk0Dp7GE
Linux上でコマンドラインで使うPHPについて教えてください
MySQLのサードパーティ製のソフトを導入時にPerlで書かれたスクリプトは良く見ますが、PHPは見ません
このような利用法での何かPHPよりもPerl方が有利な点があるのかと思ったのですが
シェルとしての(またはbash等と併用する場合での)コマンドラインでPHPを使用する際の注意点、問題点、限界など教えていただけないでしょうか?
0965nobodyさん2011/09/27(火) 20:49:33.45ID:???
>>964
> PHPは見ません

それは知らんかった。

昔はperl使いだったが今はPHPだね。
むちゃ便利。
0966nobodyさん2011/09/27(火) 20:59:24.61ID:???
>>964
PHPをデフォルトでインストールしてる環境がPerlのそれより少ないってだけだ
Perlは前世紀から使われてたがPHPは今世紀入ってからだからな
自分の鯖機にPHPが入ってるなら好きにすればええ
シェルとして使うにしても便利な関数はたいてい入ってるし困ることもないだろう
0967nobodyさん2011/09/27(火) 21:05:01.23ID:???
>>966
確かに
Linux入れてもPerlはまずデフォルトで入ってますからね
0968nobodyさん2011/09/27(火) 21:18:28.70ID:???
昔はPersonal Home Pageの略だったから、まぁ、Webしか考えてなかった。
今はWeb以外の使い方も想定されてるし、使えるようになってる。
0969nobodyさん2011/09/28(水) 01:24:17.61ID:???
>>964
>>808-813と同一人物か?
0970nobodyさん2011/09/28(水) 01:27:16.06ID:???
>>966
PHPだって前世紀からある。お前がまだ生まれてなかっただけ。

Perlは昭和から使われてたがPHPは平成に入ってからだからな
0971nobodyさん2011/09/28(水) 02:26:33.24ID:???
だれもあるないの話はしてないわけだが
わけわからん駄レスはつけるな
0972nobodyさん2011/09/28(水) 03:50:10.09ID:???
昭和平成間で、生まれてる生まれてないの話をするのがこんなスレにまで
どうしよう月日がどんどん
0973nobodyさん2011/09/28(水) 03:56:28.61ID:???
>>972
>昭和平成間で、生まれてる生まれてないの話をするのがこんなスレにまで
>どうしよう月日がどんどん

何言ってるのか全然わからん。
頭大丈夫?
0974nobodyさん2011/09/28(水) 03:57:31.13ID:???
>>971
皆あるないの話をしてるんだよ
お前こそクソレスするな
0975nobodyさん2011/09/28(水) 04:08:11.26ID:???
>>974
みんなって>>970>>971
0976nobodyさん2011/09/28(水) 04:08:57.86ID:???
あ、>>971じゃなくて>>974ね。

>>973
>>972が何言ってるかはわかるけど、どうでもいいな
0977nobodyさん2011/09/28(水) 04:28:20.92ID:???
>>970
こいつがアホなだけ
スルーしろ
0978nobodyさん2011/09/28(水) 04:38:40.43ID:???
お前ら全員アホ。
PHPスレでつまんない議論してる暇があったらAjaxでも勉強しろ。
0979nobodyさん2011/09/28(水) 11:55:30.63ID:gjW5zO1z
$tab = (isset($_SESSION['tab'])) ? $_SESSION['tab'] : '';

この文の真ん中の方にある?と後ろの方の : '
の意味てなんでしょうか?
ググろうにも初心者で文法用語がわからず苦戦しています。
誰かご教授お願いします。
0980nobodyさん2011/09/28(水) 11:57:26.23ID:vuB7HA+I
質問です、よろしくお願いします。

if(preg_match("/abc/", $sample)) {

上のpreg_matchの条件を「 /abc/ 」「 /def/ 」のOR条件に変更する方法を教えて頂けませんか?
↓の方法ではうまくいきませんでした

if(preg_match("/abc/|/def/", $sample)) {
0981nobodyさん2011/09/28(水) 11:58:40.17ID:???
>>979
三項演算子

>>980
/abc|def/
次スレ
09829802011/09/28(水) 12:24:44.28ID:vuB7HA+I
>>981
無事、解決できました。
ありがとうございます。
09839792011/09/28(水) 12:46:35.99ID:gjW5zO1z
>>981
ありがとうございます。おかげさまで解決できました。
0984nobodyさん2011/09/28(水) 16:17:24.83ID:???
お安い御用です。
0985nobodyさん2011/09/28(水) 20:58:23.40ID:gjW5zO1z

すみません。DB板でSQL質問スレが落ちていたのでここで質問させてください。
mysqlver5.1.6で
update tbTest set flg=1  ORDER BY seq LIMIT 0 ,10
というのを実行しようとしたらmysqlではupdate文のoffsetができない?らしくエラーになりました。
これを実行(seqが特定のものから10個をフラグ建てたい)
するにはどうしたらいいでしょうか?
0986nobodyさん2011/09/28(水) 21:28:12.73ID:???
意図しているところとあってるかわからんけど、

UPDATE tbTest
SET flg=1
WHERE id IN (SELECT id FROM tbTest ORDER BY seq LIMIT 0 ,10)
0987nobodyさん2011/09/28(水) 21:50:29.43ID:???
>>985
新スレ立ってるけど
http://hibari.2ch.net/test/read.cgi/db/1316769778/
0988nobodyさん2011/09/28(水) 21:52:12.62ID:???
MySQLスレもあるよ
http://hibari.2ch.net/test/read.cgi/db/1307760689/
0989nobodyさん2011/09/29(木) 02:58:26.19ID:???
次スレ
http://hibari.2ch.net/test/read.cgi/php/1317232566/
0990nobodyさん2011/09/29(木) 09:59:28.93ID:RN8zU3vp
>>986
お返事ありがとうございます。
MYSQLだとサブクエリの中でLIMITを使えないらしくエラーに
なりました。
誘導していただいたスレへ行って質問してみたいと思います。
0991nobodyさん2011/09/29(木) 10:35:37.31ID:???
>>989
0992nobodyさん2011/09/29(木) 17:29:01.69ID:???
お安い御用です。
0993nobodyさん2011/09/30(金) 11:58:09.18ID:???
どういたしまし・・・た
0994nobodyさん2011/09/30(金) 12:54:04.56ID:???
<?php
$cdate = date("Y/m/d D H:i:s", time()+60*60*9);
$hpadrs = $_SERVER["REQUEST_URI"];
$refer = $_SERVER["HTTP_REFERER"];
$agent = $_SERVER["HTTP_USER_AGENT"];
$ipadrs = $_SERVER["REMOTE_ADDR"];
$host = @gethostbyaddr($ipadrs);
if($host == ''){ $host=$ipadrs; }
$filename = Date("Ymd",time()+60*60*9);
$filnam = "hogehoge.com/".$filename.".txt";
$fp = fopen($filnam,"a");
fputs($fp,"$cdate\t$refer\t$hpadrs\t$agent\t$host\t$ipadrs\n");
fclose($fp);
?>
ログを集計すると特定のサイトからのリファラが10分の1以下しか取得できていないようなのですが
どのような原因が考えられますでしょうか?
09959942011/09/30(金) 12:59:31.26ID:???
↑失礼!コピペしたら上が切れちゃった

配布されているアクセス解析が気にくわないので上のスクリプトを自分のWPブログのヘッダーに
埋め込んだんですがgoogleアナルや他の解析スクリプトと比較するとかなり結果に開きがあり
理由がわからないため書きこませて頂きました
0996nobodyさん2011/09/30(金) 13:41:29.84ID:???
10分の9以上がPHPじゃないものへのアクセスなのでは
favicon.icoとか
レス数が950を超えています。1000を超えると書き込みができなくなります。