【PHP】下らねぇ質問はここに書き込みやがれ 65
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/02/24(日) 21:03:17ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 64
http://pc11.2ch.net/test/read.cgi/php/1202536271/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0290nobodyさん
2008/03/03(月) 14:08:16ID:???お前の言うキリバンはいったいいくつのカウントになるんだ?
そのカウントだったらキリバンと表示すればいいんじゃね?
0292nobodyさん
2008/03/03(月) 14:58:46ID:ut4WA0El$title = $item[title];
こいうのは
$title = $item['title'];
↑こういう風に書いた方が良いんですか?
0293nobodyさん
2008/03/03(月) 15:01:42ID:???0294nobodyさん
2008/03/03(月) 15:02:04ID:???その辺詳しくないから曖昧な回答になるが了承くだしあ
上記はまず定数であるかどうか判別される
下記は文字列としてそのまま行く
上記の場合の定数であるか判別する余計な処理があるので下記のほうがいい
また、「title」って定数が合った場合そっちの値が優先されてしまう
0295nobodyさん
2008/03/03(月) 15:45:12ID:HPgcFf+Yありがとうございます
0296nobodyさん
2008/03/03(月) 16:42:21ID:a83ZZyILくだすれぐらいしか聞くとこがなくて。
こんな風に書かれた時間から年月日を取り出す場合
皆さんならどう取り出しますか?
とりあえず3パターン考えてみた。
| $str = "2008-11-08 22:12:25";
|
| //パターン1
| $array = split("-",$str);
| $day = substr($array[2],0,2);
| echo $array[0]."年".$array[1]."月".$day."日";
|
| //パターン2
| $year = substr($str,0,4);
| $month = substr($str,6,2);
| $day = substr($str,9,2);
| echo $year."年".$month."月".$day."日";
|
| //パターン3
| $array1 = split(" ",$str);
| $array2 = split("-",$array1);
| echo $array[0]."年".$array[1]."月".$array[2]."日";
0297nobodyさん
2008/03/03(月) 16:44:38ID:???0298nobodyさん
2008/03/03(月) 16:47:10ID:???引数の書き方が自由すぎてバグの元だよ。
どうして、こんなひどい設計したんだよ。
0299nobodyさん
2008/03/03(月) 16:58:50ID:???0300nobodyさん
2008/03/03(月) 17:00:37ID:???こういう似非プログラマーが日本の中枢にいるから、
この業界の単価が下がっているんだろ。
生活できねーよ。
0301nobodyさん
2008/03/03(月) 17:15:53ID:???似非プログラマー論になる話の流れがわからん。
俺は時と場合に応じた道具の使い分けが出来ません、って告白?
0302nobodyさん
2008/03/03(月) 17:17:07ID:???strtotimeを使う分には問題ないと思うんだがどうだろう
0303296
2008/03/03(月) 17:29:37ID:a83ZZyIL確かにこれは便利ですね。
一応自分が今使おうと思ってるのは
データベース内に格納されてるのを判別するので
多分strtotimeで問題はありません。
しかしバグがあるというのは問題ですね。
使いどころを間違えないように使用したいと思います。
ありがとうございました。
0305nobodyさん
2008/03/03(月) 19:37:52ID:BS/MlDiQ[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
な配列を
array(3) {
[1]=>
int(2)
[0]=>
int(1)
[2]=>
int(3)
}
な配列にしたいんだけど、どうすればいいのだろう?
0306305
2008/03/03(月) 19:41:59ID:BS/MlDiQやりたい事を言葉にすると、配列のキーと値の関係を保持しながら、
要素の場所を入れ替えたり、好きな場所に移動させたいということです。
0307nobodyさん
2008/03/03(月) 19:58:05ID:???0308305
2008/03/03(月) 20:35:02ID:o2rZ954m>>307
もちろんマニュアルは見たのだけど、いまいちうまい事やる方法が
思い浮かばなくて質問しました。
0309287
2008/03/03(月) 20:36:48ID:???あざーす!!
ばっちり解決できました。
ありがとうございます!
03102050
2008/03/03(月) 20:50:47ID:1O+7QDSJこの度、JAVASCRIPTを含む記述で壁にぶち当たってしまいました。
<?php
print "<input type='submit' value='送信' onClick='return confirm('送信します');'>";
?>
と、フォームのボタンを押すと、JAVASCRIPTでメッセージが表示されるように
したいのですが、シングルクォートの中に、さらにJAVASCRIPTのシングルクォート
が来るのが原因のようで動作しません。
どうしたらいいものでしょうか?
0311nobodyさん
2008/03/03(月) 20:58:38ID:???print "<input type='submit' value='送信' onClick='return confirm(\"送信します\");'>"
javascript と html の話でPHPあんまり関係ないよ。
0312nobodyさん
2008/03/03(月) 20:59:01ID:???エスケープって知ってるかい?
っていうかそこはPHPから抜けて書きなよ。
<?php
〜
?>
<input type="submit" value="送信" onClick="return confirm('送信します');">
0313nobodyさん
2008/03/03(月) 21:09:41ID:???php関係ないけど\でエスケープ
>>308
array_spliceやarray_sliceなど。
ただ連想配列を使っておきながら順序を気にするというのはあまりいただけない
03142050
2008/03/03(月) 21:15:48ID:???ご丁寧に有難うございます。
実は、これを変数として格納し、別のtxtファイルに出力し、
さらに別のPHPファイルからこのtxtを読み込みます。
一度試してみます。有難うございました。
03152050
2008/03/03(月) 21:21:05ID:???正しくできました。有難うございます!
0316305
2008/03/03(月) 21:35:13ID:o2rZ954mそうですね。僕としても連想配列はたまたま順序を保持する実装になっているだけ、
という認識で、基本的にはハッシュでもいけるような使い方をするようにしています。
で、教えていただいた関数ですが、うまく使えば良い感じに出来るんじゃないかとは思いますが、
いまいち使い方がよくわかりませんorz もっと精進します。ありがとうございました。
追伸 : 拙作を貼付けておきますので、添削等していただけるとありがたいです
function hoge($array, $p1, $p2) {
$ret = array(); $v_p = array_values($array); $k_p = array_keys($array); $c_p = 0;
foreach($array as $k => $v) {
if ($i == $p1) {
$ret[$k_p[$p2]] = $v_p[$p2];
$i++;
continue;
}
if ($i == $p2) {
$ret[$k_p[$p1]] = $v_p[$p1];
$i++; continue;
}
$ret[$k] = $v; $c_p++;
}
return $ret;
}
0317305
2008/03/03(月) 21:36:28ID:o2rZ954m0318nobodyさん
2008/03/03(月) 21:43:03ID:bM6XDXSb時々こんなソースが暗がりから飛び出てきて
3時間ぐらい仕事する気を無くすんだが。
print "<body bgcolor=\"#99ccff\">"
print " <form action=\"./index.php\" method=\"post\" name=\"PRadioList\" id=\"PRadioList\">"
print " <table width=\"250\" border=\"1\">"
print " <tr>"
print " <td width=\"30\"><div align=\"center\"><input name=\"radioBtn\" value=\"0\" type=\"radio\" id=\"qf_ad7dfc\" /></div>"
print " <td>たぬき</td>"
print " </table>"
print " <table width=\"250\" border=\"0\">"
print " <tr>"
print " <td align=\"center\">"
print " <input name=\"submit\" value=\"送信\" type=\"submit\" />"
print " </td>"
print " </tr>"
print " </table>"
print " </form>"
print "</body>"
0319nobodyさん
2008/03/03(月) 21:57:31ID:???0320nobodyさん
2008/03/03(月) 22:02:46ID:???0321nobodyさん
2008/03/03(月) 22:08:23ID:???それはなんちゃってPHPerが書いたPerler?が書いたソース
普通はこう書く
?>
<body ~>
-中略-
</body>
0322nobodyさん
2008/03/03(月) 22:09:20ID:???0323nobodyさん
2008/03/03(月) 22:15:53ID:???0324nobodyさん
2008/03/03(月) 22:28:33ID:???0325nobodyさん
2008/03/03(月) 22:32:55ID:???さすがにそんなのは稀すぎる
連結してるのはたまに見るが
print "hoge"
. "hoge"
. "hoge";
ていうかhtmlに組み込めるんだから、viewは普通にhtmlで書けっていう話
つまり>>323
0327nobodyさん
2008/03/04(火) 00:02:06ID:???0328お願いします。
2008/03/04(火) 00:52:40ID:G7JIaGfrqmail(・・・※)設定済みのLinux(CentOS5)に移行した上で
実行したのですが正常に送信先に届きません。
(また、php側でエラーは発生しません。)
【ソース】
if( mb_send_mail($addressTo, $subject, mb_convert_encoding($message,"shift_jis","shift_jis"),$header) )
{
#この部分に正常に入ります。
print("送信完了しました。");
}
else
{
print("エラー:送信に失敗しました");
}
【Linuxmメールサーバ構築参考サイト】
http://centossrv.com/qmail.shtml
0330お願いします。
2008/03/04(火) 01:21:47ID:G7JIaGfrLinux版は、次のコマンドでWEBサーバを構築して、恐らくApacheだと思われます。
yum -y install httpd
再度、作成したテストページよりメールを送信した結果、apacheのログファイルを見てみると
次の様なエラーが表示されていました。
【error_logの内容】
[Tue Mar 04 01:19:02 2008] [error] [client 127.0.0.1] File does not exist: /var/www/html/index.css, referer: http://localhost/FI.html
[Tue Mar 04 01:19:02 2008] [error] [client 127.0.0.1] File does not exist: /var/www/html/css, referer: http://localhost/FI.html
[Tue Mar 04 01:19:03 2008] [error] [client 127.0.0.1] File does not exist: /var/www/html/index.css, referer: http://localhost/SendMail.html
[Tue Mar 04 01:19:03 2008] [error] [client 127.0.0.1] File does not exist: /var/www/html/css, referer: http://localhost/SendMail.html
0331nobodyさん
2008/03/04(火) 01:32:39ID:???sendmail_pathはおk?
もちろんphpインストール時にqmailにしたよな?
とりあえずmail()でやってみ
0332お願いします。
2008/03/04(火) 01:36:30ID:G7JIaGfr再度メールをWEBページより送信してみたところ、エラーログには何も表示され
なくなりました。
送信先メールアドレスには、自宅(hogehoge@m2.gyao.ne.jp)
を指定しています。
また、CentOS5に付属のメール送信ソフトより自分のメールアドレス
にメールを送信したところ正常にメールは届きます。
※また、143番ポートは正常に開放されています。
0333nobodyさん
2008/03/04(火) 01:37:53ID:KsHjc6mm変換したいのですが、どうすればいいのでしょうか?
やはり分解して、mktimeにするしかないのでしょうか?
0334お願いします。
2008/03/04(火) 01:44:49ID:G7JIaGfrphpのインストールについては「LAMサーバ構築」という雑誌を
参考にしてインストールしてました。。。
php.ini 内でメールサーバ回りの詳細な設定は行っていませんでした
ので、ちょっと設定ファイルを確認してみます。
0337お願いします。
2008/03/04(火) 01:50:57ID:G7JIaGfr[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
; For Win32 only.
;sendmail_from = me@example.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = /usr/sbin/sendmail -t -i
↑
メールサーバを、qmail に変更したので上の記述を変更する必要がある様
に思うのですが具体的にはどうすれば良いでしょうか?
お教え願います。
0338nobodyさん
2008/03/04(火) 02:04:06ID:???そこまでわかっててまだ何を聞くつもりだ
sendmail_path = qmailのパス
にしてapache再起動してみ
それでもわからなかったらちゃんと初心者スレ行くかあきらめろ
0340お願いします。
2008/03/04(火) 02:27:07ID:G7JIaGfr0342nobodyさん
2008/03/04(火) 08:40:33ID:???特権無しになりました
直し方教えてください
連たる鯖なのでコンソールが開けない状況です
0343nobodyさん
2008/03/04(火) 10:20:42ID:xFHlt45Mで、全て./index.phpで実行しているのですが、
__FILE__で取得すると、URLではなく実際に稼動しているスクリプトが表示されますよね。
これはサーバー依存なのでしょうか?
ブラウザによって変化するのであれば__FILE__の使用を控えようと思うのですが・・・。
0344nobodyさん
2008/03/04(火) 11:07:59ID:???qmailのsendmail-wrapperが /var/qmail/bin/sendmail とか、/optの下あたりにないかい?
which sendmailするとどうなる?
付属のメーラって奴はローカルホストのSMTPで送信するの? それともsendmailコマンドを叩くの?
そもそも送れないってどういうこと? バウンスは返る?
つか、当然最初にメールログは確かめたんだろうね?
謎だらけの質問しやがって...
0345343
2008/03/04(火) 11:41:43ID:xFHlt45M__FILE__も鯖側の処理と勝手に判断してみます・・・。
別の質問なのですが、
func_get_argsで引数を配列として返しますが、
逆の場合は可能なのでしょうか?
配列をリストにするlistという関数がありますが、
引数の数が不特定なので困ってます。
0346nobodyさん
2008/03/04(火) 11:43:37ID:HRhAVQ3q動かしてみたら
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\cake\app\config\routes.php:1) in C:\xampp\htdocs\cake\cake\libs\controller\controller.php on line 447
というのが出て動きませんでした。
何がおきてるんでしょうか。
windowsXPにxamppをいれて、htdocsにそのままcakeを入れてます。
あぱっちの設定とかは一応したつもりなんですが。
誰か教えてください。
0347nobodyさん
2008/03/04(火) 11:43:47ID:???__LINE__はその行番号。
0350nobodyさん
2008/03/04(火) 11:46:05ID:xFHlt45M「実行しているファイル名(__FILE__)」のパスを、
クライアントサイドで判断しているのかサーバーサイドで気になっただけです。
__LINE__はサーバーサイドでしか判別できないので、__FILE__も同じと見ていいんですよね。
ってことが知りたかっただけです。
0351nobodyさん
2008/03/04(火) 11:48:31ID:HRhAVQ3q>>348
すいません。
BOMってなんでしょうか。
googleでしらべたらunicodeがなんとかと書いてありました。
コレでしょうか?
0352nobodyさん
2008/03/04(火) 11:50:46ID:???UTF-8で保存しているつもりでも、
UTF-8Nという形式で保存していることがある。
UTF-8Nの場合、先頭に3バイト変なものがくっついていて (ごめん、3バイトの内容は詳しく知らない)
headerを実行する前にそれが先に出力されてるから、headerでエラーが出てしまう。
0353nobodyさん
2008/03/04(火) 11:51:10ID:HRhAVQ3qいま確認してみました。
大丈夫でした。ありがとうございます。
0354nobodyさん
2008/03/04(火) 11:53:56ID:HRhAVQ3q文字の関係は何回も挫折しているところです。
どう対処すればいいですか。
なんとなく方針を教えて頂けませんでしょうか?
0355nobodyさん
2008/03/04(火) 11:56:54ID:???何のエディタ使ってるよ
とりあえずTeraPadでいいから起動してみて文字コードが何になってるか調べてみれ
0356nobodyさん
2008/03/04(火) 12:06:54ID:HRhAVQ3qTeraPadを使っています。
文字コードはUTF-8です。
保存改行コードが自動になっていました。
これが原因でしょうか?
0357nobodyさん
2008/03/04(火) 12:18:26ID:???ファイル->文字コード指定再読み込み
これでShiftJISにしたら文字化けするよな
そのときに<?phpの前に変な文字化けないか?
0358nobodyさん
2008/03/04(火) 12:20:21ID:HRhAVQ3qhttp://www.kashim.com/kanjitranslator/index.html
↑これになんでもかんでもぶっこんで変換したらいけました。
どうやら追加で書き込んだものがBOMありになっていたようです。
絶対自分では解決できませんでした。ありがとうございます。
0359nobodyさん
2008/03/04(火) 12:25:30ID:HRhAVQ3qBOMありにしてEUCにしたときに「鏤深?php」となっていました。
いまいちBOMがなんなのかはよくわかりませんがこういうことがあるんですね。
勉強になります。ありがとうございました。
0360nobodyさん
2008/03/04(火) 12:38:35ID:???一つは客の気まぐれ。そして、もう一つはSEの見通し不足。
今話題になっている話に例えれば、
日本の最高裁判所が出して判断が後になって間違ったことに気付いたが、
一事不再理の原則によって、判決の変更はできない。
そこで、主権が違うアメリカに依頼してもう一度裁判をやってもらうことにした。
たしかに、法理論的には裁判権はアメリカにあるし、他国の一事不再理による制約を受けないことは言うまでもない。
しかし、国権の最高機関である最高裁判所が出した判決を日本政府の勝手な仕様変更で、
アメリカの手を借りて裁判をやり直すことができるのか。
私は、鳩山邦夫法務大臣にこの件について聞いてみたくなった。
0364nobodyさん
2008/03/04(火) 14:03:01ID:???Aサーバにあるディレクトリを丸ごと、別のBサーバにアップしたいです。
PHPで出来ますか?
Aサーバのログイン情報とBサーバのログイン情報は持ってます。
0366nobodyさん
2008/03/04(火) 15:07:32ID:???webプログラマーの技術レベルはなんでこんな低いんだろう。
同じ経験年数のwebプログラマーとネットワークエンジニアで比較すると、
明からにレベルが低い。webは、適当にやっていても動くことは動くからか?
このスレだけかと思ったが、Javaスレでの議論もレベル低すぎ。web全体がまだまだ。
0367nobodyさん
2008/03/04(火) 15:11:51ID:???0368nobodyさん
2008/03/04(火) 15:13:33ID:???ウェブなんてほんの10数年前に生まれたようなものだからな。
色んなものが変わりまくっているのだから仕方が無い話。
あとウェブが適当のやっていても動くものと勘違いしている人。
そう考えている人もレベルが低い。
0369nobodyさん
2008/03/04(火) 15:22:14ID:???> そう考えている人もレベルが低い。
いやむしろお前のレベルが。
ネットワーク負荷を全く考えないプログラム。(ネットワークエンジニアの努力が水の泡)
セキュリティーが穴だらけのプログラム。(ネットワークエンジニアの努力が水の泡)
メモリー浪費しまくりのプログラム。(余計なHWの出費。コスト意識の低さか?)
HTMLの仕様のいい加減さ。ブラウザ制作会社の実装が悪いらしいが。
・・・
0370nobodyさん
2008/03/04(火) 15:27:41ID:???一番高いのは人件費なんだから、ハードウェアで細かい事言う時代じゃないお( ^ω^)
0371nobodyさん
2008/03/04(火) 15:27:48ID:???処理速度を全く気にしないプログラム。
この画面が重くてもしょうがない、とか訳ワカメです。
動けばいいで飯を食べていけるwebの技術者って何?
バグばっかりだし。こんな奴らと組んで仕事すんのストレスたまるわ。
0373nobodyさん
2008/03/04(火) 15:31:23ID:???ネットワークは基盤、WEBプログラムは娯楽も含む幅広さがある。
基本的に基盤に遊びもミスも許されない、娯楽は何でもあり。
相対的にミス出来ない基盤には能力が高い人しか生き残れない。
WEBプロウグラムは上から下まで裾野が広い。
役割の違いだろ。
比べるもんでもない。
大体人の仕事をうんぬん言う奴なんて、その程度。
0374nobodyさん
2008/03/04(火) 15:46:26ID:???ネットワークのリンク切れ → 全然繋がんねーよ、どうなってんだよ!!!
0375ミミ
2008/03/04(火) 16:39:27ID:/crDQgGyグローバル変数であれば $GLOBALS ですが。。。
0377nobodyさん
2008/03/04(火) 17:01:34ID:???0378ミミ
2008/03/04(火) 17:03:24ID:/crDQgGyもしかして get_defined_vars() のこと?
それはローカルだけを取り出してくれないからダメなの。
0380nobodyさん
2008/03/04(火) 17:12:48ID:???0381nobodyさん
2008/03/04(火) 17:13:26ID:???他は決まった値のように見えるけど・・。
試してないからなんとなくだけどね。
0382nobodyさん
2008/03/04(火) 17:19:42ID:qMhs4IBHmicrotime()の使い方なんですが、
>0.22720000 1204618533
このような値が返ってきますが、どうやって使えばいいんでしょうか?
作業の経過時間を計測したいんですが。
0384nobodyさん
2008/03/04(火) 17:22:20ID:???余りにもくだらなくて警察に通報しようと思ったよ。
microtime()は、その名前の通りマイクロ秒を表示する関数。
1秒は、1000ミリ秒
1ミリ秒は、1000マイクロ秒
ここまで言えば馬鹿でも分かるよな?
0385nobodyさん
2008/03/04(火) 17:23:29ID:???http://pear.php.net/manual/ja/package.benchmarking.benchmark.timer.php
0386nobodyさん
2008/03/04(火) 17:35:46ID:l1KE8Zjpなるほど。助かりました。
0387ららら
2008/03/04(火) 18:06:18ID:/crDQgGy$n = (int) func1();
$flag1 = ($n == 0);
$flag2 = ($n != 0);
とした後、デバッグのために値を確認したら、
print "flag1 = $flag1 <br>";
print "flag2 = $flag2 <br>";
flag1 は 1 となるのに、flag2 のほうは何も表示されないのら。
なんでなのら?! 0 になるんはずじゃないのかなのら!
0388nobodyさん
2008/03/04(火) 18:16:11ID:???お前は旧作のドラえもんか
http://www.php.net/manual/ja/language.types.string.php#language.types.string.casting
0390nobodyさん
2008/03/04(火) 18:31:48ID:???■ このスレッドは過去ログ倉庫に格納されています