【PHP】下らねぇ質問はここに書き込みやがれ 40
■ このスレッドは過去ログ倉庫に格納されています
00011様
2007/02/22(木) 22:37:41ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 39
http://pc10.2ch.net/test/read.cgi/php/1171280039/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
0488nobody
2007/02/28(水) 10:46:21ID:???(環境)IE6、WinXP-sp2、Apache、PHP5
画面A(検索画面)でPOST実行し、画面Aに結果表示した後、
画面A内のリンクから画面Bに遷移し、画面Bから
画面Aにブラウザの戻るをしたら、ページの有効期限切れとなってしまいます。
ケスケやFireFox、Operaでは発生せず、IEだけです。
PUKIWIKIの対策ページを参考にしましたが、解決しません。
何か解決方法や参考サイトがあれば、宜しくお願いします。
セキュリティ上どうしようもないのでしょうか?
解決したような事を書いてるHPも複数あるので、なんとか
なると思っていますが。。。
0489488
2007/02/28(水) 10:51:23ID:???ごめんなさい。。^^;
0490nobodyさん
2007/02/28(水) 10:54:32ID:???大手の銀行や上場企業のサイトを見るとjavaがほとんどですが、
phpって企業サイトには向かないのでしょうか?
私は数人の会社なので、どっちでもいいのかもしれませんが、
javaに比べてphpだとセキュリティーとかに不安があるとか、
処理速度が遅いとかっていうことがあるのでしょうか?
0491nobodyさん
2007/02/28(水) 11:05:38ID:???セキュリティーは関係ない。JAVAに比べてphpはメモリー関係で融通が効かないから。
大規模になればなるほど、その辺がまず問題なるが、アクセスが多くなるほど、phpはクラッシュして不安定になる。
小規模ならphpで十分だ。JAVAは運用がその分面倒だし。
0492nobodyさん
2007/02/28(水) 11:12:32ID:???0493nobodyさん
2007/02/28(水) 11:14:58ID:???処理速度は遅いと思うよジャヴァと比べたら
0494nobodyさん
2007/02/28(水) 11:55:52ID:???ここらへんとか
http://www.glamenv-septzen.net/pukiwiki/index.php?PHP%2F%A1%D6%A5%DA%A1%BC%A5%B8%A4%CE%CD%AD%B8%FA%B4%FC%B8%C2%C0%DA%A4%EC%A1%D7%C2%D0%BA%F6#content_1_1
http://memo.xight.org/2006-06-13-2
0495nobodyさん
2007/02/28(水) 11:59:42ID:???そらぁ何台もアプリケーションサーバがあるようなシステムではJavaだろうけど、
一台のホストにWebサーバもデータベースもぶちこむ安システムならPHPもそう負けないだろ。
0496nobodyさん
2007/02/28(水) 12:01:10ID:???0497nobodyさん
2007/02/28(水) 12:15:02ID:???0499nobodyさん
2007/02/28(水) 12:41:26ID:NIuJbHw3> 元のPNGが8ビットで縮小版が24ビットになってるとか
GD関数ではビット数を調べたり、変換させたりが出来るのでしょうか?
ざっとマニュアルを見たところ、ビット数に関する記述は見つかりませんでした。。。
0500nobodyさん
2007/02/28(水) 12:42:45ID:???参考までに教えてほしい。
0501nobodyさん
2007/02/28(水) 12:42:55ID:mYjvryh6ローカルサーバーでクッキーの実験をしているんですけど、
以下のようにしても何も表示されません。
原因を教えてください。
output_bufferingをonにして警告を出なくはさせました。
<?php
setcookie ("Test_Cookie", "syuturyoku", time() + 3600);
echo $_COOKIE['Test_Cookie'];
setcookie ("Test_Cookie", "", time() - 3600);
?>
0502nobodyさん
2007/02/28(水) 14:12:33ID:???何も表示されなくて当たり前。
setcookieはレスポンスヘッダに値を書く命令。
$_COOKIEはリクエストヘッダから読まれた値。
0503nobodyさん
2007/02/28(水) 14:35:16ID:???投稿されてからある程度だったビデオは他の動画からのリファラとかクリックでカウントすればできそうだけど、
投稿されたばかりのビデオとかはどうするんだろ・・・。
0504nobodyさん
2007/02/28(水) 14:38:06ID:???0505nobodyさん
2007/02/28(水) 15:08:01ID:Y6O44be+ブログの最新記事を表示させてるのですが
<?php get_archives('postbypost', '10','custom' ,'<li>' ,'</li>'); ?>
これで記事は取得できるんですが
取得した記事の後に時間を表示させたいのですがどう組み合わせたらいいのか
教えて下さい。
<?php the_time('Y.m.d H:i') ?>
時間取得は上記で取得してます。
試行錯誤したのですが組み合わせができなくて困ってます。
助けて下さい。
0506nobodyさん
2007/02/28(水) 15:12:00ID:???なんなんだお前は。
独自関数が入ったコードで、さも当たり前のように質問するな。
それで回答できる超エスパーは存在しないぞ。
0508nobodyさん
2007/02/28(水) 15:17:12ID:dDErVMbVhtml(UTF8)入力⇒html(UTF8)一部文字化け、となります。
最初は日本語でも文字化けしていたのですが
調べたらEUCで受け渡しているようです。
とりあえず渡れされたものを、EUC⇒UTF8で日本語や繁体時など普通の字は元に戻るのですが
簡体字はEUCで渡す時点で?に文字化けしてるようで対処しようがありません。
受け渡しをUTF-8に統一したいのですが
どういった指定方法があるのでしょうか?
.htaccessに
php_value default_charset utf-8
php_value mbstring.internal_encoding UTF-8
など書いて見ましたが何も変わらず・・・
mb_language("uni");
mb_internal_encoding( UTF-8 );
とかも・・・
0510505
2007/02/28(水) 15:25:24ID:Y6O44be+独自仕様なのわかりませんでした。
すいません;;
0511nobodyさん
2007/02/28(水) 15:38:23ID:???それが分からないようなら、PHPの基礎から勉強できる書籍でも買って勉強してください。
その部分のソースを張れば誰か答えてくれるかもしれません。
またはwordpressを知ってる人が答えてくれるかもしれませんが・・。
0512nobodyさん
2007/02/28(水) 15:45:35ID:miuFrXG1select address1 from table1 union select address2 from table1
このSQLをPHPでmysql_fetch_arrayするとエラーがでます。
エラー:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
しかしデータベースを直接操作するとエラーは出ずうまく取得できます。
なぜでしょうか?
0514512
2007/02/28(水) 15:58:14ID:miuFrXG12つ以上のレコードから重複を取り除きたい
コード 住所1 住所2
1 東京都 中央区
2 東京都 新宿区
3 大阪府 中央区
住所1は東京都と大阪府
住所2は中央区と新宿区
を取り出したいのです。
1つのレコードなら
select distinct address1 from table1
で取得できますが2つ以上の場合どのようにすれば取得可能でしょうか?
0517nobodyさん
2007/02/28(水) 16:04:22ID:???<?php get_archives('postbypost', '10','custom' ,'<li>' , the_time('Y.m.d H:i').'</li>'); ?>
0518nobodyさん
2007/02/28(水) 16:10:20ID:???UTF-8で受け渡しのする他のサーバーでは文字化けしないので
使用しなければならないサーバーでEUC渡しになってしまうようです。
その段階で?になっているので、内部エンコーダーを
レンタルサーバーなりの範囲で変えればいいと思うんですが
何をいれても変化がなく・・・(うけつけない?)
0519505
2007/02/28(水) 16:11:53ID:Y6O44be+phpサイトを見て勉強してきます。
丁寧にありがとうございます。
>>517
神様ありがとうございます。
本当に助かりました
感謝です!
0520509
2007/02/28(水) 16:12:51ID:???そういうことか。
おれも中国語扱っているから分かるが、それなら、プログラムの先頭で
mb_internal_encoding("UTF-8");
を使え。それで、解決だ。
0521nobodyさん
2007/02/28(水) 16:34:28ID:???mb_internal_encoding("UTF-8");
・・・・
print_r(mb_detect_encoding ( $name ,$arr, TRUE ));
EUC-JP
なぜでしょうorz
0522nobodyさん
2007/02/28(水) 16:42:38ID:???$nameがEUC-JPだから
$name = mb_convert_encoding($name, "utf-8", "euc-jp");
rint_r(mb_detect_encoding ( $name ,$arr, TRUE ));
でどう
0523nobodyさん
2007/02/28(水) 16:46:21ID:???0524nobodyさん
2007/02/28(水) 16:50:06ID:???unionって列の名前が異なっててもいいの?
select address1 from table1
union
select address2 as address1 from table1
だったらどう?
0525514
2007/02/28(水) 16:50:24ID:miuFrXG1ありがとうございました。
0526514
2007/02/28(水) 16:52:49ID:miuFrXG1同じエラーがでますた。
0527nobodyさん
2007/02/28(水) 16:59:12ID:???今のところ後ろの方は
そういう感じで集計しているのですが
結局?は?のままなのです。
そして.htaccessで、変換関連は拒絶されました・・・
0528nobodyさん
2007/02/28(水) 17:02:06ID:???それ通らなければSQLのエラー。ちなみにMySQL3ではunion使えないよ。
0529nobodyさん
2007/02/28(水) 17:02:10ID:???SELECT DISTINCT address1,address2 FROM table1
でいけない?
なんのDB使ってるか分からんからなんとも言えんけど;
0530nobodyさん
2007/02/28(水) 17:04:11ID:???なんかsqlだけなのでスレ違いな気もするけど。
0531nobodyさん
2007/02/28(水) 17:09:21ID:AnB9SYohテキストボックスの初期値にできるんでしょうか?
0533514
2007/02/28(水) 17:12:03ID:miuFrXG1重複を取り除けません
>SELECT address1,address2 FROM table1 GROUP BY address1
address2を取得できません
0534nobodyさん
2007/02/28(水) 19:54:21ID:???まず
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
は直ったの?SQLの問題じゃないし
mysql_fetch_arrayの引数が適当なリソースじゃないってエラー
;
$result = mysql_query(....);
$row = mysql_fetch_array($result);
mysql_queryのリターンを指定してるかい?
0535nobodyさん
2007/02/28(水) 19:54:23ID:???0536nobodyさん
2007/02/28(水) 20:00:26ID:???0537nobodyさん
2007/02/28(水) 21:18:42ID:???現在、$array[0]=a $array[1]=b $array[2]=c
となっています。
これらのキーをそれぞれプラス1して、
$array[1]=a $array[2]=b $array[3]=c;
…としたいのですが、どうやったらいいでしょうか?
標準関数一発で出来そうな関数は無かったので質問しました。
0538nobodyさん
2007/02/28(水) 21:29:47ID:/OxDoLcNほげほげ,ほげ\n
もげもげ,もげ\n
PHP
$fx = fopen("hoge.dat", "r");
while (!feof($fx)) {
$str = fgets($fx);
trim($str);
$elem = explode(",", "$str");
$print "$elem[0] $elem[1] ";
}
fclose($fx);
結果
ほげほげ ほげ
もげもげ もげ
期待する結果
ほげほげ ほげ もげもげ もげ
というわけでtrim関数が期待通り動いてないみたいなんですが
俺のせいですかorz
0539nobodyさん
2007/02/28(水) 21:33:57ID:ZCmQSNG70540481, 501
2007/02/28(水) 21:49:59ID:mYjvryh6>>502
できました。
>>485
$_COOKIEでロードし変化させてsetcookieでセーブ
みたいなのを考えていたんですけど、
呼び出す順番に制約があるので無理っぽいです。
エクステンションというのも調べてみます。
0541nobodyさん
2007/02/28(水) 23:11:57ID:???クラスフォルダ(classes等)の中でさらに機能ごとに分類して設置したりしてる?
0542537
2007/02/28(水) 23:24:41ID:???0544nobodyさん
2007/03/01(木) 00:07:48ID:???とか
0545nobodyさん
2007/03/01(木) 00:15:29ID:???住所1 重複不可
住所2 重複おk
ってことかな?
既存のデータベースに対する操作ならEXISTSあたりでできそうだけど
新規にテーブル作ってつっこむならコードと住所1をプライマリキーに
0546nobodyさん
2007/03/01(木) 00:35:17ID:d9i72hOuユーザー関数functionの引数の型の
指定の仕方がありましたら教えてください。
0547nobodyさん
2007/03/01(木) 00:38:55ID:a/RduvQDどんな場合でも10行以上の表示をさせない為には
どうすれば実現できますか?(最後の行には[続き]リンクを入れる)
mb_strpos関数で\nを検索して、改行数をカウントする方法で
やっていますが、これだと改行いれずに文字を多く書かれてしまうと
スルーされます。改行と文字数をいっぺんにカウントする
関数を作っていますが、複雑でよくわからなくなってきました。
何か良い方法や解説しているサイトなどあればご紹介お願いします。
0549nobodyさん
2007/03/01(木) 00:46:26ID:???投稿した文字の改行を取り除いて、指定した文字数ごとに改行いれればいいんじゃない?
文字ごとに切り抜いていって配列に格納して、countで10以上なら10までは表示して以降は[続き]リンクを
続きリンクはview?id=1002&mode=allみたいな感じで普通の閲覧(10行までの表示)と全て表示を切り替える
0551547
2007/03/01(木) 00:57:40ID:a/RduvQDレスありがとうございます。
なるほど〜改行とった後で文字列のカウントですか〜
いや〜まったく思いつきませんでしたw
解決できそうです。ありがとうございました!
0552481, 546
2007/03/01(木) 02:05:12ID:d9i72hOu分かりました。ありがとうございました。
後、自分は>>481でもあります。
キー入力でのキャラの移動は無理でしたが、
フォームとクッキーを使ってならできました。
ただ、遅すぎて実用は難しそうです。
うpローダーがtxtでアップしても内容がhtmlになってしまうみたいなので、
ソースは表示→ソースで確認してください。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3719.txt
0553547
2007/03/01(木) 02:05:28ID:a/RduvQD再度考え直しました。以下の方法で実現できそうです。
1列の文字数を30と仮定して、30文字までを抜き出し
mb_strpos関数で改行を探し、あった場合、その位置までを
変数に格納、次のmb_strpos開始位置を改行のあったところから
30文字分を抜き出し検索、改行がなかった場合、抜き出した文字全てを
変数に格納、これを10回繰り返し、まだ文字が残っていた場合、
[続き]リンクを入れて終了。
しかし問題もありそうです。ブラウザの文字の大きさはそれぞれ違うし、
人によっても大きさを変えています。その場合の対処が
できそうもありませんが、それはそれとして置いときますw
あと、mb_strpos関数の挙動が不審なのも気になりますが、
文字コード等の問題かな?ま〜置いときますw
一応、事後報告として。。。^^;
0554nobodyさん
2007/03/01(木) 02:47:30ID:???改行も投稿内容のうちってことで
携帯ユーザーに多い改行しない投稿も携帯らしさってことでね
0555nobodyさん
2007/03/01(木) 06:33:32ID:???スレッドが消えちゃったんですが、掲示板に戻るで戻ったら、
このスレが再度見つかりました。これって何??
俺だけ?!
0556nobodyさん
2007/03/01(木) 06:38:46ID:???0557nobodyさん
2007/03/01(木) 06:59:15ID:???trim()は標準でスペースもタブも\rも削除するから多分大丈夫
>>538
Perlやってるやつが良く陥る罠
0558547
2007/03/01(木) 09:28:54ID:???文字数だけってことは
あ
い
う
って感じに入れられると、場合によってはすごい行数を
使ってしまう場合がありますよね?
それが嫌だったので、なんとかしようと思ってました。
全く手付かずで、1日悩んでしまいました ><
0560547
2007/03/01(木) 09:47:05ID:???投稿する人に負担になってしまうかもしれませんね〜^^;
でも投稿文字制限は1000文字なんですが、558のようにやると
すごい行数を表示してしまうので、やはりなんとかしたいですねw
行数を増やそうかな。。。
0561nobodyさん
2007/03/01(木) 10:02:39ID:???・N行までの改行数制限
・全体の最大文字数
でそれぞれ制限かけたら?
0562nobodyさん
2007/03/01(木) 10:34:22ID:???1000行表示されたところで自己責任だろ。そういうバカなユーザーは切り捨てろ
0563538
2007/03/01(木) 10:39:56ID:mfeLki9Qこれでうまくいきました。
ありがとうございました。
>>557
ご指摘の通りPerlやってるやつです。
本当にあり(ry
0564nobodyさん
2007/03/01(木) 10:44:44ID:???配列10個のstrlenの合計が規定値より多ければ字数で。
少なければ改行コードで。
ってのはどう?
0565547
2007/03/01(木) 11:06:34ID:???文字数の制限というより、改行の制限ですね。
文字は1000文字以内ならいくらでも問題ないですが、
改行がいっぱい入れられて、行数を稼がれることが問題です。
>>562
荒し対策は難しいですね〜^^;
レスポンスを考えると、今作ってる処理はforの中にfor文があって、
さらにifが多数。。。ほんとはやりたくないんですが。。
>>564
良さそうですね!改行コードでexplodeは素晴らしいかもw
もう少し煮詰めてみます。ありがとうございます!
0566nobodyさん
2007/03/01(木) 11:18:41ID:???別に正規表現使わずにstrpos()でするのが最適ですよね?
0567nobodyさん
2007/03/01(木) 11:35:01ID:???特定の1文字が何回含まれているか、になると
strposの場合ループ処理になるから微妙かな。
関数で一発処理できる場合はその方が速いことも多々ある。
0568547
2007/03/01(木) 11:43:08ID:???1列の文字数を30と仮定して、
>>546 さんの言われた改行コートでexplodeして配列格納。
配列ごとに、30文字以内ならそのまま表示用変数に文字格納して、
改行カウントを+1し、30文字より大きければ、
その時の改行カウント×30を300から引いた数値Aと比較し、
大きければその数値Aまでを表示して[続き]リンク表示して終了。
数値Aより少なければ、表示用変数に配列の文字を格納して、
(配列の文字数÷30)+0.99=改行カウント(整数部)とする。
改行カウントが10超えて配列に文字が残っていれば、
[続き]リンク表示して終了。
なんとかいけそうな感じです^^
mb_strpos関数が不審だったので、explodeでの処理はテストも減るし
大助かりですw ありがとうございます!
0570軟式PHP
2007/03/01(木) 11:46:21ID:???0571547
2007/03/01(木) 12:02:51ID:a/RduvQD私に言っていただいてると仮定して。。w
substr_count関数を使うということは、300文字までに
改行が10個あればそこまでを表示して、なければそのまま表示する。
という処理に使えますね。。。。あれ?使えるのかなw
9個なら30文字、8個なら60文字まで、1個なら270文字まで、
今まではこの関数だと、強制10行処理はムリと思ってましたがw
。。。しばらく考えます。レスありがとうございます!
0572nobodyさん
2007/03/01(木) 12:05:18ID:KfGKDn9N事務系<br>
IT系<br>
サービス・接客系<br>
介護・福祉系<br>
工場・作業系<br>
その他<br>
という物が入っている変数から
"サービス・接客系"をマッチさせようとすると、なぜか検知しません。
中身を変えて "サビス・接客系"で
erge("サビス" というように ー を抜かすとマッチするんですが
いったいどういうことでしょう?
0573547
2007/03/01(木) 12:09:24ID:a/RduvQD私に言ったのでなければ、すいませんw
substr_count関数だと最後の改行位置が分らないので
やはりムリと思います。いや〜昨日から悩みっぱなしですw
0574566
2007/03/01(木) 12:32:50ID:???ありがとうございます。
ttp://selfkleptomaniac.org/archives/44
この辺り読んでstrpos()が最適だと思いました。
そして567さんは日本語の理解力が足らないなとも思いました まる
0576547
2007/03/01(木) 13:09:15ID:a/RduvQDやはり。。すいません^^;
0578nobodyさん
2007/03/01(木) 14:00:04ID:Ji+dT1nkいや、この場合アンカーを付けない奴が悪い。君の対応は紳士的だと思うよ。
0579質問 ◆Hx0p2cgJeA
2007/03/01(木) 14:19:40ID:???あったのですが本当ですか?
0581547
2007/03/01(木) 14:25:27ID:a/RduvQDどうもです^^
でも自分の勘違いが周りも勘違いさせる可能性があるので、
一種の荒らしかもしれませんw
0582質問 ◆Hx0p2cgJeA
2007/03/01(木) 14:28:54ID:???では、一度インスタンス化したら、クラス内や関数内で
もう一度インスタンス化しないほうがよいのですね?
0583虚弱PHP
2007/03/01(木) 14:44:43ID:???どんな負荷要求があるのか…。
ひとまずインスタンスが使いまわせるなら、
Singletonパターンのようなもの使ったりすればいいと思う。
本来使いまわせないものを使いまわそうと工夫するぐらいなら、
パフォーマンスを犠牲にした方がマシだと思う。
PHPでのインスタンス化ってそんなに負荷かかるかな?
0584nobodyさん
2007/03/01(木) 15:11:33ID:???0586nobodyさん
2007/03/01(木) 17:36:06ID:???URLが正当なものかチェックするプログラムを書いているのですが、
URLに含めてはいけない文字列があったらfalseを返すか、
全てエンコードしてtrueを返すかどちらがいいのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています