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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/01/24(水) 22:10:29ID:???
PHPに関する質問用スレです。ここならお前の下らない質問に回答があるかも知れません。

まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 36
http://pc10.2ch.net/test/read.cgi/php/1168395610/

◆質問する時の注意
・ 自分の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
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
 しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0232nobodyさん2007/01/27(土) 22:13:49ID:???
>>226
少なくとも「ソ」と「表」にバックスラッシュ入ってる。
EUC-JPならもちろん無問題。
0233nobodyさん2007/01/27(土) 22:16:48ID:???
>>231 >>5
0234nobodyさん2007/01/27(土) 22:19:43ID:8H08hEUC
>>228
ピカソ がトラブルの原因ですか。。 そんなの想像も出来ないですね

アドバイスにしたがってEUCで対応しようと思いますが、
<meta http-equiv="content-type" content="text/html; charset=EUC">
で、
保存形式もEUCにしたのに、ローカルテストで化けています。
トクトクのレンタルスペースならちゃんと表示するのに…

そろそろウザイですね、、文字コード勉強しなおしてみます
皆さんありがとうございました。<(_ _)>
0235nobodyさん2007/01/27(土) 22:21:13ID:???
二次元配列をFOREACHを使わずに展開する方法ってありますか?
0236nobodyさん2007/01/27(土) 22:28:06ID:???
>>233 >>231
0237nobodyさん2007/01/27(土) 22:29:57ID:???
>>234
internalをEUCにする。
0238nobodyさん2007/01/27(土) 22:31:39ID:???
>>234
>そんなの想像も出来ないですね

(゚д゚)
0239nobodyさん2007/01/27(土) 22:33:10ID:???
>>235
print_r(藁
正直知らん。
二次元配列でも、配列の中の値はただの配列だから
普通にやればいいんじゃないかな。
辞典買ったけど、二次元配列用に便利な関数とかは特に無かったと思う。
0240nobodyさん2007/01/27(土) 22:34:30ID:???
>>235
array_mapで再帰的に。
0241nobodyさん2007/01/27(土) 22:37:15ID:???
>>238
最初は皆そんなもんだろ。
英語圏だったら良かったのにって何度思ったことか…

ところでユニコードでセキュリティの
大問題が発見されたみたいだけどPHPは大丈夫なのかな?
後で試してみるけど。
0242nobodyさん2007/01/27(土) 22:56:37ID:???
っていうかキーに日本語使うって普通なのか?
あんまりオススメできない気がするが
0243nobodyさん2007/01/27(土) 23:01:57ID:???
>>242
慣れてくればやらなくなる気もするし、
最初に使わないルールを覚えさせた方が後で苦労しない気もするw
0244nobodyさん2007/01/27(土) 23:02:29ID:u45Vq17A
"name , type, value, primary key(name,type)"
この文字列をsplitにより,で分割(ただしカッコ内は除外)するにはどういう正規表現にすれば良いですか
0245nobodyさん2007/01/27(土) 23:12:12ID:???
フォームのテキストボックスに記入して登録ボタンなどをクリックした場合の質問です。
普通は戻るボタンをクリックすると先ほどの文字が記入したままになっているのですが
フォームのphpファイルでセッションを使っていると記入した文字が消えてしまいます。
記入したままにするにはどうしたらいいでしょうか?
よろしくお願いします。
0246nobodyさん2007/01/27(土) 23:22:46ID:???
>>245
クライアントのリクエストに対して
動的に生成するページでは
戻るとフォームは空になる

POST して戻らせるようにすればいい
0247nobodyさん2007/01/27(土) 23:40:55ID:SMgvGaRS
PHP5.2.0にしたら環境変数$_ENVが取得できなくなってるぽい
(俺鯖のメールをPHPに渡して処理させるスクリプトで)
ほかに同じ人いますか?
0248nobodyさん2007/01/27(土) 23:44:18ID:???
>POST して戻らせるようにすればいい
どゆこと?
0249nobodyさん2007/01/27(土) 23:45:37ID:???
>>244
その文字列なら楽勝
split(', ', "name , type, value, primary key(name,type)");
0250nobodyさん2007/01/27(土) 23:45:47ID:???
>>247
仕様です
環境変数はgetenv関数で取得しましょう
0251nobodyさん2007/01/27(土) 23:46:33ID:???
>>248
フォームに戻るボタンを設置してPOSTさせる
よく見かけるだろ
02522472007/01/27(土) 23:56:48ID:SMgvGaRS
>>250
ええっ
そうなんですか?
$_SERVERに同じのがセットされてるようなのでそれで間に合わせましたよ
getenv関数は思いつかなかった
サンクスです

#もしかしてqmailの設定いじることになるのかと思って頭が真っ白になった
#しかしなんでこう覚えておくのが多いのか
#昔やった設定なんか綺麗サッパリ忘れとるがな
02532452007/01/28(日) 00:29:50ID:???
よくわからないんでソースいただけませんか?一応自分で教えてもらったことで動くか確認したいです。
02542442007/01/28(日) 00:40:37ID:???
(´・ω・`)
0255nobodyさん2007/01/28(日) 00:40:45ID:DJ+K1g0b
>>186-187
それは腕のないプログラマーの話じゃない?
俺が今修正させられてるサイトは、バカが作ったプログラムだから、フォームが全部POST。
ちゃんと考えて作られてれば問題ないんだけど、ユーザーがブラウザの戻るボタンを押したら
二重注文とか、エラーで最初からやり直しとか、操作は最後まで完了できてるけど
予約が入ってないとか、そんなんばっか。

腕がないんだったら(ユーザーがどんな操作をするか予測する能力がない)、最初からGET
で作って、GETで操作されても問題ないフォーム作りを心がけた方がいい。
3つぐらいステップアップできるよ。
0256nobodyさん2007/01/28(日) 00:43:50ID:???
>>253
http://www.bulldog.co.jp/
0257nobodyさん2007/01/28(日) 00:45:06ID:???
ねえ、からかってますか?
0258nobodyさん2007/01/28(日) 01:21:00ID:???
>>245
入力ページの次の画面で、フォームの値をセッションに入れているなら、

もとの入力ページを表示する際に、セッションから値を引いてフォームに入れる。
セッションに値が無い時(そのページに初めて来た時など)は、デフォルト値を入れる。
ブラウザのキャッシュは切る。
0259nobodyさん2007/01/28(日) 02:05:07ID:???
それ、ちょっとフォームの項目変えたらいちいちセッションも変更しなきゃいけないし
超めんどくさい
それと、253は245じゃありません

>>253
いい加減にしろよ
IPアドレス見えてないとでも思ってるのか
0260nobodyさん2007/01/28(日) 02:12:01ID:???
自演乙
0261nobodyさん2007/01/28(日) 02:18:50ID:???
技術系のスレで
IP でんでん(なぜか変換できない)言っても
釣られるやつはいないだろ
0262nobodyさん2007/01/28(日) 02:18:53ID:???
>>260
妄想乙
0263nobodyさん2007/01/28(日) 02:25:07ID:???
乙乙
0264nobodyさん2007/01/28(日) 02:48:58ID:???
>>261
「でんでん」のパターンははじめて見たな。


しかし居るんだな、技術系スレでも。
0265nobodyさん2007/01/28(日) 02:50:49ID:???
ここは質問スレだし初心者も結構居るんじゃない
0266nobodyさん2007/01/28(日) 02:58:09ID:???
ネタに初心者も糞もn(ry
0267nobodyさん2007/01/28(日) 03:06:54ID:???
>>264
技術系スレがどうした?
おまえのようなたいした技術もないやつの集まりだろここはw
0268nobodyさん2007/01/28(日) 03:13:10ID:???
なんか可哀相な奴が湧いてるな
0269nobodyさん2007/01/28(日) 05:32:59ID:???
先頭から5文字を抜き取るにはどうしたらいいでしょうか?
例えば
$a = "abcdefg";
ならabcdeを抜き取って
$a = "fg";
にしたい。
0270nobodyさん2007/01/28(日) 05:38:27ID:???
>>269
$a=substr("abcdefg",5);
0271nobodyさん2007/01/28(日) 10:15:08ID:???
>>268
あっ?かわいそうなのはテメェだろwwwwwwwwww
今、お前のIP抜いて解析かけてるから、覚悟しろよww
お前の個人情報をここにさらしてやるよwwwwwwwwww

謝るならいまのうちだぞwwwwww後で泣きっ面するなよ!低脳君wwwwwwwwwwwwwwwwwwww
0272nobodyさん2007/01/28(日) 10:40:41ID:???
もう春休みだっけ?
0273nobodyさん2007/01/28(日) 11:38:52ID:???
オワタ
0274nobodyさん2007/01/28(日) 11:47:15ID:???
環境:FreeBSD6.1 Apache1.3.37 PHP4.4.4

新しくPHPスクリプトのページを追加するために
同じ場所に置いててちゃんと動作してるPHPスクリプトから
MySQLコネクトをしてる数行だけコピペしてきたらいきなり新しい方のPHPが動かなくなって
まったく同じ内容を手入力したら動いたんだけど
こんな経験ある人居る?

原因がさっぱりわからんですごく気持ち悪くて
原因わかれば教えて欲しい

コピペした内容は↓
require "php_config.php";
$link = mysql_connect($sql_server, $sql_user, $sql_user_passwd);
mysql_select_db($web_database_name);

このたった3行だけ
コピペする前に新しい方のPHPに書いてたのはprint文2行だけ
で、コピペしたら動かなくなって(エラーとか表示無しで、printも実行されてない)
この3行とまったく同じのを手書きしたら動いた

もうさっぱりワケワカンネ
0275nobodyさん2007/01/28(日) 12:03:43ID:???
改行コードじゃね?
0276nobodyさん2007/01/28(日) 12:12:35ID:???
>>274
コピペ時に全角スペースでも混入してたんじゃないかな。
エディターによっては気が付かない。
0277nobodyさん2007/01/28(日) 12:13:56ID:???
ソース表示して比較すればいいと思うよ
0278nobodyさん2007/01/28(日) 12:30:01ID:???
>>274
PHP4.4.4でFreeBSD6.1、APACHEが1.3.37って
ひょっとしてさくらの共有サーバー?

PHP5で個人的なサイト作りたいんだけど
専用借りるのも高いし、自鯖じゃ電気代かかるし
良いとこないかな。
0279nobodyさん2007/01/28(日) 12:32:21ID:???
>>278
俺はXREAのPHP5サーバを使ってる
それなりに快適
0280nobodyさん2007/01/28(日) 13:10:52ID:???
>>279
名前知ってたけど調べてなかった
ありがトン
0281nobodyさん2007/01/28(日) 14:06:01ID:???
PHPでのMVCパターンによるWebアプリケーションの開発は効率が良いの?
いろいろ批判とかもあるけど・・・
0282nobodyさん2007/01/28(日) 14:34:20ID:???
個人でやる分には好きにしろとしか
0283nobodyさん2007/01/28(日) 14:46:43ID:???
var_dumpで変数を調べたら
string(0) ""
と帰ってきました。これは空の変数ではないんでしょうか??

issetやemptyなどの関数では値があると帰ってきてしまいます。
ifとかで条件分岐するにはどうしたらいいんでしょうか・・・
0284nobodyさん2007/01/28(日) 14:52:00ID:???
>>283
$a = "";
if($a == ""){
print "空白だよ";
}
0285nobodyさん2007/01/28(日) 14:58:08ID:???
>>283
まず、「string(0) ""」は、「文字列型で長さが0、実際の値として""」を意味す。

それが、issetやemptyでどう評価されるかと言うと、
ttp://www.php.net/manual/ja/types.comparisons.php
のようになる。
0286nobodyさん2007/01/28(日) 15:02:04ID:???
>>284
>>285
ありがとうございます
0287nobodyさん2007/01/28(日) 15:08:30ID:???
>>275
それは思ったんですが、どっちも文字コードEUCの改行LFのみでやってるんですよね
念のためバイナリエディタで見てもちゃんと0Aでしたし

>>276
使用エディタは秀丸で、タブ・半全角スペースは表示するように設定してるので

>>277
目が痛くなるくらい眺め回しました
ブラウザに表示されたもののソースは見ても意味無いので見てませんが

>>278
そです
さくらのFAQ見ても改行コードとか文字コードとかしか書いてなくて、イマイチすっきりしません・・・

ttp://www.appletz.jp/ とかどうですか
確かPHP5使えたはずですが
さくらほど安くないですけどね・・・
0288nobodyさん2007/01/28(日) 15:10:10ID:???
>>287
そもそもコピペってなんでやったの?
秀丸?
0289nobodyさん2007/01/28(日) 15:59:41ID:lDMu9zNs
誰かココ入って(o>ω<o)

http://mbga.jp/AFmbb.rTGw28263c/
0290nobodyさん2007/01/28(日) 16:50:02ID:???
>>288
そです
0291nobodyさん2007/01/28(日) 16:57:47ID:???
つdiff
0292nobodyさん2007/01/28(日) 16:58:15ID:???
コピペ時に間違って括弧か;消してるとか?
それ以外なら動くっしょ。

コピペして文字コード変わってるとか?
直接打ってるのと違うとしたらここら辺ぽいけど
日本語入って無いなら関係ないよな。

多分、なんかしら勘違いだと思うけど。
0293nobodyさん2007/01/28(日) 17:26:37ID:???
マルチバイト文字が含まれてなければ、文字コード変わっても大丈夫だよね
やっぱなんか勘違い?

まさか

require "php_config.php";
$link = mysql_connect($sql_server, $sql_user, $sql_user_passwd);
mysql_select_db($web_database_name);

ってprint含まれてないけど・・
0294nobodyさん2007/01/28(日) 17:39:13ID:???
php_config.phpを置いてないとか言ったら怒るぞ
0295nobodyさん2007/01/28(日) 17:41:54ID:???
>>274
1. ツール使ってファイルを比較しろ
2. パーミッションを確認しろ
3. エラーが起きたら分かるようにしろ(display_errors設定しろ)
4. 下らねぇ質問はここに書き込みやがれ
0296nobodyさん2007/01/28(日) 17:47:04ID:???
いや、>>293のまさかの通りで
コピペ時に丸ごとprint文消しちゃったんだろw
これなら白紙でエラーが出ないのも納得だ。
requireは最初に書くことが多いし間違いないと思う。

requireの失敗はwarningじゃなくてfatal errorだから
さくらの通常設定時でも表示される様な気がする。

もうね、あほかと馬鹿かと…
0297nobodyさん2007/01/28(日) 17:55:51ID:s3/X511e
ある文字列があり
その文字列のうちある文字列が入っている以降のデータをほしい場合とかどうしたらいいでしょうか?

例えば$str='abcdefgh';があってdefという文字列以降がほしい場合とか。

0298nobodyさん2007/01/28(日) 17:59:34ID:???
strstr()
0299nobodyさん2007/01/28(日) 18:03:17ID:/Lwtdyv9
preg_replace('/^.*?(?=def)/s', '', $str)
03002972007/01/28(日) 18:10:10ID:s3/X511e
ありがとうございました。
0301nobodyさん2007/01/28(日) 19:07:21ID:???
そんな質問毎回するぐらいなら、関数の逆引き本買ったほうがメチャクチャ早い気がするが・・・
0302nobodyさん2007/01/28(日) 19:15:59ID:CE5BMVcn
time();から現在の時間を取得したい場合はどうしたらいいでしょうか?
0303nobodyさん2007/01/28(日) 19:18:17ID:???
マニュアル嫁
ttp://www.php.net/manual/ja/index.php

で「関数一覧」
03043022007/01/28(日) 19:28:52ID:???
追記
たとえばここのアドレス
1169644229を○月○日○時○分に変換することは可能でしょうか?
0305nobodyさん2007/01/28(日) 19:33:23ID:???
>>304
可能
0306nobodyさん2007/01/28(日) 19:35:28ID:???
date('m月d日H時i分','1169644229')
0307nobodyさん2007/01/28(日) 19:35:56ID:???
dateでできる。大抵のPHP入門書の最初の方に出てくる。
SJIS環境で年とかをdate関数に入れて整形しようとすると
date関数がマルチバイトに非対応の為、文字化けするから工夫が必要。
03083022007/01/28(日) 19:45:28ID:???
>>305
そっか

>>306様>>307さん
ありがとうございました
03093072007/01/28(日) 19:46:58ID:???
>>308
お前首つって死ねよ。
0310nobodyさん2007/01/28(日) 20:09:49ID:???
>>292,293,296
そのへんは無いです
目が痛くなるほどしらみつぶしに見て確認済み

>>295
1. 例の3行以外まったく違うので・・・ファイルの一部だけ比較できるツールとか知らないので・・・
2. 755です、てか転送直後の644でも動きます
3. もともとONなの、phpinfo()で確認済み&エラー表示無しの白紙です
4. 今この辺
0311nobodyさん2007/01/28(日) 20:54:20ID:???
とりえあずそのふてぶてしい態度はやめたら?
0312nobodyさん2007/01/28(日) 21:15:57ID:???
>>310
>>294は?
0313nobodyさん2007/01/28(日) 21:31:30ID:???
>>307
date()がマルチバイトに対応とかそんな問題じゃない。
2byte目が5cだから。
0314nobodyさん2007/01/28(日) 21:41:38ID:???
phpでウェブアプリケーションは簡単に作れますか?
0315nobodyさん2007/01/28(日) 21:58:35ID:???
はい。
0316nobodyさん2007/01/28(日) 22:02:23ID:???
ではどういったサイトを参考にすればいいんでしょうか。
具グッ太限りではテンプレートみたいなのに沢山種類があって、
困ってしまいます。
0317nobodyさん2007/01/28(日) 22:09:16ID:???
IDださない質問者は回答スルーでおねがいします。
0318nobodyさん2007/01/28(日) 22:32:27ID:sRWETkcM
ではどういったサイトを参考にすればいいんでしょうか。
具グッ太限りではテンプレートみたいなのに沢山種類があって、
困ってしまいます。
0319nobodyさん2007/01/28(日) 22:34:03ID:CE5BMVcn
DBに時間を登録して
その時間になるとメールを送信したい。
のですが、どうやるとできるでしょうか?
0320nobodyさん2007/01/28(日) 22:36:59ID:???
>>318
とりあえず本家マニュアル http://www.php.net/manual/ja/

>>319
cronとかで定期的にDBをチェックしてメールを送るスクリプトを呼び出す
0321nobodyさん2007/01/28(日) 22:51:54ID:???
>>320
もうちょっとましな回答しなよ
03223202007/01/28(日) 22:56:24ID:???
断る
0323nobodyさん2007/01/28(日) 22:57:30ID:???
>>318
何もわからんやつはとりあえず本屋行って入門本を立ち読みして選んで買って来い
リファレンスは本家のサイト行け
0324nobodyさん2007/01/28(日) 23:29:59ID:40Chmc0U
配列を関数に入れてvar_dumpしても中身が入っているのに
配列の中身をechoするとなぜか中身が全部 a になってしまう現象に心当たりのある人いませんか?
0325nobodyさん2007/01/28(日) 23:30:43ID:???
スレ違いだったらすみません。
現在MySQL3を使っているのですが、そのままバージョンを5に上げても大丈夫ですか?
0326nobodyさん2007/01/28(日) 23:33:42ID:???
>>325
作り方によるね。
特に文字化けについては結構面倒くさいよ。
テストに時間をかけるべし
0327nobodyさん2007/01/28(日) 23:36:03ID:???
>>326
文字化けについては
UTF-8からUTF-8
EUC-JPならEUC-JPで保存しています。

それをphpMyAdminで閲覧、編集しています。
phpMyAdminはいろいろな文字コードでページを切り替えてるのですが、
これは邪道なのでしょうか・・・?
0328nobodyさん2007/01/28(日) 23:44:13ID:???
>>324
御託はいいからソースを貼れ
0329nobodyさん2007/01/29(月) 00:01:59ID:???
>>327
とりあえず、挑戦してみて下さい。
0330nobodyさん2007/01/29(月) 00:12:31ID:pElYphps
>>328
$ary = file_get_contents($file名);
$ary = unserialize($ary); //配列の中身は$ary[url] = "http://www.google.com"; $ary[name] = "google"
function hoge($ary);


function hoge($ary){
  var_dump($ary); // ここは配列の内容が出る
  echo $ary["url"]; //ここは a と表示される。
}

生ソース貼ろうにもファイルとか他の関数とかあるからどうしたものだか・・・
0331nobodyさん2007/01/29(月) 00:50:57ID:???
>>330
試してみたが、aなんて表示されなかった。

<?php
$a = array('url' => "http://www.google.com";, 'name' => 'google');
file_put_contents('tmp.txt', serialize($a));
$ary = unserialize(file_get_contents('tmp.txt'));

var_dump($ary);
echo $ary['url'], "\n";
hoge($ary);

function hoge($ary)
{
var_dump($ary);
echo $ary['url'], "\n";
}
■ このスレッドは過去ログ倉庫に格納されています