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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/02/24(日) 21:03:17ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
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カテゴリ)の各スレで
0206nobodyさん2008/03/01(土) 16:44:55ID:???
>>205
宿題は自分でやりましょう
0207nobodyさん2008/03/01(土) 17:03:11ID:bS1QPxn9
質問させてください

$url = "http://www.unko.com/unko.cgi?url=http://www.test.com/test.html?unko_id=12345";

ここから、http://www.test.com/test.htmlのみを取得したいのですがどのような関数を使えば良いでしょうか?

http://www.unko.com/unko.cgi?url= は固定されていますが、

?unko_id=12345 は ?oomoriunko_id=123 になったり ?geriunko_id=111111111 になったり

固定されていないものとする。

以上ぎょきょうじゅくださいお願いします
0208nobodyさん2008/03/01(土) 17:07:45ID:???
preg_match
0209nobodyさん2008/03/01(土) 17:12:33ID:bS1QPxn9
>>208
ありがとうございます
なんとなく理解できました

あと書き忘れたのですがtest.htmlも固定されてません。

もう少し調べてみます
0210nobodyさん2008/03/01(土) 18:50:49ID:???
mysql_escape_string と
mysql_real_escape_string の違いについて、

後者は文字コードを考慮する、とマニュアルには記載されていますが、
結果として、
後者ではなく、前者を使用していると
脆弱性が発生したりするケースはあるのでしょうか。
0211nobodyさん2008/03/01(土) 19:16:54ID:???
>>187
亀ですみません。
root権限で入ろうと思いますが、その方法がわかりません。
差し支えなければ教えていただけませんか?
0212nobodyさん2008/03/01(土) 19:34:15ID:???
>>210
前者は非常に危険です。
後者でも危険性が指摘されています。
0213nobodyさん2008/03/01(土) 19:59:50ID:???
>>212
ソース
0214nobodyさん2008/03/01(土) 20:03:33ID:???
質問スレだか、初心者いびりスレだかわかんなくなってきてるな……。
0215nobodyさん2008/03/01(土) 20:10:28ID:???
>>211
> mysql -u root -p
0216nobodyさん2008/03/01(土) 20:46:02ID:???
>>207
parse_url
0217nobodyさん2008/03/01(土) 20:46:29ID:???
>>221
DB板行けよ
MySQL 総合 Part13
http://pc11.2ch.net/test/read.cgi/db/1201632550/

>>214
初心者スレは初心者スレがある
くだすれPHP(超初心者用)3
http://pc11.2ch.net/test/read.cgi/php/1193295871/
0218nobodyさん2008/03/01(土) 20:55:00ID:???
>>214
このスレには初心者は来ていませんよ?

少なくともマニュアルを一通り目を通したりぐぐったりしてきてるはずなんで。
0219nobodyさん2008/03/01(土) 21:06:57ID:Y1gVmTFW
開発をWindowXPでやってます
PDO::exec()でクエリを実行する場合影響した行数が帰ってくるはずですが、まったく影響のないクエリを実行してるのに1が返ってきます
バグでしょうか?

apache2.2
php 5.2.5
Postgresql 8.2
0220nobodyさん2008/03/01(土) 21:13:47ID:???
はい、バグです。
次の方どうそー。
0221nobodyさん2008/03/01(土) 22:02:10ID:???
>>219
DBMSによっては、delete で全行削除した場合、削除した行数を返さないらしい。
必要な場合は、where 1=1 ってやるのが定石だそうだ。

postgresをPDOで使ったときに同じ問題があるかどうかは知らない。
0222nobodyさん2008/03/01(土) 22:04:42ID:???
すいません、質問させてください。
PHPを一度ソースからインストールした後に、libxsltが必要になったので
再インストールを試みたのですが、makeで以下のようなエラーが出ました。
ext/xmlreader/.libs/php_xmlreader.o(.text+0x14a9): In function `zim_xmlreader_XML':
/usr/local/src/php-5.2.5/ext/xmlreader/php_xmlreader.c:1109: undefined reference to `xmlTextReaderSetup'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] エラー 1

あと、環境は以下のとおりです。
OS:Vine4.2
PHP:PHP5.2.5
実行したconfigure:./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-zend-multibyte --with-pgsql --enable-sockets --with-zlib --with-xsl=/usr/include/libxslt

解決方法をご存知の方いらっしゃいましたら、ご教示ください。
0223nobodyさん2008/03/01(土) 22:13:34ID:Y1gVmTFW
>>222
xslライブラリをなんのオプションも無くコンパイルしたなら --with-xsl=/usr/local/lib じゃないかな

>>221
いろいろ試して見たら、selectとかupdateとか、どんなクエリ実行しても1しか返って来ません
失敗の場合のみfalse
これは開発もlinuxにするしかないのか…?
0224nobodyさん2008/03/02(日) 01:08:51ID:kiurO7do
こんばんわ
プログレスバーについてなのですが
自身のループ処理による待ち時間ではなくて
重い外部のファイルを読み込むなど、一関数が完了するまでの間
flush()でメーターを描画する場合どのような方法があるのでしょぅか?
よろしく願いします。
0225nobodyさん2008/03/02(日) 01:41:21ID:???
>>224
ajaxで読み込む(画面遷移せず)

現在の画面にぷろぐれすばー表示(その間にサーバで処理)

処理完了

画面遷移
って流れでやったら?
0226nobodyさん2008/03/02(日) 02:27:09ID:???
このスレはこの程度か。
ありがとうございました。
0227nobodyさん2008/03/02(日) 04:11:35ID:jR385ymf
会員制のサイトからデータを取得する場合、
あらかじめ取得しておいたIDとパスをそれぞれ変数に入れて、
それらの変数をもってaction先に飛ばす
そしてファイル取得
こんな感じでいいのでしょうか
0228nobodyさん2008/03/02(日) 04:12:23ID:8nU9J7zG
Dreamweaver8でPHPを使ってメールフォームを作りたいのですが
現在XAMPPというのをインストール(セットアップ?)した直後です。

見積依頼のフォームのファイルはindex.phpにして設定もしました。

<?PHPprint("PHPを使って文章を出力します");

こうなっているのですが次の手順が分かりません。デザインビューで
見積依頼のフォームをこのindex.phpの<?PHPprint("PHPを使って文章を出力します");
の下に作ればいいのですか。

PHP初心者です宜しくお願いします
0229nobodyさん2008/03/02(日) 04:17:24ID:???
>>228
見積もり依頼のフォームというのが説明されていないのでわからない
そもそも次の手順ってそもそも何がしたいのか

ソース丸ごと見せてもらった方が早い

ちなみに、PHPで文章を出力したいんだけなら
<?PHPprint("PHPを使って文章を出力します");
↑の PHPを使って文章を出力します
の部分に記述
0230nobodyさん2008/03/02(日) 04:47:47ID:8nU9J7zG
>>229
あっなるほど。そこにデザインビューでメールフォームを作ればいいのですね。
コードは

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title>PHPプログラム</title>
</head>

<body>
<?PHP
print("PHPを使って文章を出力します");


</body>
</html>

です
0231nobodyさん2008/03/02(日) 04:48:24ID:8nU9J7zG
>>229
そしてメールフォームの内容は


お名前
住所 〒


TEL
E-mail
見積希望日
見積希望時間 9時〜12時
       12時〜15時
       15時〜18時
       何時でも可能
メッセージ


としたいのです。
0232nobodyさん2008/03/02(日) 05:09:59ID:8nU9J7zG
>>229
デザインビューで「文章を出力します」のとこを修正しようとすると

「HTMLタグに対して正確なフォーマットではありません。無効とマークされ
ました。コードビューを使用してソースコードを修正して下さい」

と出てしまい「文章を出力します」のとこの変更ができません。
0233nobodyさん2008/03/02(日) 06:19:08ID:cPv2Uin/
class unko{
private $unko;
public function getUnko(){
return $this->unko;
}
において、
public function checkUnko(){
の中は
$unko=$this->unko;
がいいのか
$unko=$this->getUnko();
がいいのか。
}

当然速いのは$this->unkoだと思うけど、この書き方って
オブジェクト指向を貫く上で問題ありかな?
0234nobodyさん2008/03/02(日) 08:12:52ID:???
checkUnko()というメソッド自体なんかおかしいだろ
0235nobodyさん2008/03/02(日) 08:46:32ID:qS2qya1q
%A5%A2%A5%A4%A5%AA%A5%E9%A5%A4%A5%C8(文字コード不明)

をデコードしたいのですが、何にエンコードされたかを知るにはどうしたらいいでしょうか?
また、PHP関数で何か良いものはありますでしょうか?
0236nobodyさん2008/03/02(日) 08:54:16ID:???
urlencode
02372352008/03/02(日) 08:55:02ID:???
すみません。上記質問ですが、utf8で書いているphpで、EUC-jpにurlencodeや、EUC-JPでエンコードされたキーワードを
デコードし、表示するにはどうすればいいのでしょうか?に訂正させてください。
0238nobodyさん2008/03/02(日) 08:55:18ID:???
間違えた。urldecode
まぁ、両方の関数のマニュアルを見ておけ
02392352008/03/02(日) 09:05:40ID:???
$test = "アイオライト";
$test = mb_convert_encoding($test, "EUC-JP", "UTF-8");
$test = urlencode($test);
echo "$test<br><br>";

$test = "%A5%A2%A5%A4%A5%AA%A5%E9%A5%A4%A5%C8";
$test = mb_convert_encoding($test, "UTF-8", "EUC-JP");
$test = urldecode($test);
echo "$test<br><br>";

上はうまく行きましたが、下が変なひょうじになります。全体としての設定はutf8です。
02402352008/03/02(日) 09:07:37ID:???
すみません。自己解決しました。

$test = mb_convert_encoding($test, "UTF-8", "EUC-JP");
$test = urldecode($test);

の上下を入れ替えたら出来ました。
02412222008/03/02(日) 12:52:29ID:???
>>223
レスありがとうございます。
apt-getでlibxsltをインストールしたところ、
libxslt.a
libxslt.la
libxslt.so
libxslt.so.1
libxslt.so.1.1.17
が/usr/libにつくられていたので、
--with-xsl=/usr/lib にしてやってみましたが、同じエラーでとまってしまいました・・・
0242nobodyさん2008/03/02(日) 13:13:25ID:1wdULA7X
yumのphp-mysqlがmysqlに依存しているので、mysqlが一緒に入ってしまいますが
mysqlはtritonn(mysql with senna)を使いたいです。
こういう場合どうしたらいいですか?
02432222008/03/02(日) 13:19:35ID:???
--disable-xmlreaderをつけたところ、>>222で起きていたエラーが出なくなりました。

しかし、--disable-xmlreaderをつけてもlibxsltは使用できるのでしょうか?
どなたか教えてください。。。

0244nobodyさん2008/03/02(日) 15:20:02ID:???
>>242
普通にphp.iniとかでphp-mysqlでインストールしたほうじゃなく
そっちのmysqlを使うように設定したらええやん?
0245nobodyさん2008/03/02(日) 15:21:55ID:???
>>243
聞く前にやったほうが早いんじゃ?
もうその環境なんだろ?
0246nobodyさん2008/03/02(日) 16:13:25ID:???
>>233
スーパークラスでも一貫して $this->getUnko() を利用すべき。
サブクラスで getUnko がオーバーライドされる可能性があるので
戻り値 === $unko が保証されないから。
0247nobodyさん2008/03/02(日) 16:58:37ID:LTTkeK/B
txtファイルをphpファイルにするにはどうすればいいですか??
メモ帳つかって拡張し使ってもxxx.php.txtとかなるのですがその後どうすればいいかわからんとです。
0248nobodyさん2008/03/02(日) 17:29:25ID:???
お前さんフォルダオプションだかなんだかの
「拡張子を表示しない」にチェックしてあるまんまだな?
はずすことを推奨する
02492192008/03/02(日) 17:36:31ID:???
なんかほんとにバグっぽいので報告してきます
0250nobodyさん2008/03/02(日) 18:07:37ID:???
>>247
メモ帳ならSJIS保存しかできないんじゃ?
まともなテキストエディタに乗り換えろ
0251nobodyさん2008/03/02(日) 18:12:48ID:???
>>242
yumで入ったmysqlを削除して
yum版のmysqlのsrc.rpmからspecをとりだして
--with-mecab, --with-sennaを加えてrpmbuildしてできたrpmをつかう
0252nobodyさん2008/03/02(日) 18:19:37ID:???
>>249
mysqlだけどちゃんと行数返ってきたよ
0253nobodyさん2008/03/02(日) 18:28:26ID:???
>>250
へぇ…おまえのメモ帳はそうなんだ。
0254nobodyさん2008/03/02(日) 18:35:58ID:???
>>253
もう何年もWindowsは使ってないのでよく覚えてない
最近のメモ帳はまともなん?
0255nobodyさん2008/03/02(日) 18:44:44ID:???
メモ帳のファイル保存形式は ANSI, Unicode, Unicode big endian, UTF-8 の4つから選べる
0256nobodyさん2008/03/02(日) 20:02:48ID:???
リンク元からGETで持ってきたidを今いるところののformを通してさらにリンク先に渡したいんですが
どうやったらできますか?
0257nobodyさん2008/03/02(日) 20:19:42ID:???
>>256
エスパー回答してやる
<?php
echo '<form action="post">';
foreach ($_GET as $key => $value) {
 echo '<input type="hidden" name="'.$key.'" value="'.$value.'">';
}
echo '</form>';
?>

正直何をしたいのかがわからん
もうちょっとちゃんと説明しろよ
0258nobodyさん2008/03/02(日) 20:22:22ID:???
echo '<form action="post">'; ・・・
0259nobodyさん2008/03/02(日) 20:32:35ID:???
>>256 >>7
0260nobodyさん2008/03/02(日) 20:41:38ID:???
>>257
脆弱性が生まれる瞬間
0261nobodyさん2008/03/02(日) 21:28:38ID:???
貴重な瞬間に立ち会えたことを神に感謝する
0262nobodyさん2008/03/02(日) 23:22:05ID:???
256がまともに書かないのに
ちゃんとしたレスがある筈ない
0263nobodyさん2008/03/02(日) 23:22:24ID:???
PHPみたいなスクリプト言語でもいちいちinterfaceとか作って
厳密にオブジェクト指向ばりばりってどーなの?
遅くなるだけじゃね?
XOOPSとかMediaWikiってどうなってるんだろ??
0264nobodyさん2008/03/02(日) 23:30:12ID:???
>>263
プログラマが気をつけるじゃなくて、それを使うことが保証されるっていうところに
オブジェクト指向の肝があるんじゃないか?

遅くなるってことは実際あると思うけど、微々たるもんだし、速度が問題になるようならそもそも、システム設計自体に問題があると思う。

まあ、小さいシステムで、後々それほど手を入れないならスパゲッティーでもいいと思うけど
俺はオブジェクト指向で組まれていないシステムを読み解くのはあんまり好きじゃないな
0265nobodyさん2008/03/02(日) 23:44:02ID:???
>>263
自分の場合、instanceof とかで判定しないなら、interfaceは定義しない。
0266nobodyさん2008/03/03(月) 00:04:02ID:???
GETで渡したパスの内容読み取りたいのですが、
ディレクトリさかのぼり、がちょっと怖いです。

$root_path = "/home/hoge/public_html/open/";
if( strstr( $GET['path'], ".." )) die("error!!");
fread($root_path.$GET['path']);

これで /home/hoge/public_html/open より上の層は見られない、
と断言できますか?
(..さえ拒否すればさかのぼりは完全に防げると判断して良いのでしょうか?)

open_basedirがini_setでスクリプト内で
設定できたら、自由にchroot風にできて安全そうで
よさそうだったのですが、ini_set内では無理でした

0267nobodyさん2008/03/03(月) 00:17:00ID:8BSVZMuK
質問させてください。

PHPでサイト構築しているのですが、
ある日突然、複数のスクリプトで
大量のエラーログをサーバー側に
記録するようになりました。
使用リミットをオーバーするような
膨大な量です。しかし、
サイト上では問題なく実行され表示されています。
エラーも出ていません。

この場合どんな原因が考えられますか?
0268nobodyさん2008/03/03(月) 00:17:23ID:???
>>264
なるほど。オブジェクト指向で書こうとすると
設計に悩んでフリーズしてしまうことが多い。
慣れてないしデザインパターンもどれをあてはめればいいのかわかんない。
かと言って本能のまま書くと役割分担のはっきりしないクラスばっかりになる。
結局「PHPごときにちまちまとオブジェクトなんてやってらんね」ってなるんだよね。

>>265
それぐらいの塩梅でいいかな。
0269nobodyさん2008/03/03(月) 00:18:10ID:???
エラーログの内容みれ。
0270nobodyさん2008/03/03(月) 00:34:41ID:8BSVZMuK
>>269
内容はPHP Notice: Use of undefined ・・・・
というものが多いです
エラーが記録されているスクリプトの種類は多岐に
わたっています。たとえばフリーで公開されているものを
そのまま導入して使用していたものからそうでないものまで。
0271nobodyさん2008/03/03(月) 00:49:10ID:???
それはPerl風にいうとuse strict;をつかってないルーズなプログラムだからな
0272nobodyさん2008/03/03(月) 00:57:35ID:???
>>267
突然って何よ?まぁめんどくさいから答えなくてもいいけど

httpd.confとかphp.iniでも制御できるからうまく設定したらいいよ
詳しいことはググレ
0273nobodyさん2008/03/03(月) 01:12:41ID:8BSVZMuK
>>271
おっしゃる通りルーズなプログラムかもしれませんorz
>>272
今までは問題なかった(と思う)のでほんとに突然なんです(涙
月替わりに突然エラーログが大量に記録されるようになったというイメージです。
ちなみに現在はエラーログはまったく出ていません。
php.iniの設定を見てみたのですが
log_errors On
log_errors_max_len 1024
error_reporting 6143
となっているのでエラーがあれば記録されると思うのですが・・
なぜこのような事がおきたのか原因を知りたいです
0274nobodyさん2008/03/03(月) 01:17:45ID:???
shared extentionにできるものとできないもののリストって
どこかにないですか?
0275nobodyさん2008/03/03(月) 02:25:43ID:33Hm4dS7
function Hoge(){}

$func = "Hoge";
$func();
↑これは動いて

"Hoge"();
↑なぜこれは動かないのでしょうか?

変数に入れれば良いことではあるのですが、
どうも気になってしようがありません。
PHPの関数呼び出しの仕組みってどこかに載ってますか?
0276nobodyさん2008/03/03(月) 02:28:20ID:???
おまいらヘボプログラマでもNoticeレベルのエラーまで完璧に処理してるの?
0277nobodyさん2008/03/03(月) 02:33:31ID:???
>>275
そのものズバリではないけど

http://www.php.net/manual/ja/functions.variable-functions.php
http://jp2.php.net/manual/ja/language.oop5.reflection.php#language.oop5.reflection.reflectionfunction
0278nobodyさん2008/03/03(月) 03:15:49ID:rD8lqAq1
どこに質問を投げていいか分からないのですが、もし適切な場所がありましたらご誘導下さい。

友人の紹介で仕事を回してもらうことになったのですが、
仕事としては始めてのphpによる開発なんですが、
見積もりを出してくれと言われていて少し困っています。

【ご質問】見積もりの中で人月に加えてステップ数を求められているのですが、
ステップ数って、空行とかコメント行もステップに数えるのでしょうか?

あと、ステップ数って、プログラムの書き方にも変わりますよね?
1行=======================================
if ($value == 1) { print "test";}

3行=======================================
if ($value == 1) {
print "test";
}

ネットで調べると1人月当たり、1000ステップらしいですが(COBOL)、
PHPの場合も、それが当てはまるのかそれも疑問です。

宜しくお願いします。
0279nobodyさん2008/03/03(月) 03:26:55ID:???
>>277
この仕組みのこと、可変関数と言うのですね、今まで知りませんでした。
Reflection機能も初めて知りました、とても勉強になります。
夜中に素早いご回答、どうもありがとうございました。
0280nobodyさん2008/03/03(月) 05:25:27ID:???
>>278
Web制作板のSOHOスレで聞けばいいかもしれない。
ただちゃんとした答えが返ってくるかは保証できないけど。
0281nobodyさん2008/03/03(月) 08:00:57ID:???
>>278
空行やコメントはステップとは言わない
それだと2ステップじゃないかな?

とりあえず
必要工数*欲しい時給+何かあった時の自分的保険費用で出してみたら

因みに俺の知ってる所だと1人月で
30-70マンぐらいの幅があった
0282nobodyさん2008/03/03(月) 08:15:12ID:???
>>278
ステップ数ってのは、処理手順の事?ソースの行数の事?
よく判らないんだけど、開発前からステップ数なんて判るものなの?
0283nobodyさん2008/03/03(月) 08:23:59ID:???
>>278
そんなのは7行としておけばいい。
ステップ数なんてのはパンチカード時代の遺物だ。
そんなもの求める会社は注意したほうがいいぞ。
0284nobodyさん2008/03/03(月) 11:25:37ID:???
おまえらメール送るとき文字コード何にしてんすか?UTF-8?
0285nobodyさん2008/03/03(月) 11:29:33ID:???
>>284
>>7
0286nobodyさん2008/03/03(月) 11:57:57ID:GThXklLZ
PHP5.2.5から導入されたメモリマネージャは、
memory_limitとは無関係なのでしょうか?

memory_limitを-1にしても、zend_mm_heap corruptedみたいなエラーが吐き出されてしまいます。
0287nobodyさん2008/03/03(月) 13:05:13ID:KrsbPUyK
OSX10.4 php4.2を使用しています。
$POST = array_map("htmlspecialchars",$_POST);
のような形でpostを一気に変換しています。

普段は問題ないのですが、
<select name="hoge[]" size="8" multiple="multiple">
のような要素がある場合、
Warning: htmlspecialchars() expects parameter 1 to be string, array given in...
という警告が出てしまいます。

これって、解決する方法ないんでしょうか?
よろしくお願いします。
0288nobodyさん2008/03/03(月) 13:33:06ID:???
>>287
htmlspecialcharsを元に配列に対応した関数を作ればいいんじゃね。
「php htmlspecialchars 配列 対応」あたりをググルと幸せになれるかもね。
0289nobodyさん2008/03/03(月) 14:03:39ID:DWqAIEY6
PHPでアクセスカウンタを組んだのですが、キリバンの表示方法がわかりません。
誰かご教授ください。
0290nobodyさん2008/03/03(月) 14:08:16ID:???
>>289
お前の言うキリバンはいったいいくつのカウントになるんだ?
そのカウントだったらキリバンと表示すればいいんじゃね?
0291nobodyさん2008/03/03(月) 14:08:39ID:???
>>289
if( ($count % 1000) == 0 ){
print "切り番おめでとう";
}
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:???
>>292
その辺詳しくないから曖昧な回答になるが了承くだしあ

上記はまず定数であるかどうか判別される
下記は文字列としてそのまま行く

上記の場合の定数であるか判別する余計な処理があるので下記のほうがいい
また、「title」って定数が合った場合そっちの値が優先されてしまう
0295nobodyさん2008/03/03(月) 15:45:12ID:HPgcFf+Y
>>293-294
ありがとうございます
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:???
どう考えてもstrtotimeだろ
0298nobodyさん2008/03/03(月) 16:47:10ID:???
strtotimeは、php言語の中で一番最悪の関数だろ。
引数の書き方が自由すぎてバグの元だよ。
どうして、こんなひどい設計したんだよ。
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:???
DBにYYYY-MM-DD HH:ii:ssで格納されてるのを、
strtotimeを使う分には問題ないと思うんだがどうだろう
03032962008/03/03(月) 17:29:37ID:a83ZZyIL
>>296ですがstrtotimeってのがあったのか。
確かにこれは便利ですね。

一応自分が今使おうと思ってるのは
データベース内に格納されてるのを判別するので
多分strtotimeで問題はありません。

しかしバグがあるというのは問題ですね。
使いどころを間違えないように使用したいと思います。
ありがとうございました。
0304nobodyさん2008/03/03(月) 19:13:10ID:???
>>303
時と場合によるけど、sqlでDATE_FORMATなんてのも有り
0305nobodyさん2008/03/03(月) 19:37:52ID:BS/MlDiQ
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
な配列を
array(3) {
[1]=>
int(2)
[0]=>
int(1)
[2]=>
int(3)
}
な配列にしたいんだけど、どうすればいいのだろう?
■ このスレッドは過去ログ倉庫に格納されています