5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :nobodyさん:2006/02/24(金) 22:05:48 ID:YHkZgU8b
PHPに関するくだらねぇ質問用スレです。 
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。 

まず読め【PHP マニュアル】 
http://www.php.net/manual/ja/

本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/l50

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

過去スレは>>2

2 :nobodyさん:2006/02/24(金) 22:06:36 ID:YHkZgU8b
・過去スレ 
【PHP】くだらねぇ質問はここに書き込みやがれ 
http://pc5.2ch.net/test/read.cgi/php/1099322141/ 
【PHP】くだらねぇ質問はここに書き込みやがれpart2 
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3 
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4 
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5 
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6 
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7 
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8 
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9 
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10 
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11 
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12 
http://pc8.2ch.net/test/read.cgi/php/1130835396/
【PHP】下らねぇ質問はここに書き込みやがれpart13 
http://pc8.2ch.net/test/read.cgi/php/1132921016/
【PHP】下らねぇ質問はここに書き込みやがれpart14 
http://pc8.2ch.net/test/read.cgi/php/1134868212/
【PHP】下らねぇ質問はここに書き込みやがれpart15 
http://pc8.2ch.net/test/read.cgi/php/1137236771/

3 :nobodyさん:2006/02/24(金) 22:30:08 ID:???
extractは極力使わないほうがいいと思います。
例えば、

hoge.php?_SESSION[user_pw]=hogehoge

って形で送られてきたとします。これを

extract($_GET)

しちゃうと、$_SESSION['user_pw']の値が、
"hogehoge"に変更されてしまいます。

もし事前にユーザのパスワードを、$_SESSION['user_pw']に
保持してたとしたら、勝手に書き換えられてしまうことになります。

それを避けるために

extract($_GET, EXTR_SKIP)

ってやって上書きを避けたとしても、
このままでは変数の初期化を忘れる危険性があります。

extract($_GET, EXTR_PREFIX_ALL, "get")

と、接頭辞をつけるのが一番安全な気はしますが、
それなら最初から
$hoge = $_GET['hoge'];
ってやるのと手間が変わらないと思いますし、可読性も増します。
確かにextractするのは楽だと思いますけど。


一応追加・・・?

4 :nobodyさん:2006/02/24(金) 22:53:42 ID:???
和露太ww

5 :nobodyさん:2006/02/24(金) 23:44:51 ID:???
毎週木曜日19:30よりNHK教育にて再放送中!(全70話)

クロウカード編
(第1期)第1話〜第35話(1998.4.7〜1998.12.29)
(第2期)第36話〜第46話(1999.4.6〜1999.6.22)

さくらカード編
(第3期)第47話〜第70話(1999.9.7〜2000.3.21)

◆関連サイト
NHK公式
http://www3.nhk.or.jp/anime/sakura/
『カードキャプターさくら』TOPICS
http://www.clamp-net.com/works/headline/main.html#sakura
アニメ版CCさくら データ
http://page.freett.com/sakura2ch/

6 :nobodyさん:2006/02/25(土) 01:31:08 ID:???
はてなブックマークのような「タグ」機能をつけたものを作りたいと思っています。
一つのレコードに対して、ユーザーが定義したキーワードのタグを複数割り当てることが出来るものです。
さらに、そのタグが削除されれば、全部のレコードからそのタグのみ削除されたり、
タグごとにいくつのレコードにそのタグが割り当てられているか集計出来たり、
タグによる絞り込みや、新規レコード登録の際にすでに定義されたタグ
(そのタグをもったレコードが存在するという事)を動的に読み出して、
入力の選択肢として再利用するような感じです。

どんなテーブル構成にしたらよいのか、このタグをいったいどういう風にDBに格納するべきか
・タグひとつにつき1フィールドで1か0のフラグ?
・1フィールドにタグを配列で?
なんだか漠然として全然考えがまとまりません。
なにかアドバイスがあったらおながいします。

環境はPHP4.3.1、MySQL 3.23.58です。(本番用のレンタル鯖)

7 :nobodyさん:2006/02/25(土) 01:34:44 ID:RijzHz3L
>>6
趣味でやってるなら背伸びのしすぎ
仕事でやってるなら金払え

8 :nobodyさん:2006/02/25(土) 01:55:40 ID:???
>>7
一応仕事でやっております。
ユーザー(データを登録する人)がタグを自由に追加出来るってのがくせ者でして、シンプルに考えれば好き放題カラムを増やすのもありなんですが、テーブルをいじくるクエリ発行しまくりで禿げしく面倒な悪寒。
やっぱり配列でごにょごにょですかね?
なお、この案件は要望としてこういう機能が出てる訳でなく、納期もあるし、お金も出してくれそうなので、勉強をかねていっちょがんばってくれや、といわれたので張り切ってるのですが、もう構想だけで半月もたってしまいますた。

9 :nobodyさん:2006/02/25(土) 01:58:22 ID:???
前スレを見て気になったので質問します。

PHPからzlibを利用できる環境で
zipとgzipの出力ができる。詳しくはzip.lib.php参照
(PEARのArchive_Zipクラスみたいなもん)

ということですが、どの関数をつかってZIPファイルを生成すれば良いか教えてください。

10 :nobodyさん:2006/02/25(土) 02:20:03 ID:???
前スレからのバグ報告

328 :nobodyさん :2006/02/13(月) 15:31:00 ID:???
test.php?%5B%5B
とすると、一つ目が%5Fになってしまうのですがこれはバグでしょうか?
OSはWinXP ProSP1、鯖はAnHTTPD、PHP5を使ってます。

こちらのサイトではきちんと認識しているようです。
ttp://openoffice.s16.xrea.com:8080/pukiwiki/pukiwiki.php?%5B%5BOOo2.0%A5%D0%A5%B0%BE%F0%CA%F3%5D%5D

11 :nobodyさん:2006/02/25(土) 04:43:33 ID:???
>>9
addfile()の模様

12 :nobodyさん:2006/02/25(土) 05:37:02 ID:???
>>5
なんだよ、この新テンプレは

13 :nobodyさん:2006/02/25(土) 08:08:57 ID:???
>>9
クラスなので関数は使わない、使うのはメソッド。話の流れを読めば判ると思うんだが
zip.lib.phpは、phpMyAdminのパッケージ中に含まれるクラスライブラリのファイル
(phpMyAdmin専用ということはないので、他のアプリケーションでも含まれることあり)

そんなに大きなファイルでもないし、懇切丁寧な説明があるわけでもないので
まずは入手してどんなメソッドがあるのか、パラメータは何か、その辺はソースを参照。
(でもライセンスが何なのか、俺も良く知らないんだけど)

14 :nobodyさん:2006/02/25(土) 08:38:43 ID:???
>>9
gzcompress()かgzencode()使えばいいだけだろ

15 :nobodyさん:2006/02/25(土) 09:42:53 ID:???
>>8
クダ質の範囲じゃないだろ。
スレたてるか、ふさわしいスレさがせ。てか、仕事でやるならくんなよ。
せめて、自分で考えた範囲とかを公開して意見求めるならわかるが
2chに丸投げすんな

16 :nobodyさん:2006/02/25(土) 09:47:11 ID:???
>>14
その両方ともZIP形式とは似て非なるもの。

17 :nobodyさん:2006/02/25(土) 10:50:23 ID:???
>>6
タグとレコードのIDの組み合わせを持つテーブルを作ればいいんでないの?
PHPっつーよりDBのスキーマ設計じゃん。スレ違いな感じ。

18 :nobodyさん:2006/02/25(土) 16:56:40 ID:???
>>15
>スレたてるか、ふさわしいスレさがせ。てか、仕事でやるならくんなよ。
こんなんでいちいちスレ立てるんですか?
>せめて、自分で考えた範囲とかを公開して意見求めるならわかるが
>2chに丸投げすんな
だから、自分で考えた範囲は、>>6に。
丸投げじゃなくて、DBをどう構成するか、って部分を聞きたかったんですよ。

>>17
たしかにスレ違いというより板違いかも。
DB板に逝って来ます

19 :nobodyさん:2006/02/25(土) 17:18:24 ID:???
住み分けをきちんとすれば住民もしっかり答えてくれるよ

20 :nobodyさん:2006/02/25(土) 18:30:59 ID:???
>>18
DBをどうするかってわかってんなら最初から他の板池

21 :nobodyさん:2006/02/25(土) 19:22:00 ID:???
こんな胸糞悪いヤツは久しぶり棚

22 :nobodyさん:2006/02/25(土) 19:38:30 ID:???
あまりにもくだらすぎる質問で申し訳ないけど
例えば書評サイトを作るとしよう
・書籍名 :(さるでもわかるPHP)
・ジャンル:(ぱそこん)
・作家名 :(曾英知)
・出版社 :(PHP出版)
・書評  :(わからん)
・満足度 :(38%)
とソフトかなんかにカッコ内だけ記入してアップロードしたら
かってに
・ジャンルごとに固めて五十音順にならべるてページ作ってくれる
・ジャンルごとに固めて満足度順に並べてページつくってくれる
とかしてくれるようにしたいんだけど
HTMLやCSS以外に何を勉強したらできるようになるのか教えてください、
正直本屋いってもプログラム言語が多すぎてさっぱりわからない

blog使えばいいじゃねーかとか言われてもブログのデザインって
使いにくいしダサいし

23 :22:2006/02/25(土) 19:40:45 ID:???
付け加え
これは難しいのか、簡単なのか、全く知識が無い者が
簡単にできるものなのか?てのも教えてください。

24 :nobodyさん:2006/02/25(土) 19:44:40 ID:???
簡単だが、知識が皆無の者が作れるわけが無い。
ここはPHP言語スレだからPHPを使え

25 :nobodyさん:2006/02/25(土) 19:52:55 ID:???
最近、PHPとHTMLとDBの区別もできない人が多すぎやしませんか?

26 :nobodyさん:2006/02/25(土) 19:55:42 ID:???
それは最近に限ったことじゃないような。

俺は>>22がここを「PHP板・総合くだ質スレ」だと思ってることのほうが気になる。

27 :nobodyさん:2006/02/25(土) 20:03:49 ID:???
>正直本屋いってもプログラム言語が多すぎてさっぱりわからない
PHPスレに来てこの発言とは、PHPを使えと言って欲しいだけのMと見た。

28 :nobodyさん:2006/02/25(土) 20:04:20 ID:???
>>23
帰れ

29 :22:2006/02/25(土) 21:25:21 ID:???
じゃあ、どこで質問すればいいの
俺のプログラム言語の認識
WEBプログラミング
 JavaScriput→なんかサイトの見栄えをうざくするやつ
 CGI→カウンターとかつくるやつ
 PHP→なんでもできるうえにかんたん
 mysql→なんかデータベースつくるソフト、phpで記述する?
他のぷろぐらむ言語
 basic→中学んころやったけどよくわからん
 c→大学でやったけどカレンダーのプログラム難しくてつくれなかった

だからここで質問したw
やっぱりあきらめろってことかい

30 :22:2006/02/25(土) 21:31:09 ID:???
ああ、ごめんごめんちゃんと"WebProg 初心者の質問 "ってあったわ
スレ違いでした

31 :nobodyさん:2006/02/25(土) 21:38:44 ID:???
バカばっか

32 :nobodyさん:2006/02/25(土) 21:44:29 ID:???
盛り下がって参りました

33 :nobodyさん:2006/02/25(土) 21:51:38 ID:???
>>22はScriptも書けないチキン

34 :nobodyさん:2006/02/25(土) 22:25:47 ID:???
んー、GZIPとZIP(PKZIP)は圧縮形式が同じだからヘッダとフッタを書き替えて変換が可能らしい。

35 :nobodyさん:2006/02/25(土) 22:49:32 ID:???
>>29
他に書いてあることも駄目ダメだが…
>  c→大学でやったけどカレンダーのプログラム難しくてつくれなかった
これがやたらリアルで吹いた。
理解できるまで自分でプログラム書かない方がいいよ。

36 :nobodyさん:2006/02/25(土) 22:55:19 ID:???
>>29
正直、お前さんの場合、自分でプログラムを書いてやりたいことをやるよりも、
誰かに書かせられるだけの資金力を身につけた方がてっとり早いかもよ。

37 :nobodyさん:2006/02/25(土) 23:36:25 ID:???
いや、資金力があったとしても、
やりたいことをプログラマに伝えられるとは思えん。
>>29のような認識しかしようとしない人には誰もついていかないと思う。

38 :nobodyさん:2006/02/25(土) 23:45:42 ID:???
札束積んでくれりゃ、どんな奴にでもついてくぜ!

39 :nobodyさん:2006/02/25(土) 23:45:54 ID:???
いや、逆に良いんじゃない?
中途半端に知識があるヤツは「ここはコレでああしてくれ!」って頼んでくるからマジで面倒くさい。
>>29なら「こういうのが作りたいんだ。やってくれるか?」って行ってくれれば喜んでやるよ。
まぁ、>>29に人間性によるがな。知識はなくても人間性の良いやつには俺は出来るだけ力になりたいよ。

40 :nobodyさん:2006/02/26(日) 00:23:56 ID:???
大学で学ぶ機会があったのに真面目にやらなかったような人間でしょ。
そういう人は何やっても無駄。
他人に金払って作ってもらったほうがいいよ。

41 :nobodyさん:2006/02/26(日) 00:49:05 ID:???
自分を理解してる分、ましな奴だと思うけどね。

42 :nobodyさん:2006/02/26(日) 03:20:21 ID:???
>>38
つ[堀江]

43 :nobodyさん:2006/02/26(日) 04:31:10 ID:29iVLzi6
質問させてください。
$bookdata="
1,本の名前a,発売日,問い合わせ先,\n
2,本の名前b,発売日,問い合わせ先,\n
3,本の名前c,発売日,問い合わせ先,\n
4,本の名前d,発売日,問い合わせ先,\n
5,本の名前e,発売日,問い合わせ先,\n
6,本の名前f,発売日,問い合わせ先,\n
7,本の名前g,発売日,問い合わせ先,\n
";


1は本の名前a<br>
2は本の名前b<br>
3は本の名前c<br>
4は本の名前d<br>



という形で表示させたいのですが
どなたか教えてください
explodeを使うのかなぁと思うんですがいまいちやり方わからず・・・



44 :nobodyさん:2006/02/26(日) 04:35:24 ID:???
>>43
nl2brとかなんとか

45 :nobodyさん:2006/02/26(日) 05:40:08 ID:???
>>43
\nでexplodeしてさらに要素を,でexplodeすればいんでない

46 :nobodyさん:2006/02/26(日) 07:15:27 ID:???
$a = explode("\n", $bookdata);
for ($i = 0 ; $i < count($a) ; $i++) {
$b[$i] = explode("\n", $a[$i]);
echo $b[$i][0] . "は" . $b[$i][1] . "<br>";
}


47 :nobodyさん:2006/02/26(日) 10:00:13 ID:???
なんでforeach使わないのか不思議

48 :nobodyさん:2006/02/26(日) 10:52:41 ID:???
>>47
知らないから

49 :nobodyさん:2006/02/26(日) 11:02:51 ID:???
よし!今日はPHPでのオブジェクト指向プログラミングに挑戦するぜ!


・・・でも、PHPにしろJavaにしろオブジェクト指向開発で難しいのはプログラミングじゃなくって
クラス図とか作るほうだよな('A`)

50 :nobodyさん:2006/02/26(日) 11:11:23 ID:WBgYvtX2
mb_send_mail で登録されてる人にサーバーからメールを送っていますが(主に携帯)
failure notice のエラーが返ってきて送れない人達がいます。

メールアドレスが間違っている or 受信設定でドメイン許可をしないと駄目
だと思っていたのですが、それ以外に @ の前が . (ドット)だと駄目とかありますか?

例 : test.@docomo.ne.jp

51 :nobodyさん:2006/02/26(日) 11:33:39 ID:???
>>50
RFC2821の記述を読むと、
. から始まったり
. が連続したり
. で終わったり
するのはマズイんでないかねぇ。自分でも読んでみてちょ。
てか、実際 .@ の場合は多くのMTAが叩き落してた希ガス

52 :nobodyさん:2006/02/26(日) 11:48:28 ID:???
>>50
>例 : test.@docomo.ne.jp
RFCに準拠して無いアドレスは、インターネットのメールアドレスとは言えない。
ドキュモの勝手な仕様。

53 :nobodyさん:2006/02/26(日) 13:18:31 ID:???
RFCってたくさんあるから、どれ読んどいたらいいのかわかんないよね

54 :nobodyさん:2006/02/26(日) 13:30:13 ID:???
WebProgに関係するのはそんなに多くないし、使う人が多いからか訳も充実してるからなぁ。。。
一番苦労してるのはネットワーク系の人だろうね。

55 :nobodyさん:2006/02/26(日) 13:57:13 ID:???
本当に頭の良いヤツってネットーワーク屋さんかコンパイラ屋さんかだな

56 :nobodyさん:2006/02/26(日) 14:05:50 ID:???
下らない質問なんですが、
標準で組み込まれてる関数ってPHPで書かれてるんですか?

57 :nobodyさん:2006/02/26(日) 14:07:53 ID:???
マシン語じゃないの?

58 :nobodyさん:2006/02/26(日) 14:18:14 ID:???
C言語だよ。
例えばメール関係の関数はこんな感じで書かれている。
ttp://cvs.php.net/viewcvs.cgi/php-src/ext/standard/mail.c?view=markup&rev=1.89
全部のソースを見たいなら、ttp://www.php.net/downloads.php から
Complete Source Code ってのをダウンロードすればいいよ。

59 :nobodyさん:2006/02/26(日) 17:32:27 ID:izomZemY
インテリセンスが効くIDEはありますか?

60 :nobodyさん:2006/02/26(日) 22:50:17 ID:???
>>59
インテリセンスはマイクロソフト製のIDEにしか存在しません。


61 :nobodyさん:2006/02/26(日) 23:35:30 ID:???
>>60
ありがとうございます。
シコシコ頑張ります。

62 :nobodyさん:2006/02/27(月) 09:31:48 ID:???
登録商標

63 :nobodyさん:2006/02/27(月) 11:33:33 ID:???
使い分けだとは思うんですけど、
echoやprintでhtmlを出力する時に、
どういった形で出力してますか?

たとえば
echo "<div id=\"a\">\n"
. "<div id=\"b\">\n";
とか、
echo "<div id=\"a\">
<div id=\"b\">
";
とか
echo '<div id="a">
<div id="b">
';
とか
echo <<<EOF
<div id="a">
<div id="b">
EOF;
とかいろいろありますよね。
この書きかたはセキュリティ的に良くないよー
みたいなことは特にありませんか?

64 :nobodyさん:2006/02/27(月) 12:01:08 ID:???
PHPでMySQLのストアドプロシージャを使うにはどうすればよいのでしょうか?
mysq_query()コマンドで行うのでしょうか・・

65 :nobodyさん:2006/02/27(月) 12:32:40 ID:???
>>63
長い場合は3つ目。ダブルクォートを気にしなくてすむし。
見やすくするためにEO+識別子を使う。EO_EntryFormとかね。
EOFだとファイルが終わっちゃう感じがするし。
短い場合は1行で収めちゃうね。基準はその時の気分w

66 :nobodyさん:2006/02/27(月) 12:51:45 ID:???
>>63
俺はechoやprintではHTMLを出力しないようにしてる。
原則、?>HTML<?php 形式。

必要なケースでは(変数に格納しておきたい場合など)
1.変数が必要で内容が短い→"〜"
2.変数が不要か「.」で繋いだ方がシンプルにまとまって内容が短い→'〜'
3.内容が長い→<<<HTML でヒアドキュメント
って感じ。

67 :nobodyさん:2006/02/27(月) 13:22:14 ID:nvSEUa/x
学生時代にpascalをつかっていたんで、ある程度はプログラミングの
常識は持っています。

で、趣味で、webサイトを構築するときにcgiかphpを使おうと思っているところです。

簡単に言うとフォームから入力した情報を、index.htmlに反映させて
上書きしていく、というものです。

cgiとPHPどちらがいいものでしょうか?

68 :nobodyさん:2006/02/27(月) 13:23:50 ID:???
>>67
perlとPHPってことでしょうか?

どっちでもいいんじゃないですかね。

69 :nobodyさん:2006/02/27(月) 13:40:35 ID:???
>>67
CGIでPHPを使うのが両方出来てお得だと思います。

Pascalライクなのがいいなら、Pythonなんかがそんな感じがするが
Webと組み合わせるならPHPは本当に楽だよ。

70 :67:2006/02/27(月) 14:14:22 ID:???
68,69さんきゅ。

PHPを勉強してみます。

71 :nobodyさん:2006/02/27(月) 16:04:42 ID:???
みなさま。この問題で1週間悩んでます。
お助けください。。。

// ------------------------------------------------------------
// データ格納
function getData() {
$post = $_POST; // 項目は「氏名(name)」と「目的(mokuteki)」
}
// ------------------------------------------------------------
// エラーチェック
function checkErr() {
if (!$post['name']) {$errmsg .= '<li>氏名が入力されていません。</li>';}
if (!$post['mokuteki']) {$errmsg .= '<li>目的が入力されていません。</li>';}
if ($errmsg) {$errflag = 1;dispErr();} else {return;}
}
// ------------------------------------------------------------
function dispErr() {
// エラーメッセージ表示
echo ('<ul>');
echo ($errmsg);
echo ('</ul>');
die;
}

HTMLのフォームからPOSTされた内容をエラーチェックしたいのですが、
フォームに何も入力しないでSUBMITしても、
エラーチェックにひっかかってくれません。

エラーチェックルーチンではこの他に
if ($post === "") / if ($post == "") / if ($post === NULL)
なども試してみました・・・

72 :71:2006/02/27(月) 16:12:47 ID:sj9CYitM
ミスりました。
誤)if ($post === "") / if ($post == "") / if ($post === NULL)
正)if ($post['name'] === "") / if ($post['name'] == "") / if ($post['name'] === NULL)

73 :nobodyさん:2006/02/27(月) 16:12:57 ID:???
$post、$errmsgはグローバル変数じゃないのだから
関数の中でグローバル宣言してやる、もしくは引数として渡してやるかしないとダメだろ。

いずれにしてもgetData()、checkErr()は変だよ。返値ないじゃん。
関数の書き方マニュアルでチェックしてみ。

74 :71:2006/02/27(月) 16:20:23 ID:???
>>72
レスありがとうございます。
ソースにはカキコした関数以外の部分でglobal宣言しておりました。
とりあえずcheckErr()に$postを渡してみました。

checkErr → checkErr($post);

すると、いままでうんともすんとも言わなかったテスト用のvar_dumpが
反応してくれました(嬉泣)!

ひとまず、ご報告まで。半年ROMって精進します。


75 :71:2006/02/27(月) 16:31:45 ID:???
どうやら一山超えることができたようです。

・ getData()内で$postと$errmsgをglobal宣言した
・ getData($post)からはreturn $post;で戻るようにした
・ checkErr()に$errmsgを渡すためにcheckErr($errmsg)と呼び出した

上記の変更で、なんとなく動くようになりました。
さらに改良していきます。

ありがとうございました。


76 :nobodyさん:2006/02/27(月) 17:19:00 ID:???
>>75
グローバルに使うなら$_POST[ ]のままじゃ駄目なのか


77 :nobodyさん:2006/02/27(月) 17:25:06 ID:???
>>76
グローバルの対象になる変数が違うと思われ

78 :nobodyさん:2006/02/27(月) 17:26:50 ID:???
まぁ、functionの呼び出し時引数に$_POSTを渡してやるって手もあるが…

checkErr($_POST);

79 :nobodyさん:2006/02/27(月) 20:00:13 ID:j8jIGqNe
!= と !== って同じ?

80 :nobodyさん:2006/02/27(月) 20:02:35 ID:???
近いけど微妙に違う。!==の方がより厳密。

81 :nobodyさん:2006/02/27(月) 20:03:28 ID:???
>>79
== と === って同じ?

82 :nobodyさん:2006/02/27(月) 20:04:59 ID:j8jIGqNe
>>80
すいません、詳しく教えてくれませんか?
検索しようにも記号は検索語にならんもんで。。

83 :nobodyさん:2006/02/27(月) 20:08:18 ID:???
>>82
ttp://php.s3.to/man/language.operators.comparison.html

84 :nobodyさん:2006/02/27(月) 20:10:34 ID:???
>>83
ありがとう。

85 :nobodyさん:2006/02/27(月) 22:02:21 ID:APEEDXbI
ファイルを分割する関数を探しています。
やったこと
→googleで「ファイル分割関数」で検索
→PHPエディタ[スタンドアロン版]に付属のマニュアルchmで検索
関数名さえ教えてもらえば、あとは自分で調べます。

86 :nobodyさん:2006/02/27(月) 22:12:02 ID:???
どういう基準で分割するんだ。バイトサイズ?

87 :nobodyさん:2006/02/27(月) 22:14:09 ID:APEEDXbI
>>86
すいません書き忘れてました
1.44メガバイトずつに分割したいと考えています。

88 :nobodyさん:2006/02/27(月) 22:19:06 ID:???
フロッピーかよー!! カヨー カヨー カヨー

89 :nobodyさん:2006/02/27(月) 22:27:51 ID:???
>>87
fopen&fread&fwrite

90 :nobodyさん:2006/02/27(月) 22:44:32 ID:???
>>89
ありがとうございます。
今日はもう寝るので明日やってみます。

91 :nobodyさん:2006/02/27(月) 22:49:27 ID:???
>>88
いえ、フロッピーではなく、
今「PCドキュメントダウンローダー」という、auの定額携帯用のツールを作っていて、
DL可能なファイルサイズが、KDDIの仕様で1.5MBまでなんです。

92 :nobodyさん:2006/02/27(月) 23:21:55 ID:???
マルチバイト関数を有効にする方法を教えてください。
夜遅くにすみません。

93 :nobodyさん:2006/02/27(月) 23:24:21 ID:???
>>92
移動乙

OSとphpのバージョン書いたほうがいいよ
Winっぽいよね・・、winでphpのインストールした事がないなぁ

94 :nobodyさん:2006/02/27(月) 23:26:01 ID:???
winならば
googleで
「php windows インストール マルチバイト関数」
で検索したら一発だな

95 :nobodyさん:2006/02/27(月) 23:28:34 ID:d/u1H5JH
>>93
あの、ホントいい人ですね。
winです。でも>>94さんが言うように、さっきググったら自己解決できます。きっと。
俺のバカ。
夜遅くにホントすいません。

>>94
愛してます。
俺のバカ。

<引用>
mbstring は拡張モジュールです。
つまり、デフォルトでは 有効にならないということです。
configure スクリプトでモジュールを有効にする必要が あります。
詳細は、インストールの 節を参照してください。

はい、これならできます。ホントありがとうございました。

96 :nobodyさん:2006/02/27(月) 23:36:12 ID:???
>>95
報告乙。解決できたら報告する人は成長も早い・・・らしい。

97 :nobodyさん:2006/02/27(月) 23:59:20 ID:???
>>96
そ、そう言われたら。。

php.iniから↓をコメント外したしたところ、無事動作しました。

//ここから
extension=php_mbstring.dll
output_handler = mb_output_handler //これだけは追加しますた。
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.detect_order = auto
mbstring.substitute_character = none;
//ここまで

おやすみなさい。。

98 :nobodyさん:2006/02/28(火) 00:00:38 ID:???
>>64
長いときはヒアドキュメント。
漏れはとにかく変数は全部"文字列{$hoge}文字列"で埋め込んでる。

99 :nobodyさん:2006/02/28(火) 00:00:44 ID:???
>>96
それ本当だから。

一番だめなのはメモも持たずに人のところに聞きに来る馬鹿です。


100 :正規表現?:2006/02/28(火) 00:01:40 ID:DEUM5hM0
こんにちは、トピ作成失礼します!

$str = mb_ereg_replace('\\\\',"\\\\",$str);
$str = mb_ereg_replace('\'',"\\'",$str);

という、データベースに入れるデータを通すための関数が2つあるんですが、

'\\\\',"\\\\"
'\'',"\\'"

この2箇所がどのような文字列についての対策なのかが分かりません...
もし分かる方がいらっしゃいましたら、
おしえてくださいっm(__)m

101 :nobodyさん:2006/02/28(火) 00:41:40 ID:???
>>63
漏れは余計な改行が入るのを嫌って全てecho

>>100
単なるクエリのエスケープだと思うが
>$str = mb_ereg_replace('\\\\',"\\\\",$str);
前の\\\\は「\」にマッチしたいが「\\」→「\」の変換が2度行われる為
後の\\\\は「\\」に置換したいが「\\」→「\」の変換が1回行われる為
>$str = mb_ereg_replace('\'',"\\'",$str);
'\''は「'」にマッチさせる為
"\\'"は「\'」に置換させる為

''と""を使い分けている理由に付いては(゚听)シラネ
参照(引用)元がたまたまこの形式で、それをコピペしただけかも知れん。

102 :nobodyさん:2006/02/28(火) 00:41:45 ID:???
オレには分からない

103 :nobodyさん:2006/02/28(火) 00:45:25 ID:???
>>101
どんなに長くても入れちゃう派?

104 :103:2006/02/28(火) 00:46:01 ID:???
>>103
一行にを忘れてた。すげーエロイじゃんorz

105 :nobodyさん:2006/02/28(火) 00:46:28 ID:C5SJRerw
safemodeじゃないのにphpからフォルダが作成できないです。
ちなみにperlからも出来ない・・・orz

これってモジュール版で動いてるから仕方ないんでしょうか?
解決策は鯖管に頼むしかないんでしょうか・・

106 :正規表現?:2006/02/28(火) 01:09:33 ID:1e1aKd+D
>>101

100です
ありがとうございます!!!
よく分かりました!

107 :nobodyさん:2006/02/28(火) 06:42:02 ID:???
LinuxのサーバでPHPを使って、1週間置きに日付.tarみたいな感じで、
特定のディレクトリのバックアップを自動で行ってくれるような
スクリプトはかけますでしょうか?
PHPでどういったことが(どこまで)できるのか知りたいです。

PHPは最近はじめたばかりで、他の言語に関しては知識は皆無です・・・

108 :nobodyさん:2006/02/28(火) 07:17:53 ID:???
>>107
cron + PHP

109 :nobodyさん:2006/02/28(火) 07:28:57 ID:???
>>107
まぁできなくは無いんじゃないかな。WebProgというよりLinuxの方の話になると思うけど。

1週間おき -> cron (linuxの仕組み)
日付 -> date (PHP)
tar -> PHPにはtarを直接扱える関数が無さそうなので ` ` や execとか (PHP+Linuxコマンド)

tarはそう難しいファイルフォーマットじゃないので、自作でもできるんじゃないかな。
実際pearにもtarを扱うやつあるものね(pearだから当然PHPで書かれている)。

110 :nobodyさん:2006/02/28(火) 09:10:39 ID:1h7tXCMd
PHP5を始めたのですが、
文字コードと思われる点でつまづいています。
秀丸で書いておりまして、
保存時に「EUC」と改行コードは「LF」を設定しています。
IEで開くとき、問題なく表示できるようになりましたが、

<FORM ACTION="<?php echo( $_SERVER[ "PHP_SELF" ] ) ?>" METHOD="POST">
キーワード:<INPUT NAME="KEYWORD" TYPE="TEXT" SIZE="30">
<INPUT TYPE="SUBMIT" VALUE="検索">

とする時、日本語入力を受け付けていないようなのです。

echo( $_POST[ "KEYWORD" ] );
を各所に配置して確認したところ、日本語入力をすると文字化けしています。

111 :nobodyさん:2006/02/28(火) 09:16:55 ID:???
>>109
PEARにもあるし
Archive/Tar.php

112 :111:2006/02/28(火) 09:18:37 ID:???
>>109の自作でもできるんじゃないかな。
まで読んだ

113 :110:2006/02/28(火) 09:33:07 ID:???
自己解決しました。
mbstring.http_output = EUC
としました。
汚してどうも。

114 :107:2006/02/28(火) 09:44:35 ID:???
みなさんレスありがとうございます。
cronですか。ちょっとサービスが起動してるか確認してみます。


115 :nobodyさん:2006/02/28(火) 12:33:53 ID:???
すげー下らないんだけど、ここらに書いてあるPHPプログラムを
実行するにはどーすればいいんでしょーか?
http://jp.php.net/downloads.php ここで落とせばいいの?

116 :nobodyさん:2006/02/28(火) 12:54:20 ID:???
実行って言い方はあれだけどとりあえず本体落としてインストールせんとだめ。
あとWEBサーバもないと駄目。まぁ単体でも使えるけど・・

117 :nobodyさん:2006/02/28(火) 13:08:31 ID:???
気になったんですが、
変数宣言とか無いから
ソース見た時に、この変数の型ってなんだ?とか思っちゃいます。
例えば、
$BBSData = LoadCsvFile( BBS_DATA );
こんなのある時に、LoadCsvFileはarray型の値を返すんですが、
$BBSDataの型は、LoadCsvFileの定義か、
$BBSDataを実際に使ってるところから割り出すしか無いですか?

変数宣言を強制するとかできません?

118 :nobodyさん:2006/02/28(火) 13:11:09 ID:???
>>116
ありがとさん。解説サイトにも書いてあったけど、やっぱりサーバー持ってる人用なのかな?
普通にレンタルサーバーでもPHPは使えるわけでしょ、

更に下らない質問なんだけど
つまり鯖無しユーザーはHTMLにPHP記述してブラウザで確認ってカタチで宜しいんでしょうかね?

119 :nobodyさん:2006/02/28(火) 13:12:46 ID:???
>>118
自分のパソコンにApacheとPHPを入れて確認。

120 :nobodyさん:2006/02/28(火) 13:17:29 ID:???
>>117
ムリ

大抵は関数の定義から判断する。
Perlみたいにスカラーとリストを両方返せる関数があるわけじゃないんだし、
型宣言できたところでリファレンスか実体かでまた苦しむだけだから一緒かと。
ソースを部分的に見ただけで型判別できるようにしたかったら、変数名に型の識別名を
入れるのがPHPに限らずCでもC++でもJavaでもセオリーかと思うがどうか。

121 :117:2006/02/28(火) 13:24:14 ID:???
>>120
>リファレンスか実体かでまた苦しむだけだから
あら、やっぱり参照型と値型あるんですね。
まだ始めたばっかりなんで、オブジェクト関係はまだ遠いです。

>CでもC++でもJavaでもセオリーかと思うがどうか。
最近C#とIDEの開発では接頭語入れない事が多いんで、
それに慣れちゃってました。
PHPの慣習に倣います。

すごい分かりやすい解説でした。
また縁があったらよろしくお願いします。
ありがとうございました。

122 :117:2006/02/28(火) 13:47:48 ID:???
深く調べないで聞いちゃうんですが、
PHPって関数の戻り値を、
絶対受けなきゃいけないって訳じゃないんですか?

さっきの例で、

$BBSData = LoadCsvFile( BBS_DATA );//array型の値が返る関数
の後に、
if ( $BBSData == false ) {
}
とか、
LoadCsvFile( BBS_DATA ); //特にLoadCsvFileのオーバーロードが他にある訳ではないです。(というか規定のパラメータと言う?)

みたいなコードが書いてあったんで、

「ん?bool型も返す?」・「戻り値受けなくてもいい?」
と疑問が出たのですが、中々目当ての資料に行き着けなくて。

毎度すみません。よろしくお願いします。


123 :nobodyさん:2006/02/28(火) 14:02:37 ID:???
>>118
サーバの意味がわかってない。Webサーバってハードじゃないぞ。
自分のパソコンでも大丈夫。
用はApacheとかIIS等のWebサーバがPHPの言語を解釈してブラウザに表示する
役割をもっている。
だからWebサーバ起動してなかったらブラウザで確認できんよ。


124 :nobodyさん:2006/02/28(火) 14:18:25 ID:???
>>119
おk。やってみるわd。

>>123
自分のパソコンをWeb鯖にするってことだよね?
それが公開されてなくても大丈夫なのかな・・・?

本当に糞みたいな質問なんだけど
>>だからWebサーバ起動してなかったらブラウザで確認できんよ。
起動してないユーザーはそもそもPHPの言語を読めないってこと?

PHPってHTMLファイルの中に直接書き込んでいってブラウザで表示するものだと思ってた・・orz
JavaScriptとは違うのね。・・・もうこれ以上質問する前に勉強してくる。


125 :nobodyさん:2006/02/28(火) 14:39:09 ID:???
>>124には早い気がする。



>起動してないユーザーはそもそもPHPの言語を読めないってこと?
サーバを起動してない>>124は、PHPをHTMLに埋め込んでブラウザで表示してもPHP部分は動かないって事?
と意訳させてもらうと、答えは、

「そうだよばか」

勉強頑張れ〜。




126 :nobodyさん:2006/02/28(火) 14:40:36 ID:???
それじゃ一般ユーザーはPHPで書かれたページは見れないな

127 :nobodyさん:2006/02/28(火) 14:41:34 ID:???
>>124
公開されなくても確認するだけなら別にいいよ。みんなに見せたいなら公開しないと駄目だけど。
Web鯖起動してなかったらPHPはおろかHTMLもブラウザで表示されない。
Web鯖起動しててもPHP組み込んでなかったらただのテキストとして表示される。
入れるのややこしいならここらへんが便利そう
ttp://www.apachefriends.org/en/xampp.html
ttp://www.spacetag.jp/modules/download/

128 :nobodyさん:2006/02/28(火) 14:46:10 ID:???
>>127
>Web鯖起動してなかったらPHPはおろかHTMLもブラウザで表示されない。

論旨は間違っていないが、初心者には余計な誤解を招くぞ。

129 :nobodyさん:2006/02/28(火) 14:46:24 ID:???
>>126

>>124がPHPをHTMLに埋め込むんだからな。
一般ユーザではなく>>124が。

130 :nobodyさん:2006/02/28(火) 14:51:08 ID:???
>>114
すれ違いだが、WindowsつかってるみたいなのでATコマンドしらべとけとか言ってみるテスト


131 :nobodyさん:2006/02/28(火) 15:00:31 ID:???
>>121
> PHPの慣習に倣います。
慣習で言ったら接頭語なんて付けない、型なんて特に気にしない、が普通じゃないか。

132 :nobodyさん:2006/02/28(火) 15:02:33 ID:???
>>122
戻り値は必要があるときだけ受ければいい。
その辺はCと変わらん。

133 :nobodyさん:2006/02/28(火) 15:11:05 ID:???
>>124
> 自分のパソコンをWeb鯖にするってことだよね?
> それが公開されてなくても大丈夫なのかな・・・?
まー、IISじゃなきゃ80ポートをちょこっと受け付けるくらいで甚大な被害は多分出ないって。きっとw

134 :nobodyさん:2006/02/28(火) 15:41:59 ID:???
最近Cになぞらえて考えるやつ多いな

>>117
PHPの変数の型はその場の文脈で勝手に変わるから
変数名で判断するとか無理なんよ
あと、Cだと基本的に全てのシンボルはアドレスと考えられるが
PHPはそうではないからリファレンスを理解する時注意するように

135 :nobodyさん:2006/02/28(火) 17:02:02 ID:???
>>107
俺はスクリプトの最後にバックアップ用ファイルの最終更新時間と現在の時刻を照らして、条件を満たしていればバックアップを上書きするようにしてる。
普段使ってるファイルが壊れたり異常が見られたら、普段のファイル削除→バックアップを普段のファイル名にリネームしている。

136 :nobodyさん:2006/02/28(火) 17:57:58 ID:???
スクリプト中からphp.iniのupload_tmp_dirを変更したいのですが以下のコードを
スクリプト中に記述しても変更出来ません。

ini_set('upload_tmp_dir', "D:/test"));

試しにvar_dumpしてみるとbool(false)と帰ってきています。

どうすれば変更できるでしょうか?

137 :136:2006/02/28(火) 17:58:54 ID:???
コードの記述ミスをしました。

ini_set('upload_tmp_dir', "D:/test"));

ini_set('upload_tmp_dir', "D:/test");  

138 :nobodyさん:2006/02/28(火) 18:01:19 ID:???
そういうのはINI側の設定が優先されると思うよ。
それとWinのセパレーターは/じゃなくて\ね

139 :136:2006/02/28(火) 18:03:20 ID:???
php.ini側の設定では以下の様に設定していない状態になっています。

;upload_tmp_dir =

どの様にすれば変更出来るでしょうか?

140 :nobodyさん:2006/02/28(火) 18:06:46 ID:???
var_dumpではなくini_getだと思う

141 :136:2006/02/28(火) 18:09:53 ID:???
ini_getでも試していますがFALSEが帰ってきます。

142 :nobodyさん:2006/02/28(火) 18:14:43 ID:???
>>136
文頭の;を外したらいけませんか?

143 :136:2006/02/28(火) 18:15:43 ID:???
それも試してみましたが駄目でしたorz

144 :nobodyさん:2006/02/28(火) 18:19:30 ID:???
>>136
D:\testが存在してないとか

145 :136:2006/02/28(火) 18:20:18 ID:???
してますorz

146 :nobodyさん:2006/02/28(火) 18:47:29 ID:z6M7N5M1
みんなマニュアル読もうよ。
PHP_INI_SYSTEM 4 このエントリは、php.ini または httpd.conf (しかし、httpd.confのVHostブ ロック内では不可)で設定可能

147 :nobodyさん:2006/02/28(火) 18:50:11 ID:???
Formの生成から入力チェックまでやってくれるライブラリ探してるんですが、
XMLで記述したForm情報を読み込んで処理できるやつあったら教えてください。

↓こんな感じのXMLを元に処理してくれたらうれしいんですが

<form>
 <element id="name">
  <max_length>30</max_length>
  <min_length>1</min_length>
 </element>
</form>

148 :nobodyさん:2006/02/28(火) 19:05:53 ID:???
csvファイルに変数の値をセットしたいのですが可能でしょうか?
もし可能であれば教えていただけないでしょうか。

149 :nobodyさん:2006/02/28(火) 19:18:52 ID:???
csvファイルを書き出すときに、変数の値を書き出す

150 :nobodyさん:2006/02/28(火) 19:37:39 ID:???
>>136
そもそもスクリプトが実行開始された時点でファイルのアップロードは完了しており、
すでにどこか(指定の)ディレクトリに保存されているので、スクリプト内で改めて
保存先を指定する意味が無い。実際の動作を考えれば判りそうなもんだけど・・・。

>>138
一応'/'でも通るよ。つかエスケープが面倒なので'/'を常用してる。

>>146
ゆとり教育の弊害だと思う

151 :nobodyさん:2006/02/28(火) 19:57:03 ID:???
このスレにいるやつほとんどがゆとり世代なんだがなぁ、、
ゆとり教育ってのは段階的にかなり長期的に続けられている

152 :nobodyさん:2006/02/28(火) 20:09:58 ID:???
>>150に笑ったw

153 :nobodyさん:2006/02/28(火) 20:18:17 ID:???
小人閑居し不善を為す

154 :nobodyさん:2006/02/28(火) 20:49:51 ID:???
そうそう、そのとおり。
元々ゆとり教育したい教育者のムードがあった。

そんな突然ゆとり教育させたら、きちんとした教育者は反発する。

155 :nobodyさん:2006/02/28(火) 21:28:23 ID:???
ゆとり教育は大人の責任

156 :nobodyさん:2006/02/28(火) 21:48:47 ID:???
そうやって何でも人のせいにすればいいさ。




楽をしたがった教職員やPTAのせいだけどね。

157 :nobodyさん:2006/02/28(火) 22:04:52 ID:???
なんの話やねんな

158 :nobodyさん:2006/02/28(火) 22:05:44 ID:???
ここはPHPの質問スレだったような気がしたんですが気のせいですか

159 :nobodyさん:2006/02/28(火) 23:11:14 ID:???
学力崩壊―「ゆとり教育」が子どもをダメにした PHP文庫
和田 秀樹 (著)
http://www.amazon.co.jp/exec/obidos/ASIN/4569579108/ref=pd_sim_dp_4/249-5087703-6782729

160 :nobodyさん:2006/02/28(火) 23:50:56 ID:???
馬鹿に限って血液型とかゆとり教育の話をする、とそういことさ

161 :nobodyさん:2006/02/28(火) 23:58:27 ID:???
俺、血液型はAだけどゆとり教育なんだ。

162 :nobodyさん:2006/03/01(水) 00:24:46 ID:???
>>158
気のせいですね。ここはPHPの雑談スレなんですよ。

163 :nobodyさん:2006/03/01(水) 00:27:02 ID:HmVG72O5
ブラウザがcookieを使えるようになっているかを判別することはできるでしょうか?

164 :nobodyさん:2006/03/01(水) 00:30:16 ID:???
クッキー送って記録されてればOK

165 :nobodyさん:2006/03/01(水) 00:51:43 ID:???
cookieってsession_start()みたいな宣言必要じゃないですよね?
セッションなら上手くいくんですが、クッキーだと上手くいかんとです。
ブラウザ側で禁止してるわけでもないし。

$_COOKIE["hoge"] = "hogetest";
で使ってるんだけど、なぜか上手く保持できない・・・orz

表示するときも echo $_COOKIE["hoge"];
で間違いないですよね?

166 :165:2006/03/01(水) 00:58:57 ID:???
setcookie使ったらいけました・・・orz

手元のPHPリファレンスには
$_COOKIE["hoge"] = "hogetest";

setcookie("hoge", "hogetest");
は同じって書いてあるのですが、これはもしかして嘘でしょうか?

167 :nobodyさん:2006/03/01(水) 00:59:09 ID:???
あのさ、最低、「php cookie」ぐらいでぐぐれよ。

168 :nobodyさん:2006/03/01(水) 01:02:56 ID:???
>>166
はい嘘です。
setするときにはsetcookie使いなさい以上

169 :nobodyさん:2006/03/01(水) 01:07:06 ID:ektJPim1
そのリファレンスの書名を是非教えてください

170 :nobodyさん:2006/03/01(水) 07:32:54 ID:???
>>122
エラーのときfalseを返す関数はPHPでは一般的だったりする
str_word_countとか引数の違いで戻り値がstringだったり配列だったりするし
PHPやるなら型のことは忘れないと駄目だよ

171 :nobodyさん:2006/03/01(水) 08:18:27 ID:???
usort関数で使うためのソート関数についての質問です。

$a[1] の内容 で 昇順にソートする場合には下記のような方法で出来ますが、
この場合、(A, F, G, Z, a, f, g, z) と並んでしまいます。
(A, a, F, f, G, g, Z, z) のようにアルファベットの大文字と小文字を区別しないような
ソート関数を作りたいのですが、どうすれば良いでしょうか?

function cmp($a, $b) {
if ($a[1] < $b[$1) { return -1; }
if ($a[1] == $b[1) { return 0; }
if ($a[1] > $b[1]) { return 1; }
}


172 :nobodyさん:2006/03/01(水) 09:11:40 ID:???
strcasecmpすればいいだけでしょーがー

173 :nobodyさん:2006/03/01(水) 12:22:53 ID:C+OfQRhv
PHPで $hoge に任意の文字が含まれているとします。
もし、それが数字である場合に真を返す関数はありますか?

174 :nobodyさん:2006/03/01(水) 12:36:56 ID:???
>>173
is_numeric とか gettype などいかがでしょう。
実際に試してないので自信ないですが。

はい、次ぼくの質問

perlで言うところの

print <<HOGE;
なんたらかんたら
HOGE

みたいな書式はありますでしょうか?
この書き方の呼び方が分からんので検索できなかったす……

175 :nobodyさん:2006/03/01(水) 12:40:55 ID:???
>>174
このスレを「 <<< 」で検索

176 :174:2006/03/01(水) 12:41:13 ID:???
自己解決。ヒアドキュメントね。そうそう。


177 :174:2006/03/01(水) 12:42:26 ID:???
>>175
失礼しました!猛省します。
あきれないで……今後ともよろしくお願いします

178 :nobodyさん:2006/03/01(水) 12:44:38 ID:???
ちなみにecho以外にも、変数の格納などに応用可能。

179 :nobodyさん:2006/03/01(水) 13:07:10 ID:YIO/KfnW
ヒアドキュメントってPerlだと

 print ($flag)? <<TEXT1 : <<TEXT2;
なんたら1
TEXT1
なんたら2
TEXT2

みたいに書けるんだけど、PHPの場合はこれって

 print ($flag)? <<<TEXT1
なんたら1
TEXT1
 : <<<TEXT2
なんたら2
TEXT2;

って書くしかない?

180 :nobodyさん:2006/03/01(水) 13:28:25 ID:???
>>173
ctype_digit($hoge);
という関数もある。
Cのネイティブ関数なのでこれでよければctype関数の方が早い

ただし$hogeは文字列
$hoge = 10;
ctype_digit($hoge)はfalseになる
$hoge = 48; //'0'のASCIIコード0x30
ctype_digit($hoge)はtrueになる
ctype_digit("$hoge");と文字列にすると両方trueになる

181 :nobodyさん:2006/03/01(水) 14:02:36 ID:???
>>179
後者しかないね。
PHPだと識別子直後の改行が必要なうえに、
次の行に何が書いてあっても取り込む文字列として見なされる。

182 :nobodyさん:2006/03/01(水) 14:48:01 ID:???
 print ($flag)? (<<<TEXT1
なんたら1
TEXT1)
 : (<<<TEXT2
なんたら2
TEXT2);

カッコで閉じても無理?

183 :nobodyさん:2006/03/01(水) 15:21:27 ID:???
>>182
何をしたいのか分からん。
おまけにTEXT1とかの後ろに)を付けるのは文法エラーだ。

184 :nobodyさん:2006/03/01(水) 16:09:03 ID:???
ちょっと教えてほしいのですが
幾つかのデータを表にだしある行のデータを変更したら一番端に作っているチェックを
Javaでonにして、更新時はそのチェックをついている行のデータを更新させているのですが
↓こんな感じ 各チェックボックスの値は主キー
foreach($_POST['check'] as $val){
 mysql_query("update hoge set a='".$_POST{'a'.$val}."',b='".$_POST{'b'.$val}."' ");
}
$_POSTも項目ごとに必要だし各項目の後ろの主キー(一意の番号)をつけないといけないので
もっとスマートor簡単な処理方法なにかないでしょうか?

185 :nobodyさん:2006/03/01(水) 17:24:45 ID:???
>>184
質問とは関係ないけどwhereはいらないのか
それと注射対策にエスケープしろよ

186 :nobodyさん:2006/03/01(水) 18:04:05 ID:MpRVy8N5
>>184
何がしたいのか、解読するのが面倒なので、もっと質問を整理してください。

187 :nobodyさん:2006/03/01(水) 18:44:58 ID:???
>>183
echo ($hoge) ? 'true': 'false';

188 :nobodyさん:2006/03/01(水) 18:46:21 ID:???
>>184
日本語で

189 :nobodyさん:2006/03/01(水) 18:49:15 ID:???
>>184
JavaとJSは別物

スマートにやるなら配列でもつかえばできるだろ?

190 :nobodyさん:2006/03/01(水) 19:17:28 ID:???
PHPで掲示板を作ってるんですが、2chとかはスレのURLが「スレ番/レス」となってますよね。
ということは、新規にスレをたてた時には新しいディレクトリを作成し、さらにその中にindex.php(ログからスレ内容を加工、表示するスクリプト)とログファイルを生成してるんでしょうか?
普通のレン鯖でこういう仕様はやめた方がいいんでしょうか?

191 :nobodyさん:2006/03/01(水) 19:34:34 ID:???
>>190

> 新規にスレをたてた時には新しいディレクトリを作成し
そんなことはやってません。

ttp://*.2ch.net/test/read.cgi/*/1140786348/l50

read.cgiで、/以降を解析して表示しているだけです。

> 普通のレン鯖でこういう仕様はやめた方がいいんでしょうか?
フォルダ作る分には全然構わないと思います


ここまで書いて自信なくなってきましたが、
おそらくこうだったと思います。

192 :nobodyさん:2006/03/01(水) 19:36:39 ID:???
へー

193 :nobodyさん:2006/03/01(水) 19:41:00 ID:???
>>190
参考までに

【スレッド】2ch型掲示板 14 【フロート型】@WebProg
http://pc8.2ch.net/test/read.cgi/php/1127896640/l50


194 :nobodyさん:2006/03/01(水) 20:02:46 ID:???
>>191
そういえばread.cgiが間に入ってますね。ありがとうございます。

>>192
誘導ありがとうございます。参考にさせてもらいます。

195 :nobodyさん:2006/03/01(水) 21:09:07 ID:MpRVy8N5
>>194
パスインフォ

196 :nobodyさん:2006/03/01(水) 23:10:25 ID:9If1oYZF
midiファイルを再生させるソース
<EMBED
SRC=".mid"
WIDTH="150"
HEIGHT="40"
AUTOSTART="FALSE"
REPEAT="TRUE"
SAVE="TRUE"
>
これの類で複製を出来なくする方法ってどうやるのですか?

197 :nobodyさん:2006/03/01(水) 23:12:43 ID:???
>>196
PHP関係ない

198 :196:2006/03/01(水) 23:13:19 ID:9If1oYZF
ごめんスレタイ見てなかった。
どこ逝きゃいい?

199 :nobodyさん:2006/03/01(水) 23:54:54 ID:???
>>196
探せよ屑

200 :nobodyさん:2006/03/02(木) 04:18:35 ID:???
WEBアプリケーションは

1.入力
2.入力チェック
3.確認
4.処理
5.完了

ってな感じが一般的だと思うんですが、これってひとつファイル中で if 使ってやるほうがいいか
form.php、check.phpとかファイルを分けてやるほうがいいかどう思いますか?

201 :nobodyさん:2006/03/02(木) 05:02:30 ID:???
>>200
index.php と check.inc や end.inc というように、
1つのphpファイルと多数のincファイル(インクルードするファイル)で構成するのがいいと思う。


202 :nobodyさん:2006/03/02(木) 08:24:23 ID:???
別に拡張子はなんだっていいよ。

203 :nobodyさん:2006/03/02(木) 09:20:52 ID:c/Xyk/Yy
次のようなサンプルを良くみかけます。
$fp = @fopen($editfile, 'w');
$fp = fopen($editfile, 'w');


fopen関数の横に「@」があると無い場合とでは動作の違いはあるのでしょうか?


204 :nobodyさん:2006/03/02(木) 09:28:08 ID:QF2KFk3i
>>203
エラーメッセージを抑制するだよ


そこでおいらの質問というか確認をお願いしますだ
Fatal error: Cannot redeclare user_function() (previously declared in /home/www/hoge.php:4) in /home/www/hoge.php on line 3
みたいなエラーが出たんだけど
ループの中で何回も
require 'user_function()';
をやっていたのがいけないんですよね?

205 :nobodyさん:2006/03/02(木) 09:42:45 ID:???
>>204
エラーメッセージ通りじゃねーか。

206 :nobodyさん:2006/03/02(木) 10:07:55 ID:???
>>204
わかってんじゃねーか

207 :nobodyさん:2006/03/02(木) 10:08:34 ID:???
>>200
システムの規模なんかにもよる。

208 :203:2006/03/02(木) 10:51:59 ID:???
>>204
ありがとです

209 :203:2006/03/02(木) 10:53:31 ID:???
>>204
教えてくれたお礼に教えてあげよう。

includeはループの中で何度でもできるが、requireは1回しかできないから
ループの中で何度も使いたい場合は include使えばいいだよ


210 :nobodyさん:2006/03/02(木) 10:59:59 ID:???
つ require_once

211 :nobodyさん:2006/03/02(木) 11:03:29 ID:???
>>209
> requireは1回しかできないから
できる。
includeとrequireはエラー時にWarningになるだけかFatal Errorになってしまうかの差しかない。

212 :nobodyさん:2006/03/02(木) 11:06:34 ID:???
>>211
勘違いしてない?
http://www.komonet.ne.jp/~php/chap7.htm


213 :nobodyさん:2006/03/02(木) 11:09:55 ID:???
ttp://jp.php.net/manual/ja/function.require-once.php
ttp://jp.php.net/manual/ja/function.require.php
ttp://jp.php.net/manual/ja/function.include-once.php
ttp://jp.php.net/manual/ja/function.include.php

214 :nobodyさん:2006/03/02(木) 11:12:39 ID:???
そのサイト、大丈夫か?

require()とinclude()は エラーの扱い方を除けば全く同様に振舞います。

215 :nobodyさん:2006/03/02(木) 11:14:35 ID:???
どうしてこう、サイトといい書籍といい、PHPの解説してるとこって嘘書いてるとこが多いんだ?

216 :nobodyさん:2006/03/02(木) 11:14:45 ID:???
同様に振舞うとかそういう問題じゃないと思うが。
printfとかprintとかechoが同じといってるようなもんだな。

217 :nobodyさん:2006/03/02(木) 11:18:31 ID:???
公式マニュアルからのコピペですが。
英語だと
require() and include() are identical in every way except how they handle failure.

218 :nobodyさん:2006/03/02(木) 11:27:06 ID:???
>>212
ソースは解説サイトよりマニュアルを参照した方がいい。
そこで自分の過ちに気付き、自分が間違っていたんだと認める事ができれば人間としてもレベルが高い。
更に変な解説したサイトに嫌がらせのメールを送ったり勝手にMLに登録したら次の日は大吉。

219 :nobodyさん:2006/03/02(木) 11:28:06 ID:???
>>212
[a.php]
<?php
require("b.php");
require("b.php");
?>

[b.php]
<?php
print "a\n";
?>

実行結果
a
a

220 :203:2006/03/02(木) 11:29:03 ID:???
なぬ、解説サイトが間違っていたのか
それをずっと信じてました
すみません

221 :nobodyさん:2006/03/02(木) 11:33:10 ID:???
http://www.komonet.ne.jp/~php/chap13.htm

「(2)クッキーは、設定されたものと同じパラメータで削除する必要があります。クッキーを削除する場合には、ブラウザの削除機構を起動する為に、必ず有効期限を過去に設定する必要があります。」
もうむちゃくちゃだな。

「Cookieの削除をするには過去に設定するしかない」ってデマ情報がやまほどあるんだけど
真面目にいってるんだろうか。

setcookie( "Cookie", ""); だけで削除できるだろうが。



222 :nobodyさん:2006/03/02(木) 11:39:54 ID:???
http://hotwired.goo.ne.jp/webmonkey/2000/02/index4a.html

223 :nobodyさん:2006/03/02(木) 11:50:43 ID:???
>>221
http://www.php.net/manual/ja/function.setcookie.php

224 :204:2006/03/02(木) 11:53:31 ID:???
皆さん情報ありがとうございます。
思いのほか盛り上がる内容だったみたいでなんだか嬉しいです。

>>210さんの方法が一番楽そうだったので、安直な私としては即採用です。
どう見ても便利です。ありがとうございました。


225 :nobodyさん:2006/03/02(木) 11:56:43 ID:???
>>224
1番楽そうというか、それしか回答はないよな

226 :nobodyさん:2006/03/02(木) 12:03:08 ID:???
>>224
俺としては何でループの中でrequireしないといけないのかが気になるがな

227 :nobodyさん:2006/03/02(木) 12:03:31 ID:???
>require 'user_function()';
コレの意味がわからんのは俺だけか?

228 :nobodyさん:2006/03/02(木) 12:16:33 ID:???
>>227
もちろんファイル名だろ

229 :204:2006/03/02(木) 12:20:20 ID:???
>>226
うーん、間違った行為なんでしょうか
ループが無駄に長いもので、ループの外にrequire書いてもいいんですが。
requireとその中にユーザ関数があるんですが、記述が離れると一覧性が下がるかなぁと。

>>227
oops,
require 'user_function.inc';
とでも皆さん脳内変換してくれてたんですね・・。


230 :221:2006/03/02(木) 12:22:04 ID:???
>>223
「クッキーを削除する場合には、ブラウザの削除機構を起動するために必 ず有効期限を過去に設定する必要があります。 前の例でクッキーを削除する方法のサンプルです。」と
公式マニュアルにもあるのか。
値が無いCookieをSetすることでFirefoxやIEでは正常にCookieが削除されるけど、これは仕様外の動作なのかな。


231 :nobodyさん:2006/03/02(木) 13:04:31 ID:???
>>230
「クッキーは設定されたものと同じパラメータで削除する必要があります。 値が空文字列("")で、その他の全ての引数が前にsetcookieをコールした時と 同じである場合に、指定された名前のクッキーはリモートクライアント上から 削除されます。」
とも書いてあるんだから両方とも正しいんじゃない?

232 :nobodyさん:2006/03/02(木) 13:42:54 ID:???
mysql_query()関数で正しく実行できなかった場合に
詳細を知る方法はないでしょうか?
sql文をよく間違うのですが、
原因を見つけるまでかなり時間がかかります。

$error = mysql_query($sql);
echo $error;
これでは無理でした・・・

233 :nobodyさん:2006/03/02(木) 13:49:35 ID:???
del_set_cookie();
を使いましょう。








ユーザ関数で

234 :nobodyさん:2006/03/02(木) 14:22:21 ID:???
HTMLフォームのsubmitボタンから、外部PHPスクリプトの特定の関数を呼び出すことはできますか?

235 :nobodyさん:2006/03/02(木) 14:31:46 ID:???
>>234
(--;) ウ〜ン
何を突っ込んでいいのやら…

236 :nobodyさん:2006/03/02(木) 15:11:17 ID:???
>>232
>$error = mysql_query($sql);
これで$errorにクエリが成功/不成功したかという情報が入ってるから、
その情報を元に、別の関数(直前のクエリのエラーを得る)で詳細を取得。
つかマニュアル読める環境で作業してないのけ?

237 :nobodyさん:2006/03/02(木) 15:54:52 ID:wuWQEqGX
助けてください。お手上げなんです。

hatena というテーブルに word というカラムがあります。このカラムには hatena goog good のように単語が半角スペースにて区切られ格納さています。

例えば hatena という単語と完全一致する単語があるレコードすべてを表示するにはどうしたらいいのでしょうか?

この場合、wordというカラムに hatena だけが入っているレコードはもとより hatena www yahoo のように他の単語もはいっているレコードも表示しなければなりません。

どうぞよろしくお願いします。

238 :nobodyさん:2006/03/02(木) 15:58:13 ID:???
板違いじゃね?

239 :nobodyさん:2006/03/02(木) 15:59:11 ID:???
DB板もエスパーいないよ

240 :nobodyさん:2006/03/02(木) 16:00:45 ID:wuWQEqGX
PHPのプログラムがほしいのですが。

241 :nobodyさん:2006/03/02(木) 16:09:09 ID:???
>>240
どこがどうお手上げなんだか示せ。

242 :nobodyさん:2006/03/02(木) 16:11:25 ID:wuWQEqGX
まったく分からないんです。

われながら考えたのですが、preg_match()でなんとかとはいきませんでした。

243 :nobodyさん:2006/03/02(木) 16:11:37 ID:???
>>237
SQLの範疇だと思うんだが?
普通にSELECT 〜 WHERE word = 'hatena'


244 :nobodyさん:2006/03/02(木) 16:14:27 ID:wuWQEqGX
それだと hatena だけが入っているレコードは取得できるのですが、 hatena 2ch のように他の単語が入ってしまうと取得できないんです。

245 :nobodyさん:2006/03/02(木) 16:16:35 ID:???
>>232
>>236が言うように、マニュアルですぐに分かりそうなもんだが。
mysql_error -- 直近に実行されたMySQLコールのエラーメッセージを返す
mysql_errno -- 直近のMySQL処理からエラーメッセージのエラー番号を返す

246 :nobodyさん:2006/03/02(木) 16:18:56 ID:???
>>244
SELECT 〜 WHERE LIKE 'Q%'

247 :246:2006/03/02(木) 16:19:35 ID:???
>>244
すまん、暴発した。
SELECT 〜 WHERE LIKE 'Q%'


248 :nobodyさん:2006/03/02(木) 16:20:26 ID:wuWQEqGX
>>246
それだと haten sql でもヒットしてしまいませんか?

249 :246:2006/03/02(木) 16:21:15 ID:???
何で連続で暴発する…。LIKE使ってみ。
SELECT 〜 WHERE word LIKE '%hatena%

250 :nobodyさん:2006/03/02(木) 16:22:36 ID:wuWQEqGX
なるほど、ありがとうございます。

ところで爆発って?

251 :nobodyさん:2006/03/02(木) 16:26:16 ID:???
>>248
あ、単語のみか。不恰好だが、
SELECT 〜 WHERE word = 'hatena'
OR word LIKE 'hatena %' OR word LIKE '% hatena %' OR word LIKE '% hatena'

>>250 いや、書き込みボタン押してないのに、何故か書き込まれたので。

252 :85:2006/03/02(木) 16:27:29 ID:tZ9efk0A
>>85で質問をした者です。

ファイルを連番で1.4メガバイトずつに分割したいのですが、
やり方がわかりません。
fopen、fread、fwriteを使うという事を以前教えてもらい、googleで検索しましたが、よく分かりません。
どのように記述すればよいか教えてください。
例えば、hoge.swf(3MB)を、hoge1.swf(1.4MB),hoge2.swf(1.4MB),hoge3.swf(200KB)に分割するような感じです。

253 :nobodyさん:2006/03/02(木) 16:28:55 ID:???
>>237
スプレッドシートではなく、DBMSを使ってるらしいことは判ったが、
>hatena という単語と完全一致する単語があるレコードすべてを表示する
条件にマッチするものを取得→表示で問題があるのか?
それとも表示の条件と取得の条件が異なるのかい
取得に関して話が出てきてないように思えるが、
そうなら何のために取得が必要なのか説明もしてくれ。


254 :nobodyさん:2006/03/02(木) 16:38:38 ID:???
>>252
hoge.swfをfopen(rb)、hoge1.swfをfopen(wb)
freadでhoge.swfから固定バイト読み込みhoge1.swfに書き込み
(読み込みは小分けにするのが普通だから何度か繰り返す。1MBぐらないなら一気にやってもいいも)
最後にhoge1.swfをfclose。
hoge.swfのEOFに達してなければ新しくhoge2.swfをfopen、hoge1.swfと同様に処理。
全ての最後にhoge.swfをfclose。

255 :nobodyさん:2006/03/02(木) 16:54:36 ID:???
>>230
それホントに削除されてるの?空文字列が格納されてるわけじゃなくて?

256 :nobodyさん:2006/03/02(木) 16:57:22 ID:???
>>229
requireはいちいちディスクアクセス&ソースのコンパイルが入るので
そんな真似すると遅い&サーバー負荷になるよ。
せっかくのPHPのキャッシュ機能も宝の持ち腐れ。

そもそも一瞥できないほど長いループブロック書いてる時点でダメダメって気がするけど。

257 :nobodyさん:2006/03/02(木) 17:03:02 ID:???
>>252
分割はそのうち出来るだろうから他の識者に任せるとして、
それよりも、分割してダウンロードさせたファイルを端末サイドで
結合させるロジックに非常に興味があるな。
しかもauだそうで…
まさか、公式BREWアプリでやろうってか?
BREWの通信制限3Mの壁とか…
なぞは深まる・・・

258 :nobodyさん:2006/03/02(木) 17:03:24 ID:???
>>237
select 〜 where word like '% $w %' or word like '$w %' or word like '% $w'
って空白込みでlikeを使う手じゃないの?
wordカラムのデータを '単語 単語 単語' にしないで ' 単語 単語 単語 ' って先頭と末尾にも空白入れとけば
select where word like '% $w %'
で一発だけど、そんな先のことを見据えた設計はしてないんでしょう。

いずれにせよPHPは「全く」関係ない。

259 :nobodyさん:2006/03/02(木) 17:06:38 ID:???
>>252 即興。動くかどうかは怪しい。
$handle_r = fopen("hoge.swf", "rb");
$capacity = (int)(1.4*1024*1024);
for($n = 0; $data = fread($handle_r, $capacity); $n++) {
$filename_w = "hoge" .$n. ".swf";
$handle_w = fopen($filename_w , "wb");
fwrite($handle_w, $data);
fclose($handle_w);
}
fclose($handle_r);

260 :nobodyさん:2006/03/02(木) 17:08:17 ID:???
>>252
1.元のファイルを”r”で開く。
2.1.4MB分読み込む
3.分割ファイルNo.1を"w"で開く
4.3のファイルに2の内容を書き込む
5.3のファイルを閉じる
6.2にもどって次の分割ファイル名をNo.2にする
7.元のファイルを全部出力し終わったら1のファイルを閉じる

幼稚園児に物を教えてるみたいだ

261 :nobodyさん:2006/03/02(木) 17:15:53 ID:???
>>260
>>252は、たぶんその「2」が判らんのだと思うよ。

262 :nobodyさん:2006/03/02(木) 17:19:32 ID:???
分割したFlashはどうやったら見られますか


という質問が来そうな気がする

263 :nobodyさん:2006/03/02(木) 17:20:00 ID:???
>>261
マニュアル見ればすぐ判るじゃん(w
っていうか、そもそも「1.4メガバイト」とか言ってる時点で、
バイナリを扱う知識に欠けているのは予想できるんだが。
たぶん引数に14000000とか指定するんだろうな。

264 :nobodyさん:2006/03/02(木) 17:26:55 ID:???
>>257
激しく同意

265 :nobodyさん:2006/03/02(木) 18:00:41 ID:???
>>261
fread使えとまで指示されてそれが分からんっつーのもどうかと思う

266 :nobodyさん:2006/03/02(木) 18:40:57 ID:???
>>237
ポイント尽きた?

267 :204:2006/03/02(木) 19:03:53 ID:???
>>256
include_onceのほうがいいのかしら・・
外に出せって事ですよね早い解決は

>>そもそも一瞥できないほど長いループブロック書いてる時点でダメダメって気がするけど。
ごもっとともです・・、勉強がてらなのに一人では大き目のプログラムを行き当たりばったりで書き始めたバージンソースなので
今見ると自分でも寒いソースだ・・と痛感致します
><

268 :nobodyさん:2006/03/02(木) 19:29:53 ID:???
>>263
> たぶん引数に14000000とか指定するんだろうな。
いえ、そこは1433600を指定してました。皆様のレスを見ているとそれも間違いのような気がしますが。
バイナリの知識に乏しいというのは正解です。

269 :nobodyさん:2006/03/02(木) 19:31:40 ID:???
>>262
そこはちゃんと考えてあります。
自分専用の非公開ツールとして作ってるので、Windows上で結合しますよ。

270 :nobodyさん:2006/03/02(木) 19:40:26 ID:???
>>261
「5」が判りませんでした

271 :nobodyさん:2006/03/02(木) 20:36:14 ID:???
質問です。
PHPからoracleへ接続したいのですが
oracleクライアントを使わずに接続する方法を知っている方はおられませんか?
JAVAではthinを使って接続しました。
似たような方法があれば教えてください。
環境は 窓2000にoracle10 REDHAT9にPHP4.4.0です。
よろしくお願いします。

272 :nobodyさん:2006/03/02(木) 21:04:15 ID:???
>>234-235
思わず吹いた

273 :nobodyさん:2006/03/02(木) 22:20:41 ID:???
>>268-270
偽だよな?と釣られてみる。

274 :nobodyさん:2006/03/02(木) 22:44:53 ID:???
>>269
>>91で言っている事となんか違うぢゃねぇかYO
何がしたいんだか・・・

275 :nobodyさん:2006/03/02(木) 23:04:16 ID:???
>>271
ODBCで繋がんないか?

276 :nobodyさん:2006/03/02(木) 23:37:27 ID:???
>>258
select 〜 where concat(" ", word, " ") like '% hatena %'
でどうかな(MySQLの場合だが)

277 :nobodyさん:2006/03/03(金) 00:16:47 ID:???
>>266
漏れも突っ込もうと思ってた。
キャンセルかよ!

278 :nobodyさん:2006/03/03(金) 02:17:49 ID:???
各板の書き込み数と、
各板から出される削除依頼の件数と、
その比率を全部調べて表にしてほしいんだけど。


279 :nobodyさん:2006/03/03(金) 02:20:02 ID:???
>>278
質問でも雑談でもOKのスレッド 52
http://ex9.2ch.net/test/read.cgi/accuse/1129722955/

280 :nobodyさん:2006/03/03(金) 04:44:58 ID:???
ご意見ください。

例えば掲示板へ書き込まれた本文の内容などの文字列を、

・改行が6回以上含まれているものは、5回目の改行位置までを表示
・改行が5回までのものはそのまま表示
※ここでの改行は"<br />"です。

のようにしたい場合、あれこれ考えて以下のようにしたのですが、もっとスマートな方法があるよ!とかあったら教えてください。

個人的にpreg_match()を2連続叩いているのがなんか気持ち悪いので。

<?php

$vl["body"] = 掲示板に書き込まれた本文の内容;

//改行が6回以上あったら5回目の改行までを表示
if ( preg_match("/(.*?<br \/>){6}/", $vl["body"]) ) { ?>
preg_match("/(.*?<br \/>){5}/", $vl["body"], $match);
echo $match[0] . ".......省略して表示されています。";

//改行が5回までならそのまま表示
} else {
echo $vl["body"];
}

?>

よろしくおながいします。

281 :280:2006/03/03(金) 04:47:43 ID:???
if文の行の末尾に ?> が残ってついてますが、そこには突っ込まないでください。。

282 :nobodyさん:2006/03/03(金) 05:15:09 ID:???
>>280
$array = explode('<br />', $vl["body"]);
for ($i = 0; $i < 5; $i++) echo $array[$i].'<br />';

283 :07012320212468_mb:2006/03/03(金) 06:38:49 ID:j89wU6/4
>>273
> 偽だよな?と釣られてみる。
いえ、本人ですが。
どうやれば信じてもらえるかわからないので、フシアナサンをします。


284 :nobodyさん:2006/03/03(金) 07:48:02 ID:???
質問する場合、IDを出さないと誰が誰かわからん

285 :nobodyさん:2006/03/03(金) 10:07:21 ID:???
ID出したって翌日にはわかんなくなるけどな。
だから初回ID+次回から名前に番号、なんじゃないのか?

286 :nobodyさん:2006/03/03(金) 11:07:53 ID:???
>>283
ちなみにそれってどういう利点があるの?
PCがインターネットに繋がってないか極端に回線速度が遅い場合以外の利点が思い付かないんだけど。

287 :nobodyさん:2006/03/03(金) 11:30:59 ID:???
>>283
フシアナってもしょうがなかろうに・・・
自分を特定してもらいたいんだったら、コテハン+トリップ これ最強


288 :07012320212468_mb:2006/03/03(金) 11:44:56 ID:???
>>286
> PCがインターネットに繋がってないか極端に回線速度が遅い場合以外の利点が思い付かないんだけど。
後者です。ダイヤルアップ回線で伝送損失60デシベルです。

289 :nobodyさん:2006/03/03(金) 11:48:47 ID:???
>>269
Windowsなら、 copy /b a+b+c d
みたいに標準ツールでできるもんな

Win以外でも同じだが

290 :nobodyさん:2006/03/03(金) 11:53:36 ID:???
>>289
それを言っちゃおしまいでw
自分でしか使わないようなら、何もPHPを使わなくても、フリーの分割・結合ツールを使った方が早い。
>>91のころはサーバ側で分割する必要があると思っていたが…
それにしたって、最初から分割してアップしておけばいい話だな。

291 :280:2006/03/03(金) 12:06:33 ID:???
>>282

すみません。条件が抜けていました。

私が書いたのにあるように、

・6行以上ある場合は、"省略して表示されています"というメッセージを5行目の末尾に追加し、そこまでを表示

が、必要です。

282さんの例のは一番最初に試した方法なのですが、
それだと配列の長さをによってif()で分岐させなければならないので、
結果として長くなってしまいました。

292 :nobodyさん:2006/03/03(金) 12:15:54 ID:mLdhBg36
すいません。ご質問させてください。
プログラム内で現在実行されているPHPがDSOなのかCLIなのか
を判別したいのですが何か方法はありますでしょうか?

よろしくお願いします。

293 :nobodyさん:2006/03/03(金) 12:21:18 ID:???
>>291
最後に
if(count($array) > 5){echo '省略して表示されています';}
で良いんじゃね?

294 :280:2006/03/03(金) 12:23:34 ID:???
>>291で、長くなってしまったと書きましたが、
自分の例と282さんの書いた例を改良したものでは、長さ的にはあんまり変わりません。

「他にどんな書き方があるかな?」が知りたいだけの、
まさしく「くだらない質問」です。

282さんのに手を加えるとこんな感じですよね。

$vl["body"] = 掲示板に書き込まれた本文の内容;
$array = explode('<br />', $vl["body"]);
if ( count($array) > 5 ) {
for ($i = 0; $i < 5; $i++) {
echo $array[$i] . '<br />' . '.......省略して表示されています';
}
} else {
echo $vl["body"];
}

295 :280:2006/03/03(金) 12:31:34 ID:???
>>293

すみません。。書いてたら返信が。

$vl["body"] = 掲示板に書き込まれた本文の内容;
$array = explode('<br />', $vl["body"]);
for ($i = 0; $i < 5; $i++) {
echo $array[$i].'<br />';
}
if(count($array) > 5) {
echo '省略して表示されています';
}

ってことですね。
いまいちすっきりしませんが、ご意見をありがとうございます。

296 :nobodyさん:2006/03/03(金) 12:33:20 ID:???
>>295
それだと、3行とかの場合にWarningが出るから

$vl["body"] = 掲示板に書き込まれた本文の内容;
$array = explode('<br />', $vl["body"]);
for ($i = 0; $i < 5; $i++) {
if(isset($array[$i])){
echo $array[$i] . '<br />';
}
}
if ( count($array) > 5 ) {'.......省略して表示されています';}

かな。

297 :280:2006/03/03(金) 12:37:38 ID:???
しつこくてすいません。

ちなみに>>295のやり方だと、本文の行数が4行以下の時(<br />が2個しかない等)に
存在しない配列の添え字を参照してしまうので、NOTICEエラーになります。

298 :nobodyさん:2006/03/03(金) 12:38:23 ID:???
NOTICEじゃなかったか。。

299 :280:2006/03/03(金) 12:41:38 ID:???
と、時系列がおかしい書き込みになりまくってますが、
explodeのやり方だと、結果としてはやっぱり微妙に長くなるようです。

300 :nobodyさん:2006/03/03(金) 12:44:36 ID:???
>>299
正規表現使わない分だけ速度は数倍早いけどね

301 :nobodyさん:2006/03/03(金) 12:49:19 ID:???
>>299
スクリプトの行数を減らしたいのか?
実行速度を上げたいのか?

302 :07012320212468_mb:2006/03/03(金) 13:07:19 ID:j89wU6/4
>>290
自分のPCのHDD内にあるファイルを分割するならそれで良いんですが、
その「フリーの分割結合ツール」を始め、インターネット上にあるソフトウェアやマルチメディアファイルは、
データ量が大きいため、ダイヤルアップで何十分もかけて課金されながらダウンロードするのがもったいなく感じ、このツールを考案しました。

303 :280:2006/03/03(金) 13:13:14 ID:???
どうしてもview(htmlソース)側にロジックを混入しなければいけない状態だったので、
スクリプトの行数(というか工程)を極力減らして、viewが見づらくならないようにしようとしていました。

速度の問題もよくよく解っていることなので、色々天秤にかけた結果、
ロジック側を改良してview側では <?php echo $vl["body"] ?> だけで済むようにすることにしました。

ロジック側が各画面での書き込みデータ取得を共通化したモジュールなので、
ちょっと作業は増えますが、
1.一覧表示用データ形式で取得
2.詳細表示用データ形式で取得
3.管理画面表示用データ形式で取得
などのようにロジックを作成し、
呼び出し時のパラメータで切り替えられるようにしようと思います。

色々とありがとうございます。

304 :nobodyさん:2006/03/03(金) 13:17:12 ID:???
>>302
つまりはなんだ、君のやろうとしているのはこういうこと貝?

1)取得対象のファイルのURLとを元にPHPにデータを取ってこさせ、サーバ上に保存
2)保存されたデータファイルを携帯電話でダウンロード(ここで分割の必要性)
3)携帯にダウンロードした細切れファイルを外部メモリなどを経由してPCへ転送
4)PC上で合体!

で、2)でつまずいているという事だな?



305 :nobodyさん:2006/03/03(金) 13:18:46 ID:???
>>303
なんだか良く判らないけど、さようなら

306 :07012320212468_mb:2006/03/03(金) 13:20:02 ID:j89wU6/4
>>304
まさにその通りです!

307 :nobodyさん:2006/03/03(金) 13:27:37 ID:???
>>303
$vl["body"] = 掲示板に書き込まれた本文の内容;
$i = 0;
foreach(explode('<br />', $vl["body"]) as $l) {
if(++ $i >= 5) { echo '省略して表示されています'; break; } else { echo $l; }
}

308 :nobodyさん:2006/03/03(金) 13:28:58 ID:???
あ、$lのechoで<br/>つけるのわすれた

309 :nobodyさん:2006/03/03(金) 13:34:57 ID:???
>>303
これじゃダメ?
$str = "str1<br>str2<br>str3<br>str4<br>str5<br>str6<br>str7";
$reg = preg_replace("/((.*?<br>){5})(.*)/","$1省略して表示されています",$str);
echo $reg;

310 :nobodyさん:2006/03/03(金) 13:37:08 ID:???
>>306
で、どこまで出来ていて
何が判らないんだっけ?

311 :nobodyさん:2006/03/03(金) 13:42:59 ID:???
>>309
それ、5行無かったらどうなるんだ?

312 :309:2006/03/03(金) 13:45:01 ID:???
>>311
$strがそのまま表示された。
それと俺、ど初心者だからあまり信用しないで。

313 :nobodyさん:2006/03/03(金) 13:46:47 ID:???
>>304
昔、それのメール版を作った事あるよ。IPリーチャブルな環境じゃなかったので。
誰かが作った公開サイトもあった。今考えると何も対策もなかったので、
メールボムの温床になりかねんが、随分と大らかな時代だった。

314 :nobodyさん:2006/03/03(金) 14:36:04 ID:???
>>306
で、>>259じゃいかんのか?
ちょっと作り変えれば、ファイル名などは任意にできるが。

315 :nobodyさん:2006/03/03(金) 15:55:16 ID:j89wU6/4
>>314
今から書き写してテストしてみます。

316 :nobodyさん:2006/03/03(金) 16:29:27 ID:???
>>315
今からって...ヲィ、大丈夫か?

317 :07012320212468_mb:2006/03/03(金) 16:51:16 ID:???
$path = $_POST["url"];
ファイル名を
$filename_w = dirname($path) + $n + "_" + $basename($path);
と記述しましたが、syntaxエラーが出ます。
どのようにすれば上手くいきますか?

318 :nobodyさん:2006/03/03(金) 17:00:54 ID:???
phpって何で良くセキュリティホール見つかるの?
こんな品質じゃ仕事で使えないじゃん。

319 :nobodyさん:2006/03/03(金) 17:11:17 ID:???
>>317
そんな質問で答えられる奴はエスパーだぞ。

「+」->「.」に汁 byエスパー2号

320 :nobodyさん:2006/03/03(金) 17:11:20 ID:???
>>317
+

.
に変えろ

321 :nobodyさん:2006/03/03(金) 17:24:40 ID:j89wU6/4
>>319-320
できました!ありがとうございます!
あとは3g2ファイルのヘッダを付加して
DL用の<OBJECT>タグをつければ完成です!

322 :nobodyさん:2006/03/03(金) 17:39:07 ID:???
>>321は絶対にまた帰って来ると思う。
でもそのときには「スレ違い!」の一言で片付けられる
と予言してみるテスト

323 :nobodyさん:2006/03/03(金) 18:06:04 ID:Mb/ANEcx
犯罪とかのニュースのたびに怒りでどうしようもない
http://life7.2ch.net/test/read.cgi/jinsei/1140716130/l50
ここで偽善者がオナニー暴れしてます

324 :nobodyさん:2006/03/03(金) 19:00:13 ID:???
>>318
Windows って何でよくセキュリティホール見つかるの?
こんな品質(略

325 :nobodyさん:2006/03/03(金) 19:18:24 ID:???
>>318
MS-DOSってほとんどセキュリティホール見つからないね。
仕事に使うものとしては最高じゃん!

326 :nobodyさん:2006/03/03(金) 19:26:10 ID:???
俺のエニーちゃんのオナホールは最高だよ

327 :nobodyさん:2006/03/03(金) 19:32:11 ID:???
ちょっと貸してくれないか

328 :nobodyさん:2006/03/03(金) 20:15:27 ID:???
断る

329 :nobodyさん:2006/03/03(金) 20:21:25 ID:???
分割の人はここのヤスタカだったんだな
中学生くらいかな。頑張れ。

http://c.m-space.jp/bbs.php?ID=nullpo&serial=22733&page=9&sort=0&action=next

330 :07012320212468_mb:2006/03/03(金) 20:30:06 ID:???
>>329
ちょwwwwwうぇwwwそうだけどさ、2chで晒さなくてもいいじゃないか。
かそれ本名なんですから。
あと、僕は高校生ですよ!リアル工房ですよ!
触ったことある言語N88BASICとJavaScriptぐらいでこれでも頑張ってるんですよ!

331 :nobodyさん:2006/03/03(金) 20:31:45 ID:???
かそれ→それ
指摘される前に訂正。

332 :nobodyさん:2006/03/03(金) 20:44:08 ID:???
本名でも仮名って言っときゃいいのに

333 :nobodyさん:2006/03/03(金) 20:49:27 ID:???
そこまで予想して本名と言ってる(実際は仮名)…てことはないな。
しかし、N88BASICを触ってる時点で結構なものと思うんだが。
兎にも角にも頑張れ。

334 :fusianasao:2006/03/03(金) 20:49:28 ID:???
>>332
あなた、頭いいですね

335 :nobodyさん:2006/03/03(金) 20:52:09 ID:???
よく言われる

336 :nobodyさん:2006/03/03(金) 20:52:22 ID:???
いまどきの高校生でN88BASICなんぞ触る機会があるのか?
普通に学校の授業であるのかな?

337 :nobodyさん:2006/03/03(金) 21:01:53 ID:???
>>336
中学1年の2学期までパソコン室がPC-9801でした。
その頃に少し遊んだだけです。
その後は校舎新築で富士通のWindows2000搭載のコンピュータに変わりましたが。

338 :nobodyさん:2006/03/03(金) 21:02:22 ID:???
思ったんだが、携帯でDLして転送するって事はパケットは定額制だよな?
それなら携帯を安いプランにしてブロードバンドに乗り換える方がいいんじゃまいか

339 :nobodyさん:2006/03/03(金) 21:10:32 ID:???
>>338
痛いとこ突かれたorz
でもこのツールを完成させたいんです!


340 :nobodyさん:2006/03/03(金) 21:20:46 ID:???
BASICはMSXで覚えた。
N88-BASICも使った。
PC-8800もさわった。
COBOLもFORTLANも使ったことある。
でも25歳。

341 :nobodyさん:2006/03/03(金) 21:27:04 ID:???
ポケコンで数字インベーダーゲームを打ち込んでたヲヂさんが来ましたよ。

342 :nobodyさん:2006/03/03(金) 21:32:37 ID:???
>>336
教える側が趣味でやってたBASICくらいしか教えられないというミスマッチが教育の現実です。

343 :nobodyさん:2006/03/03(金) 21:44:38 ID:???
>>342
いや、科学部という名のパソコンクラブが放課後に遊んでただけですよ。

344 :nobodyさん:2006/03/03(金) 21:52:12 ID:???
>>342
高校の「数学」の教科書にBASIC載ってるしな。
センター試験でBASIC選ぶと、他の問題に比べてめちゃくちゃ簡単なんだが。
CやJavaは変数の型とかあるから、数学の授業では無理があるだろうけど。
そういう意味ではPHPはうってつけか。
「情報」の授業ってプログラミングやるのかな?

345 :nobodyさん:2006/03/03(金) 21:56:04 ID:???
現場経験も無い世間知らずしか授業出来ないんだからしょうがないよなぁ
中高ぐらいからもっと実践的な講師呼んだ授業やったら学校も楽しそうだなぁ

ってここなんてスレ?

346 :nobodyさん:2006/03/03(金) 21:59:01 ID:???
>>344
word、excel程度の授業しかなくてがっかりした。
>>345
PHPくだ質スレですよ。

347 :nobodyさん:2006/03/03(金) 22:13:16 ID:???
>>345
技術者の取り込みを狙ったのか、高校「情報」の教免は一般試験があったぞ。
今はもうないが。
教育現場も規制緩和して、実技科目に関しては教免なくても
外部の講師を呼べるようにすればいいのに。

348 :nobodyさん:2006/03/03(金) 23:01:58 ID:???
くだ質スレが、ただのくだスレになってるな…

349 :nobodyさん:2006/03/03(金) 23:35:20 ID:???
多少、趣旨を外れても本スレがあるという安心感があるからな。

350 :nobodyさん:2006/03/03(金) 23:48:32 ID:???
じゃあくだらない質問を一つ。
マニュアルのサンプルで

$foo = $foober() or die();

という文をよく見かけるんですけど
これってどういう仕組みなんでしょうか?

351 :nobodyさん:2006/03/03(金) 23:57:26 ID:???
>>350
if ($a == 1 or $a == 2) の"or"と仕組みは同じです。

$foober()が真を返せば、orの後ろは実行されません、
$foober()が偽を返せば、orの後ろのdie()が実行されますから、
die()によって処理がそこで止まります。

ファイルのオープンとか、DBの接続とかで使用することが多いでしょうか。
私はあまり使いませんが。

352 :nobodyさん:2006/03/04(土) 00:35:17 ID:???
PHPの関数とかいろんなもののベンチマーク結果を載せてるサイトないかな。

353 :nobodyさん:2006/03/04(土) 01:00:17 ID:???
私からも、下らない質問をひとつ

ループで得られる1000行程度のEUCコードの文字列を
最終的にSJISでファイル保存する場合、
一旦全てを変数に格納して、最後にSJIS変換して書き込むのが良いのか?
それともループ内で随時SJIS変換しながら書き込んでいくのが良いのか?

さぁ、DOTCH?

354 :nobodyさん:2006/03/04(土) 01:13:51 ID:???
>>351
そういえばCを勉強した時に同じような話を聞いた覚えが・・・
ありがとうございます。

355 :nobodyさん:2006/03/04(土) 01:30:53 ID:???
>>354
Cでこんな感じの話?…
Cだと|は後ろが先に評価されるコンパイラがある可能性があるので、あんましこういうのは推奨されてないはず…
うろ覚えでスマソ

356 :nobodyさん:2006/03/04(土) 01:45:48 ID:???
>>353
やってみてくれ

357 :nobodyさん:2006/03/04(土) 01:58:04 ID:???
>>354
Cでそんな書き方するやつにはまずお目にかからないが…
Perlではこれは常套句だな。

358 :nobodyさん:2006/03/04(土) 02:01:48 ID:???
>>355>>357
こういう書き方もあるって感じで、予備知識としての話だったと思います
使わない方がいいとも言われました

359 :nobodyさん:2006/03/04(土) 11:41:48 ID:???
HTMLフォームのhiddenコントロールとしてセッションIDを引き渡す。

<input type="hidden" name="PHPSESSID"
     value="5fb6b70b37b53114518ce19ac215e8ea">

こういうやり方でユーザー認証などを行う場合、セキュリティ的に問題などありますか?
教えてください。よろしくお願いします。

360 :nobodyさん:2006/03/04(土) 11:52:06 ID:???
>>359
Cookie使えなきゃそれかGETでURLに含めるしかない

361 :nobodyさん:2006/03/04(土) 11:57:17 ID:???
>>359
タイムアウト実装のあるセッション ID を hidden で受け渡すだけなら
問題はないが、他のパラメータには使わないように。

参考: IPA/ISEC セキュアプログラミング講座
ttp://www.ipa.go.jp/security/awareness/vendor/programming/a01_05.html

362 :nobodyさん:2006/03/04(土) 14:58:31 ID:???
セッションID総当たりすれば、ユーザ認証突破可能?

最後まで文字列を操作するかじゃね?
EUCで生成すること自体勧められないけど。SJISで保存するなら最初からSJISで生成すべき。
文字化けが許容出来ないなら、文字コード変換したら負けだよ。

363 :nobodyさん:2006/03/04(土) 15:38:43 ID:???
>362
日本語でおk

364 :nobodyさん:2006/03/05(日) 00:19:00 ID:j6g607oY
http://www.mysql.gr.jp/mysqlml/mysql/msg/12071
>もちろん、クライアント側のアプリでは階層の深さを直接
>提示するでしょうが。ウエブの開発者はツリーをループしながら、
><li></li> と <ul></ul> のタグを深さが増えたり、減ったりする
>毎に、追加します。

これのやり方がいくら考えても分からないのですがどうやったらいいのですか?

365 :nobodyさん:2006/03/05(日) 00:28:33 ID:???
+----------------------+-------+
| name             | depth  |
+----------------------+-------+
| ELECTRONICS        | 0    |
| TELEVISIONS         | 1    |
| TUBE              | 2    |
| LCD               | 2    |
| PLASMA             | 2   |
| PORTABLE ELECTRONICS | 1   |
| MP3 PLAYERS         | 2   |
| FLASH              | 3    |
| CD PLAYERS          | 2   |
| 2 WAY RADIOS        | 2    |
+----------------------+-------+
↑を<ul><li>を使って↓みたいにしたいんです。
 ・ELECTRONICS
  ・TELEVISIONS
   ・TUBE
   ・LCD
   ・PLASMA
  ・PORTABLE ELECTRONICS
   ・MP3 PLAYERS
    ・FLASH
   ・CD PLAYERS
   ・2 WAY RADIOS

366 :nobodyさん:2006/03/05(日) 00:44:55 ID:???
一度に1000人以上のアクセスがあれば
お詫びの文章を出してスクリプトをストップ!
ってのはどうやってやるんだ?

367 :364:2006/03/05(日) 00:53:08 ID:???
そーす
http://aazukan.s201.xrea.com/test.txt

動作
http://aazukan.s201.xrea.com/test.php

ここまでやってみました。

368 :nobodyさん:2006/03/05(日) 01:17:45 ID:???
AA図鑑・・・

369 :364:2006/03/05(日) 01:19:49 ID:???
>>368
そこに触れるのはヲチ板でよろしく
>>364についてお願いします><

370 :nobodyさん:2006/03/05(日) 01:46:26 ID:yRA2j2Vb
>>364
DBの設計が激しく間違っている気がするが?
→そうなの?
板違いなのでDB板で勉強して来い

→わかってます
正しくソートされていると仮定

$depth = -1;
foreach($categories AS $category) {
  while ($depth<$category['depth']) {
    echo "<ul>\n";
    $depth++;
  }
  while ($depth>$category['depth']) {
    echo "</ul>\n";
    $depth--;
  }
 : echo '<li>', $category['name'], '</li>', "\n";
}
while($depth>=0) {
  echo "</ul>\n";
}

こんなかんじかな。 デバッグもしてないし適当だから保障しない。参考程度に。

371 :370:2006/03/05(日) 02:19:56 ID:???
:echo は echoね
んで
while($depth>=0) {
  echo "</ul>\n";
  $depth--;
}
ね。

372 :364:2006/03/05(日) 02:41:57 ID:???
>>371
色々書いて頂いて申し訳ないのですが、
↓で100点になるようなものがよかったので使いませんでした
http://openlab.ring.gr.jp/k16/htmllint/htmllint.html

そーす
http://aazukan.s201.xrea.com/test.txt

動作
http://aazukan.s201.xrea.com/test.php

これでとりあえず動くのですがもうちょっとスマートにできませんか?

373 :nobodyさん:2006/03/05(日) 02:59:51 ID:???
if($depth < $category['depth']) {
$list .= "<ul><li>";
} else {
if($depth > $category['depth']) {
$list .= str_repeat("</li></ul>", $depth - $category['depth']);
}
$list .= "</li><li>";
}

374 :364:2006/03/05(日) 03:03:47 ID:???
これでいくことにしました、ありがとうございます。

375 :nobodyさん:2006/03/05(日) 03:15:29 ID:???
いつからここは丸投げスレになったんだ?

376 :nobodyさん:2006/03/05(日) 04:04:12 ID:???
doui

377 :nobodyさん:2006/03/05(日) 05:24:59 ID:8JhBJBZ6
すみません、ちょっと質問なんですが・・・PHPスクリプトをいじってるんですけれど、

$m_header = $_SERVER['DOCUMENT_ROOT'] . '/header.php';

この $_SERVER['DOCUMENT_ROOT'] を自分のサイトのmain root pathに変更しろとあるんですが、
これはこのままじゃダメなんでしょうか?
ググっても解らず、困っています。
解る方がいらっしゃいましたら教えて下さい。

378 :nobodyさん:2006/03/05(日) 06:19:26 ID:???
>>377
$_SERVER['DOCUMENT_ROOT'] の値がちゃんと取れてるなら、そんままで良いんでね。
取得できない事(環境によっては無いわけでもない)を、作者が考慮して
確実に動くように手動で明示しとけと言ってるのかな。
そのアプリは何?

379 :nobodyさん:2006/03/05(日) 06:21:09 ID:???
>>377
・・・ん?
まずは変えてみたの?変えて駄目だったの?

380 :nobodyさん:2006/03/05(日) 06:33:28 ID:8JhBJBZ6
>>378
ありがとうございます。そのままでも大丈夫なんですか・・・。
じゃあスクリプトが動かない原因は他にありそうです。
実はアメリカのなので私も良く解ってないんですが、
登録したサイトを閲覧できる(?)というものなんです。

>>379
すいません、書き方が悪かったです。
変えようにも、何を変えていいのか解らなかったので。
もしかして/usr/bin/phpなのか?と思って適当に変えてみたりはしたんですが。
的外れだったみたいです。

381 :nobodyさん:2006/03/05(日) 07:56:49 ID:???
>>378
それは自分のWebサーバのドキュメントルートを取得するスーパーグローバル変数だよ
オレの環境では

<?
 echo $_SERVERT['DOCUMENT_ROOT'];
?>

で、ブラウザからアクセスしたら「C:/Program Files/Apache Group/Apache2/htdocs」って表示されたよ

382 :378:2006/03/05(日) 07:59:18 ID:???
ごめん、$_SERVERね

あと、ちゃんとheader.phpっていうのはあるのかい?

383 :nobodyさん:2006/03/05(日) 08:37:22 ID:???
会員数万人のDBがあって、その会員リストに随時メールを送ったり
したいんだけど、メールが1日に数万通〜数十万通ともなると、すごい負荷かな??
別のメール配信専用サーバみたいなのを用意したほうがいいんでしょうか。
仮に用意できたとして、どうやってメール作成スクリプトからその配信専用サーバに
メール配信の指示を出せばいいの? メール作成スクリプトで「mb_send_mail」を
実行しちゃったらその鯖から送信されちゃうだろうし・・・。

384 :nobodyさん:2006/03/05(日) 12:08:41 ID:???
>>383
そこまで何もわからないならちょっと自分で勉強してみないと
話が理解できんと思うよ

385 :nobodyさん:2006/03/05(日) 13:15:17 ID:???
>>383

日本語でおk

386 :nobodyさん:2006/03/05(日) 13:26:20 ID:???
>>383
業者に依頼しろ。
無知な人間が適当に作って、情報漏洩なんかした日には、会社つぶれかねんぞ。

387 :nobodyさん:2006/03/05(日) 13:55:53 ID:???
>>383
>別のメール配信専用サーバみたいなのを用意したほうがいいんでしょうか。
ですな。サーバだけじゃなくて回線もね。
あと同じドメイン宛に短時間に大量のメールを出すと、
相手の接続拒否リストに載せられることもある。
その辺も絡めて勉強して、業者に依頼することをお薦め。
(最低限の勉強をしてないと業者の良否判断や注文も出来ないからね)
実際のメールの出し方については、その業者とすりあわせ。

388 :nobodyさん:2006/03/05(日) 14:27:55 ID:???
最低限、MTAの仕組み、SMTP実装、ここいらは理解してこい。
PHPには関係ない。

389 :nobodyさん:2006/03/05(日) 18:25:30 ID:???
>>384-386
無知なバカども、分からないなら「分かりません」と言えばいいのに。知ったかぶるな。
お前らが知ってる程度の知識なら俺も持ってる。端折って書いてるだけ。

>>387 ありがとう。でも、なるべく自前でやりたいんだけど・・・。
>>388 SMTP実装かぁ。プロトコルの話だよね? それを勉強したとして、PHPで実現できる??

390 :nobodyさん:2006/03/05(日) 18:28:04 ID:???
>>389


391 :nobodyさん:2006/03/05(日) 18:29:32 ID:???
>>389
>お前らが知ってる程度の知識なら俺も持ってる。
例えば?

392 :nobodyさん:2006/03/05(日) 18:36:57 ID:???
>>389
あなたをリビングレジェンドに認定します。

393 :nobodyさん:2006/03/05(日) 18:44:13 ID:???
>>389
> >>388 SMTP実装かぁ。プロトコルの話だよね? それを勉強したとして、PHPで実現できる??
お前できないの?バカじゃね?

394 :nobodyさん:2006/03/05(日) 18:52:04 ID:iaaLXl/X
if($_POST['name'] = "") $err.= "名前が入力されてないぞ";

こんな感じで、$_POST['name']が空の場合、文字例を出力させるには
どうすれば良いでしょうか?

それから、POSTデータを取得出来ない場合、
$err.= "POSTデータが不正ですよん。。";

みたいにさせるにはどうやれば良いでしょうか?
応用力がなくてすみません。

395 :384:2006/03/05(日) 18:55:51 ID:???
[訂正]
if($_POST['name'] == "") $err.= "名前が入力されてないぞ";

396 :nobodyさん:2006/03/05(日) 19:05:58 ID:???
>>394
・・・本当にわからないのか?if文が解らないのか、文字列を表示する方法が解らないのか

あと、余談だけど、POSTデータが取得できない場合は取得できてないんだから$_POST['name']
の中身はもちろん空だよね?
だからこれも表示するエラーメッセージは「名前が入力されていません」にしたほうが良いんジャマイカ?


397 :nobodyさん:2006/03/05(日) 19:10:50 ID:???
>>396
俺も初心者なんだが trim()を使うのは駄目かなぁ?
if(trim($_POST['name'] == "")) $err.= "名前が入力されてないぞ";

398 :nobodyさん:2006/03/05(日) 19:16:21 ID:???
>>397
何の意味が!!!

399 :nobodyさん:2006/03/05(日) 19:28:49 ID:???
emptyとか

400 :nobodyさん:2006/03/05(日) 19:28:56 ID:???
>>397
trim()は改行コードとかを除けてくれる便利な関数だけど今回のでは必要無いっぽいぞ?
でも、どう考えてそういう答えに至ったかは解らないけど、自分で考えて何か仮定を立てる
ことの出来るお前は偉い。

あとはその仮定をどうやってテストして実証していくかの方法を身につけるんだ!

401 :nobodyさん:2006/03/05(日) 19:50:00 ID:???
>>396
ん〜、何も入力しないでPOSTで上げたフォームのテキストの値($_POST['name']の事ね)をtrimでスペースとか除けても
issetにかけると値がある、って判断されるっぽいね。何が入ってるんだろ?

出来るならemptyか$_POST['name'] == "" とかで判断したほうが良いと思う。

402 :401:2006/03/05(日) 19:50:36 ID:???
ごめん、>>397

403 :nobodyさん:2006/03/05(日) 19:58:27 ID:???
そこまでするなら===で比較すればいいわけで
その例ならif(!$_POST['name'])

404 :nobodyさん:2006/03/05(日) 20:11:32 ID:???
>>390-393
知ったかぶりのバカども乙wwwwwwwwwwwwwwwwwwwww

何も具体的なことを言えないヤツの説得力はゼロ。
ウンコなクズは氏ね。

405 :nobodyさん:2006/03/05(日) 20:24:18 ID:???
>>383
OS、メール配信のタイミング、アクションの方法、PHPのバージョン、その他もろもろ記述もし
ないでよく具体的な事が云々言えるなお前。

まぁ、どうせLinux系だろうから、実行のタイミングが決まってるのなら普通にサーバ別にたて
て今のサーバでシェルでsshとPHPファイルの実行をキックさせるようなヤツ書いてcronに突っ込む
だけじゃないのか?
もう出て行ってくれ


406 :nobodyさん:2006/03/05(日) 20:28:58 ID:???
最近いろんなところで
>>404
みたいなアレな奴をみかけるけど、やっぱり時期的な問題?


407 :nobodyさん:2006/03/05(日) 21:02:37 ID:???
一定時間以上起動してるPHPのプロセスを殺す方法ってある?
なんかphp.iniの設定でそういうっぽいのいがあったんだけど
readでブロックとかしてるような待ち状態は消費時間として
カウントされないみたいなんだよね
やっぱ別のプログラムで監視しててサーチアンドデストロイ?

408 :nobodyさん:2006/03/05(日) 21:08:15 ID:???
>>401
もうちょっと勉強しろ。

issetは値があるかどうかじゃなく変数の有無を確認するのに使うもので、
NULL以外の空っぽ文字列などが格納された時点で常にtrueを返す。
フォームのテキスト入力で何も入力しないってのは "" という空文字列を
格納してるのに等しいからこれはissetで必ずtrueになる。

if(isset($_POST['hoge'])) みたいのはsubmitのボタンなど、押した場所によって
送信自体がされなくなるinputの送信有無を判別するのに使われる常套手段。
しかし、それも if(isset(trim($_POST['hoge']))) なんて真似をしてしまうと
NULL→""変換されてしまうので何があってもtrueが返ることになり全く意味がない。

テキストデータが空っぽのときに文字列をセットしたいだけなら最初の >>394-395
if($_POST['name'] == "") $err.= "名前が入力されてないぞ";
で全く問題がないと思うが、これで何が問題あるのかまず説明しろ。

409 :nobodyさん:2006/03/05(日) 21:10:40 ID:???
「めるえもん」という悪魔のサービスがある。

通称:合法スパム

410 :nobodyさん:2006/03/05(日) 21:13:20 ID:???
>>407
ブロック状態で戻ってこないのはPHP自身では検知できないらしいからなぁ…
そういうプログラムが多数できるなら1個のサーチプログラムを作ってkillさせるか、
数が少ないならプログラム毎に自分のプロセスIDと起動時間を渡して
子プロセス作って一定時間後にsignal送信させるとか…

411 :nobodyさん:2006/03/05(日) 21:51:38 ID:???
>>408

401じゃないけど、その方法で問題がある点を説明するね。

ユーザー入力の受付は、

$username = ( isset($_POST["username"])?$_POST["username"]:"" );
で、if( $username == "" )とかで入力チェック。

$_POST["username"]を直接評価するのはNG。
入力されていない場合に、その値を参照しようとすると
未定義(undefined)扱いになるから立派なエラー。

問題があるとしたらそのへん。

412 :401:2006/03/05(日) 21:52:19 ID:???
>>408
ごめん、勉強不足でした('A`)
issetってそういう関数だったのか・・・


413 :nobodyさん:2006/03/05(日) 22:34:52 ID:???
>>411
E_ALL対策か。Noticeエラーまでいちいち気にする?

414 :nobodyさん:2006/03/05(日) 22:56:21 ID:???
>>413
セキュリティ上Noticeは気にするべきだよ。
この場合は@で回避して比較するのもアリかも知れないが。
どちらにしろ放置はよろしくないよ。

とりあえず一覧
         |未定義 |NULL  |""    |0     |"0"   |
isset    |false  |false |true  |true  |true  |
empty    |true   |true  |true  |true  |true  |
==""     |エラー |true  |true  |true  |false |

>>411
if (!isset($_POST["username"]) || $_POST["username"]!="") {
  $err .= 'カラですわ';
}
でもいいな。

415 :age:2006/03/06(月) 01:21:53 ID:???
はじめまして、php-5.1.2を下記構成のredhat9へインストールしようと
試みております、
PHP マニュアル、google探しましたがなかなか情報見つからず、
質問させていただきました。

root@linux[php-5.1.2]$rpm -qa |egrep php| xargs rpm -e
にて、一度削除し、
$./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbstring
を実行し、
$make
で、「make: *** ターゲットが指定されておらず、makefile が見つかりません. 中止」
とのメッセージでmakeができません。。。

config.log にはエラーらしきものは見当たらず、と言いますか
自分が気が付いていないだけかもしれませんが。
よろしければ、アドバイス頂けませんでしょうか。

マシン構成は
Redhat linux9
php-5.1.2
Apache version:2.2.0
CPU:P3 800Mhz
Memory:256MB
HDD:20GB

です。(スレ違いでしたらすみませんです。。。)

416 :nobodyさん:2006/03/06(月) 03:22:12 ID:???
スレ違いです

417 :nobodyさん:2006/03/06(月) 03:27:59 ID:???
俺とあの子の心もスレ違い〜♪

418 :nobodyさん:2006/03/06(月) 03:46:43 ID:???
>>414
http://jp2.php.net/manual/ja/types.comparisons.php
http://www.blueshoes.org/en/developer/php_cheat_sheet/
http://www.deformedweb.co.uk/php_variable_tests.php

==や!=は案外鬼門だよな。

419 :nobodyさん:2006/03/06(月) 03:56:43 ID:???
require()の対象って、
ドキュメントルートに無くても問題ないのでしょうか?
一応動作しましたが。

420 :nobodyさん:2006/03/06(月) 04:32:10 ID:???
>>419
include_pathについて調べてください

421 :nobodyさん:2006/03/06(月) 04:36:26 ID:???
>>419
むしろ置けるんであればドキュメントルートに置かない方がいいくらいかと。
requireされるだけでなく単独でページとして動作するファイルなら別だけど。

422 :nobodyさん:2006/03/06(月) 13:37:25 ID:???
PHP 5.1.2を使っているのですが、デフォルトで導入されている
マルチバイト文字を扱う関数が未定義となってしまい使えません。

例)
<?php
//1
$str = "サーバサイド技術";
print(mb_substr($str,3,5));

//2
$sstr = "PHPはPHP:HepertextPreprocessorの略です";
print(mb_strpos($sstr,"PHP"));
print(mb_strrpos($sstr,"PHP"));
?>

実行結果:Fatal error: Call to undefined function mb_substr() in C:\Program Files\Apache Group\Apache2\htdocs\4.1.php on line 4

mb_strrpos(),mb_convert_kana(),mb_convert_encording()関数でも同様のエラーがでます。
設定をどう弄ればよいか教えてください。

423 :nobodyさん:2006/03/06(月) 13:47:59 ID:???
>>422
>デフォルトで導入されている
大嘘

424 :nobodyさん:2006/03/06(月) 14:03:10 ID:???
>>422
最低限PHPマニュアルくらい読め。全部書いてある。

425 :nobodyさん:2006/03/06(月) 14:13:55 ID:???
php.iniのextension=php_mbstring.dllはコメントを外しているのですが。
他に設定が必要なのですか?
当方windowsXPです。

426 :nobodyさん:2006/03/06(月) 14:32:06 ID:???
>>425
OSは関係ありません

427 :nobodyさん:2006/03/06(月) 14:32:39 ID:???
>>425
本ぐらい買え

428 :nobodyさん:2006/03/06(月) 14:37:38 ID:???
>>425
phpinfoで、mbstringの項目があるかどうか確認せよ。
無ければphp.iniが適切なパスに置かれていないか、Webサーバを再起動していない可能性あり。

429 :nobodyさん:2006/03/06(月) 14:41:11 ID:QzUnKc0K
>>425
423だけが本当の事を言っている。
ひとまずphpinfo()してみたら?
Apacheの再起動を忘れている可能性大。

430 :nobodyさん:2006/03/06(月) 14:43:20 ID:QzUnKc0K
あ、428とかぶった。

431 :428:2006/03/06(月) 15:22:24 ID:???
>>430
きれいにかぶると、何かを感じるなw
ま、それだけありきたりの原因ってことだが。

432 :nobodyさん:2006/03/06(月) 15:36:57 ID:???
何こいつ偉そうに

433 :425:2006/03/06(月) 15:54:48 ID:???
自己解決しました。

434 :nobodyさん:2006/03/06(月) 16:08:32 ID:???
>>433
ふぃーどばっくって言葉、知ってる?

435 :nobodyさん:2006/03/06(月) 16:54:06 ID:???
知ってますが、そんなことはしません。

436 :425:2006/03/06(月) 16:55:21 ID:???
車には興味ないです。

437 :nobodyさん:2006/03/06(月) 17:19:18 ID:???
ふつーに荒らしが沸いてるみたいだな

438 :nobodyさん:2006/03/06(月) 19:06:06 ID:???
phpインストールしたら、最初にやるのは Hello, World じゃなくて
phpinfo() だ。

439 :nobodyさん:2006/03/06(月) 19:28:03 ID:???
だから質問するやつは、ID出せ。

440 :nobodyさん:2006/03/06(月) 19:39:23 ID:???
IDでてない質問に答えるな

441 :nobodyさん:2006/03/06(月) 19:40:19 ID:???
>>438
セキュリティ甘いサーバがわんさか現れそう

442 :nobodyさん:2006/03/06(月) 20:47:05 ID:???
はー季節季節

443 :nobodyさん:2006/03/07(火) 02:35:01 ID:???
>>438
そういえばそうだな・・・まぁ、HelloWorldじゃないにしろ
何か文字を表示するよな普通の言語って・・・
言われて気づいたよ。

スレ違いだけど、毎朝Suicaのペンギンを見て癒されています。

444 :nobodyさん:2006/03/07(火) 08:17:30 ID:???
while(true){
 echo "HelloWorld";
}
ってうってみて文字が表示されたら初期設定はおk

445 :nobodyさん:2006/03/07(火) 08:43:19 ID:???
>>444
愉快犯

446 :nobodyさん:2006/03/07(火) 09:23:16 ID:???
>>438
レンタルサーバなら phpinfo() は使えないことも多いだろ。

447 :nobodyさん:2006/03/07(火) 10:18:13 ID:???
XREAは使えたかな

448 :nobodyさん:2006/03/07(火) 11:51:24 ID:???
array[]=array('a'=>1,'b=>2)って感じの処理を数回した後
現セットarray[]のaとかの値を変えたいのですがどうすればいいのでしょうか?

current(array)['a']とかでいけるかなと思ったのですが駄目でした・・


449 :nobodyさん:2006/03/07(火) 12:02:05 ID:???
$array[ count($array) - 1 ]['a'] 辺りかね。

450 :nobodyさん:2006/03/07(火) 12:10:42 ID:???
>>448
現セットarray[]の意味不明

451 :nobodyさん:2006/03/07(火) 12:38:31 ID:???
array を brray にしたいとか

452 :nobodyさん:2006/03/07(火) 12:58:46 ID:???
>>449
なるほど。ありがとうございました。

453 :nobodyさん:2006/03/07(火) 14:00:10 ID:???
'b=>2
ここでエラーが起こるとは誰も突っ込まないのか

454 :nobodyさん:2006/03/07(火) 14:15:03 ID:???
>>449
おまいさんを今日からエスパーに認定する。

455 :nobodyさん:2006/03/07(火) 15:03:43 ID:???
>>453
それ以前に変数名に$ついてない時点で論外だし

456 :448:2006/03/07(火) 16:00:11 ID:???
>>453 >>455
揚げ足取らないでくださいよ^^;

457 :nobodyさん:2006/03/07(火) 16:30:03 ID:???
質問するときは状況を再現できる正確なサンプルコードを提示するのが基本だばかちん

458 :nobodyさん:2006/03/07(火) 16:36:54 ID:???
回答する側も、正確を期すために質問者の文をコピペして
実験することもある。
自分の答えが正しいか確認するために、検索することもある。

459 :nobodyさん:2006/03/07(火) 16:42:10 ID:UW6rJJ+I
PukiWikiのTrackerプラグインについて質問です。

要素を連結して[_name]という変数に代入したいという目的で、
下記のプラグインPatchを当てました。
さらに、プラグインPatchのページのコメント欄に記載されている変更も適応しました。
ほぼ目的通りに動いたのですが、末尾に必ず連番が入るのが解決できません。(入れたくない)

Patch作者は[_name]に[_date]が代入されない場合意図的に連番を入れてるっぽいのですが、
ソース見てもどこで入れてるのか分かりません。
$num変数当たりが怪しいと思うんですが・・・。

どなたかご教授お願いします。

・設置場所
http://samurai-tribe.com/hda-wiki/index.php?%3Aconfig%2Fplugin%2Ftracker%2Fcomplist
・PukiWiki
http://pukiwiki.sourceforge.jp/?FrontPage
・Trackerオフィシャル
http://home.arino.jp/?tracker.inc.php
・TrackerプラグインPatch
http://teanan.homeip.net/pukiwiki/?%BC%AB%BA%EE%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%2Ftracker.inc.php


460 :459:2006/03/07(火) 16:49:13 ID:???
上記のパッチ済のソースです。
http://aploda.org/dat6/upload413092.txt

461 :nobodyさん:2006/03/07(火) 17:29:20 ID:MKvD8QW3
PHPで暗号/復号を行うライブラリーってありませんか?

因みにwindowsでmd5で暗号化したものをLinuxで読むと
暗号化した文字列との比較が出来ません。
md5ってマシンに依存しするのですか?

462 :nobodyさん:2006/03/07(火) 18:04:28 ID:???
いつからハッシュが暗号になったんだ?

463 :459:2006/03/07(火) 18:16:42 ID:???
>>462

揚げ足かよww

464 :nobodyさん:2006/03/07(火) 18:20:07 ID:???
ご教授キタ━━━━(゚∀゚)━━━━!!

465 :nobodyさん:2006/03/07(火) 18:24:09 ID:???
>>422
このスレだけでも読み返せ

466 :nobodyさん:2006/03/07(火) 18:47:24 ID:tn5MgDAQ
フォームから受け取った値をファイル等に書き込む際に、今までhtmlspecialcharsなどを書き込む前にしていたんですが、
出力する際にした方がいいのでしょうか。

なんだったか忘れたんですが、本屋でチラ見した本に書かれていたので。。


467 :nobodyさん:2006/03/07(火) 18:57:38 ID:???
書き込む前
出力する際
???

468 :nobodyさん:2006/03/07(火) 19:03:25 ID:???
フォーム→受け取り→htmlspecialchars→書き込み→表示
これを
フォーム→受け取り→書き込み→htmlspecialchars→表示
にするって事?

469 :nobodyさん:2006/03/07(火) 19:09:26 ID:???
フォーム→受け取り→htmlspecialchars→書き込み→別の機会なりに読み込み→表示

フォーム→受け取り→書き込み→別の機会なりに読み込み→htmlspecialchars→表示

470 :nobodyさん:2006/03/07(火) 19:12:07 ID:???
暗号化ならBASE64に決めっ
暗号化や複号化関数も、きちんと用意されてる。
URLEncodeよりも強度も高く申し分ない。

471 :nobodyさん:2006/03/07(火) 19:26:31 ID:/XL003yO
URLを入力してページをゲットして<form>タグ内の値をゲットしたいんですが、
たとえばhttp://c-others.2ch.net/test/-/mnewsplus/1141726843/wを入力したとき、
ソースの<input type=hidden name=key value=1141726843><input type=hidden name=time value=1141726906>から
1141726843と1141726906を取得するようなシステムを作るにはなにをどうすればいいでしょうか?ご指導よろしくお願いします。

472 :nobodyさん:2006/03/07(火) 19:41:55 ID:???
ゲットだぜ!!

473 :nobodyさん:2006/03/07(火) 19:43:38 ID:???
>>471
・HTMLのformで入力されたURLを受け取るPHPスクリプト(PHPのマニュアル「チュートリアル」の項)
・あるURLのコンテンツを取得するPHPスクリプト(fopen/fsockopen/cURL/PEARのNet関連)
・ある文字列中から特定の条件を満たす文字列の取得(正規表現/文字列処理関数(strstr/strpos/substr))

474 :nobodyさん:2006/03/07(火) 19:44:46 ID:???
>>471
FORMとGETとPOSTをもっと勉強してからに城。
使ってる言葉がむちゃくちゃだ。

475 :nobodyさん:2006/03/07(火) 19:55:43 ID:???
>>473
サンクス
>>474
答えられない初心者がレスつけんなよカス

476 :nobodyさん:2006/03/07(火) 20:03:24 ID:???
>>475>>473の責任だな

477 :nobodyさん:2006/03/07(火) 20:05:23 ID:???
こういうのはスルー汁。
どうせ次々と出来ないことがおきて、また来るんだから最初からスルー。

478 :473:2006/03/07(火) 20:12:48 ID:???
スマン、まだ相手の性格まで読み取れるほどのエスパーじゃないので...
でもポインタの提示ぐらいまでは、数行で即答のくだ質の範疇だと俺は思うよ。
# って考えが皮先とかを養成しちまうのか

479 :nobodyさん:2006/03/07(火) 20:16:50 ID:???
>>478
いいんじゃね?くだ質だし。
最近、>>475みたいな荒らし目的の馬鹿がわいてるので
そういうのだけスルーすれば

てか、ここの板なんでID強制にならんのか、誰かしってたら
教えてくれ


480 :nobodyさん:2006/03/07(火) 20:17:40 ID:???
●質問する前に(必ず読みましょう)
・わからない事があれば、まずは自分で調べましょう。
 (最低限マニュアルに目を通し、Googleで検索しましょう)
・質問する前に、もう一度読み返しましょう。質問は具体的になっていますか?
・エラーが出るのであれば、エラーとともに、エラーを再現できるサンプルコード、
 環境(OS、PHPのバージョン、Apacheのバージョンなど)を明記しましょう
・残念ながら、煽ることしか出来ない人もいます。スルーしましょう。
・(゚д゚)<シメジ

481 :nobodyさん:2006/03/07(火) 20:22:27 ID:???
くだ質は気楽に質問して素早く答えが出るのが趣旨なのに
>>474みたいな答える気のない回答者こそ邪魔。
実際余計な煽りがなければ>>475みたいなレスは生まれないしな。


こんなこと書いてると>>474が必死に「本人乙」とか言って来るのかな?ww

482 :nobodyさん:2006/03/07(火) 20:24:04 ID:???
>>481
スルー汁

483 :474:2006/03/07(火) 20:26:25 ID:???
>>481
本人乙。アホすぎて話にならんな。死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね

484 :nobodyさん:2006/03/07(火) 20:28:31 ID:???
一番の厨房は474の方だったってオチかよw

485 :nobodyさん:2006/03/07(火) 20:31:55 ID:???
>>484
最近、他人の番号騙ってるアホが湧いてるので
そうともいいきれんと思う。
とりあえず、去るまで変なのはスルーってことで

486 :nobodyさん:2006/03/07(火) 20:34:04 ID:???
>>485は諸葛孔明

487 :nobodyさん:2006/03/07(火) 20:49:32 ID:???
ゆとり教育がここまで恐ろしいものだったとは……

488 :nobodyさん:2006/03/07(火) 20:51:41 ID:???
なんでこのスレはことあるごとにゆとり教育の話題があがるんだよwwww

489 :nobodyさん:2006/03/07(火) 20:56:16 ID:???
リア厨リア工には分からないだろうね。

490 :nobodyさん:2006/03/07(火) 20:57:32 ID:???
フロント厨の俺には全てが分かるぜ。

491 :nobodyさん:2006/03/07(火) 21:16:18 ID:???
>>466
必要があれば別にエンコードした結果をファイルに保存してもいいし、
その方がいい場合もある。
その辺はTPO。

492 :nobodyさん:2006/03/07(火) 21:16:23 ID:???
>>490
RealのリアをRearにかけたわけか。見事!

493 :nobodyさん:2006/03/07(火) 21:18:45 ID:???
>>492
自画自賛乙

494 :nobodyさん:2006/03/07(火) 21:24:29 ID:???
自画自賛乙

と言った時の快感が忘れられない。

495 :nobodyさん:2006/03/07(火) 21:37:36 ID:???
ID出ないからどれもこれも全く説得力ない

496 :nobodyさん:2006/03/07(火) 21:46:54 ID:???
Web制作、レン鯖、WebProgはID出ないから荒れまくり

497 :nobodyさん:2006/03/07(火) 21:49:14 ID:???
でも見えてる人には見えてるんでしょ?ID

498 :nobodyさん:2006/03/07(火) 21:57:44 ID:???
名前欄に山崎渉と入れるとIDが出るよ。

499 :nobodyさん:2006/03/07(火) 21:59:47 ID:???
管理側にはそりゃみえるだろうよ。
まぁIDなんざ、動的に割り振られてるIPの前にはいくらでも変えられる。

500 :nobodyさん:2006/03/07(火) 23:15:26 ID:???
>>471
なんとなく言いたいことをくみとると、
$lines = file_get_contents('http://c-others.2ch.net/test/-/mnewsplus/1141726843/w');
preg_match_all('/<input type=hidden name=(?:(?:key)|(?:time)) value=(.*?)>/', $lines, $matches);
print_r($matches);
でいいんじゃない?

501 :nobodyさん:2006/03/07(火) 23:19:04 ID:psJP3on1
WebProg板自治スレッド@WebProg
http://pc8.2ch.net/test/read.cgi/php/1064684350/l50

自治スレで要望だそうぜ!

502 :nobodyさん:2006/03/07(火) 23:34:57 ID:???
PEARのHTTP_Requestクラスを使って
以下のようにしてwebサイトを取得しているのですが、
コンストラクタに渡すURLが妥当なものでんないと
エラーチェックする前にエラーを吐いてしまいます。
何とかなりませんかね。

require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://www.yahoo.com/");
if (!PEAR::isError($req->sendRequest())) {
echo $req->getResponseBody();
}

503 :nobodyさん:2006/03/08(水) 00:09:50 ID:???
>>502
URLの形式かどうかチェックして渡せばいいんじゃないでしょうか

504 :502:2006/03/08(水) 00:19:48 ID:???
>>503
ハァ?中学生?んなことはわかってる。具体的な解決方法を聞いてるんだよ。初心者が口出しするな。

505 :nobodyさん:2006/03/08(水) 00:26:14 ID:???
$url="http://www.yahoo.co.jp";

preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $url))


506 :nobodyさん:2006/03/08(水) 00:28:37 ID:???
PearのHTTP_Requestって、中身の画像なんかも一度に取得してくれるのか?

507 :nobodyさん:2006/03/08(水) 00:54:22 ID:???
なんで最近はそのままずばりの回答じゃないと質問者が怒るんだよ
立場わきまえれ

508 :nobodyさん:2006/03/08(水) 01:08:57 ID:???
>>507
>>485

509 :502:2006/03/08(水) 01:30:52 ID:???
504は別人です。(荒らすなボケ>>504
妥当性をチェックするのは別にいいんですけど
if (!PEAR::isError($req->sendRequest())) {
のところでエラーチェックしてるのに意味無しなんですよね。

510 :nobodyさん:2006/03/08(水) 01:34:24 ID:???
>>506
しない。HTMLの解析はそもそもHTTP_Requestのお仕事ではないので。

>>508
質問者を装って、すぐさま「自己解決しました」ってやるのもあったな。

511 :510:2006/03/08(水) 01:39:29 ID:???
自己解決しました。

512 :nobodyさん:2006/03/08(水) 01:55:39 ID:???
>>511
えーと、どこで笑えばいいのかな?

513 :nobodyさん:2006/03/08(水) 01:58:40 ID:???
>>509
良く判らないんだけど、URLを渡さないでコンストラクトして
後でsetURLメソッドを使ってURLを指定したら駄目なの?
# 妥当性はHTTP_Requestの中では、Net_URL使ってんのかな。


514 :513:2006/03/08(水) 03:38:53 ID:???
後指定でも一緒だな。
というより
>>502
>コンストラクタに渡すURLが妥当なものでないと
>エラーチェックする前にエラーを吐いてしまいます。
なんてならないんだが。妥当でないURLは具体的にどんなの?

515 :nobodyさん:2006/03/08(水) 07:24:40 ID:???
質問者は(ageついでに)ID出せ

516 :nobodyさん:2006/03/08(水) 07:44:41 ID:???
>>515
テンプレに追加だな

517 :nobodyさん:2006/03/08(水) 08:14:38 ID:???
>>515-516
前はあったのにいつのまにか消えてるね

回答者はアンカー汁
も追加してくり

518 :nobodyさん:2006/03/08(水) 10:41:14 ID:???
>>517
過去スレ全部見たがID必須のテンプレがついてたことは1度もない。
さては貴様、本スレと勘違いしておるな?

519 :nobodyさん:2006/03/08(水) 10:54:53 ID:???
>>518
過去の事はどうでも良い。
これから先、どう生きるかが問題だ。

520 :nobodyさん:2006/03/08(水) 10:56:30 ID:???
$d = '&1&&2&&3&&4&&5&&6&&7&';
のように、「&[^&]&」という値の組み合わせが羅列されている文字列から
preg_replaceを使って、「&1&&2&&3&&4&&5&」のように先頭から最大で5組の
値を取り出すにはどのようにすればいいでしょうか。

私の試したコード(これではダメでした)
$d = preg_replace('((?:(?:&[^&]&){1}?){,5}?)', '\1', $d);

521 :nobodyさん:2006/03/08(水) 11:03:18 ID:???
>>520
print preg_replace('/^((?:\&[^&]*\&){0,5}).*/', '\1', $d);
こう?

522 :nobodyさん:2006/03/08(水) 11:16:26 ID:???
>>481
フォームとGETとPOSTの勉強しろってのは十分な回答だと思うが…。

523 :nobodyさん:2006/03/08(水) 11:19:10 ID:???
ゲットなんてなれなれしい言葉で質問するからわかりにくいんだよ
GET POST という用語がわかってれば、そんな言葉は使わないだろ

524 :520:2006/03/08(水) 11:19:23 ID:???
>>521
で、できました!!感激です!!
ご回答ありがとうございました。何時間考えてもわからなかったので
非常に助かりました。

525 :500:2006/03/08(水) 11:24:21 ID:???
>>522
真面目に答えた漏れの立場は…

526 :nobodyさん:2006/03/08(水) 11:24:24 ID:LmEgCiLJ
配列の関数で
Array([0]=>ちんこ [1]=>まんこ)
の戻り値が返ったときにそれぞれ
ちんこを$tin
まんこを$man
と置くにはどうしたら良いでしょうか

527 :nobodyさん:2006/03/08(水) 11:28:06 ID:???
$asoko = array('ち○こ', 'ま○こ');
list($tin, $man) = $asoko;


528 :nobodyさん:2006/03/08(水) 11:30:55 ID:???
「ページをゲットする」は言うだろw

>>475のレスが厨なだけで>>471の質問自体は非はない。初心者向けのスレだし。
もちろん的確な回答をした奴も正解。乙

529 :nobodyさん:2006/03/08(水) 11:31:28 ID:???
>>525
うーん、おれはあのURLにスラッシュ区切りでパラメータ並べたときの
パラメータの取得方法のことをいってるのかと思ったけどなー。

530 :nobodyさん:2006/03/08(水) 11:32:34 ID:???
ようはスパイダリングの話なのかな。

531 :nobodyさん:2006/03/08(水) 11:32:51 ID:???
>>525
乙。まぁくだ質だし、質問者もアレな奴が多いから
あまり気にしない方がいいと思うよ。最近特に変なのがいるし。

532 :nobodyさん:2006/03/08(水) 11:32:57 ID:LmEgCiLJ
>>527
出来ましたありがとうございます

533 :525:2006/03/08(水) 11:40:36 ID:???
なるほど、なるほど。参考になります。

534 :nobodyさん:2006/03/08(水) 11:46:58 ID:???
>>529
それだとわざわざhiddenの内容を示す意味って無いんじゃないか?

535 :nobodyさん:2006/03/08(水) 11:47:02 ID:???
>>527
もっとわかりやすくするなら、
$asoko = array('ち○こ', 'ま○こ');
$tin = $asoko[0];
$man = $asoko[1];
でもおけぃ

536 :481:2006/03/08(水) 11:57:41 ID:???
>>522
もちろん、471がPOSTやGETの勉強をした方がいいのは事実だし、471自身へのアドバイスとしては的確。
だけど、質問に答えないで別のことを咎めるのはスレの趣旨にそぐわないと思う。それだけ

537 :nobodyさん:2006/03/08(水) 12:00:04 ID:???
>>536
その言葉はおまえ自身に返ってくるようなw

538 :nobodyさん:2006/03/08(水) 12:14:31 ID:???
スレの趣旨?

PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

539 :nobodyさん:2006/03/08(水) 12:19:15 ID:???
素早く回答が出ることが趣旨になった覚えはまったく無いんだが…

540 :nobodyさん:2006/03/08(水) 13:25:55 ID:???
じゃあ次スレは回答禁止にするか?

541 :nobodyさん:2006/03/08(水) 13:32:20 ID:???
極論でしか話せない人が約一名いるな。
まあまたーりしろ。

542 :nobodyさん:2006/03/08(水) 13:39:38 ID:???
まぁ、あんなのもこんなのも、
全部含めて和気藹々

543 :nobodyさん:2006/03/08(水) 13:58:48 ID:???
腋毛愛愛

544 :nobodyさん:2006/03/08(水) 14:34:19 ID:???
自宅のWin2000PCにApache2とPHP4走らせてるんですが
同じPCにPHP5を追加してPHP4と共存させることってできますか?

545 :nobodyさん:2006/03/08(水) 14:40:13 ID:???
>>544
無理でゴンス

546 :nobodyさん:2006/03/08(水) 14:50:16 ID:???
拡張子を.php4と.php5とかにして振り分けるってのなら最近なんかの雑誌で見かけた気はする

547 :nobodyさん:2006/03/08(水) 15:15:29 ID:???
3と4なら共存させる仕組みあったのにねぇ
これじゃいつまでたっても5が普及しない

>>546 詳しくきぼんぬ

548 :nobodyさん:2006/03/08(水) 15:19:43 ID:???
>>544
可能。VirtualHostで切り分ける手がある。
まあ良く判んなければ、Apache+PHPを別Portで複数動かして
クライアント側がアクセスするPortで切り分けるか、
>>546のように拡張子でPHP-cgiの起動を切り替える。

Win2000ってことはテストで動作比較したいんでしょ。
なら手軽に分離できる別Portで切り替えを薦める。

549 :nobodyさん:2006/03/08(水) 15:26:25 ID:???
コンテンツアドバイザのパスワードをレジストリエディタでみようとしたら
パスワードがバイナリ値というので表示されていました。
バイナリ値を普通の言葉にできるソフトや、そういった解説をしている
HPなどはありますか?

550 :nobodyさん:2006/03/08(水) 15:50:21 ID:???
>>549
どの辺がPHP?

551 :nobodyさん:2006/03/08(水) 15:54:07 ID:???
>>549
子供はHなサイトを見ちゃイカンよ。

552 :nobodyさん:2006/03/08(水) 15:55:00 ID:???
ある日付から月末日を算出するにはどんな方法があるでしょうか?
色々考えてみたのですが、非常に面倒な方法になってしまいました。

例2005-03-20 → 2005-03-31、2006-01-20 → 2006-01-31


553 :nobodyさん:2006/03/08(水) 15:58:52 ID:???
「php 日付 チェック」でググルとかしてみれ・・

554 :nobodyさん:2006/03/08(水) 16:06:17 ID:vjc8ygyC
>>552
ヒント:翌月1日の1日前の日付が当月の末日


555 :nobodyさん:2006/03/08(水) 16:15:40 ID:???
>>552
http://php.benscom.com/manual/ja/function.date.php

556 :nobodyさん:2006/03/08(水) 16:24:15 ID:???
>>552
ttp://php.benscom.com/manual/ja/function.mktime.php
> 例 2. 次月の最後の日
> 指定した月の最後の日は次の月の -1 番目の日ではなく、"0" 番目の日 として表すことが可能です。
> 以下の例はともに文字列"The last day in Feb 2000 is: 29" を出力します。
> $lastday = mktime(0, 0, 0, 3, 0, 2000);
> $lastday = mktime(0, 0, 0, 4, -31, 2000);


557 :nobodyさん:2006/03/08(水) 16:31:53 ID:???
$foo = '2005-03-20';
$t = explode('-', $foo);
$bar = date('Y-m-t', mktime(0, 0, 0, $t[1], $t[2], $t[3] ))
;
echo $bar;

558 :nobodyさん:2006/03/08(水) 16:32:58 ID:???
あ、ごめん$t[3]は$t[0]のまちがいだ。

$foo = '2005-03-20';
$t = explode('-', $foo);
$bar = date('Y-m-t', mktime(0, 0, 0, $t[1], $t[2], $t[0] ));
echo $bar;

559 :nobodyさん:2006/03/08(水) 16:40:34 ID:???
PHP4.3とMySQL3.23でシステム作ってます。

PEARを使わずmysql〜関数を使用して自作クラス作りました。
INSERTやUPDATEは型判別して自動でクエリ文作る感じです。

mysql_fetch_array() で取得した値が全てstring型になっていたため、
一部のパラメータのみを書き換えてINSERTやUPDATEすると
エラーになり苦労させられたのですが、
この辺どのように回避していますか?

また、PEARを使用すれば上記は回避できるのでしょうか?


560 :nobodyさん:2006/03/08(水) 16:49:00 ID:???
>>555
"指定した月の日数。"なんてオプションがあるんだな。
質問者ではないがありがとう。

print date(t,strtotime("10 April 2006"));

561 :nobodyさん:2006/03/08(水) 16:56:30 ID:???
>>560
エラーになるかと思ったけど動くんだ、それ・・・


562 :nobodyさん:2006/03/08(水) 16:58:53 ID:???
どのへんでエラーになると思ったのかな
tが裸だから?

563 :nobodyさん:2006/03/08(水) 16:59:17 ID:???
>>559
PEAR::DBではクエリ作成の機能を持ってない。
ADOdbではFetchField()でDBネイティブの各カラムのデータ型の取得と、
MetaType()でその型を汎用的な抽象表現への変換ができるようになってる。
PHPの変数は型を厳密に規定できないので、あらかじめDBからテーブルの型を
取得しておこう、って発想なんだと思う。

564 :560:2006/03/08(水) 17:05:25 ID:???
>>560
今月でいいなら
print date(t);
でも可

print date(t,strtotime("April 2006"));
でも動くし

>>561
俺もなんで動かないと思ったか知りたい
責めてるんじゃなくて、もっといい記述方法があれば知りたいのだ

565 :nobodyさん:2006/03/08(水) 17:07:18 ID:???
>>564
561じゃないけど、第一引数はちゃんと'〜'なり"〜"で括りましょう。

566 :nobodyさん:2006/03/08(水) 17:09:55 ID:???
>>565
thnx
明示しとけって事ね

567 :562:2006/03/08(水) 17:10:28 ID:???
ま、やっぱり裸だったとこかね。

568 :nobodyさん:2006/03/08(水) 17:27:19 ID:???
>>566
明示っつーか、define未定義の動作に頼った記法はあんま良くないよ。

569 :559:2006/03/08(水) 17:29:49 ID:???
>>563
レスどうもです。
DB_common::autoPrepare() でINSERT/UPDATEのクエリを
作ってくれるようなんですが、
使うに当たり疑問になりまして。。。
結局型をあわせてやらにゃいかんのかな〜

今PEARのDB関係のメソッド漁ってますが、
型を取得するメソッドが見つからないんですが(;´д⊂
今のままでいっかなぁ・・・


570 :nobodyさん:2006/03/08(水) 17:42:09 ID:???
>>569
ごめん。PEAR::DBでもクエリ作成できたのね。吊ってくる…
autoPrepare()は型を含んだクエリテンプレートの自動生成みたいよ。
実際のクエリ生成はそのテンプレートを元にexecute()で生成するぽい。

571 :nobodyさん:2006/03/08(水) 17:59:00 ID:???
>>570
DB_common::getAll() なり何なりで取得した配列が
全部DBと一致する型・・・とは言わないまでも、
intがstringになってたりしなければ問題ないんですけどね〜

もうちょっと揉まれてきます(´д`)


572 :nobodyさん:2006/03/08(水) 19:26:32 ID:???
string date ( string format [, int timestamp] )


573 :559:2006/03/08(水) 19:34:59 ID:???
ガイシュツかもしれないけど一応報告。

DB_common::getAll() の戻り値:軒並みstring

以下テーブルを作り、execute()内でどんなクエリが作成されるか検証。

テーブル名:t_test
key1:verchar(255)
key2:int(11)
key3:tinyint(4)

・ソース1
$data = array( "data1", 2, true );
$ret = $conn->autoPrepare( "t_test", array( "key1", "key2", "key3" ) );
$conn->execute( $ret, $data );

・クエリ1
>>"INSERT INTO t_test (key1,key2,key3) VALUES ('data1',2,1)"

・ソース2
$data = array( "data1", "2", "true" );
$ret = $conn->autoPrepare( "t_test", array( "key1", "key2", "key3" ) );
$conn->execute( $ret, $data );

・クエリ2
>>"INSERT INTO t_test (key1,key2,key3) VALUES ('data1','2','true')"

単にexecuteの第二引き数の型をそのまんま適用しているだけっぽい。
DB次第じゃエラーですなヽ(;´д`)ノ


574 :質問:2006/03/08(水) 20:55:12 ID:MC7d+fja
PHPでJavascriptのtoStringメソッドみたいなことをさせるにはどうしたらいいんやろ?
具体的に言うと文字列を10進数とか16進数とかエンティティ化する方法はないですか?

575 :nobodyさん:2006/03/08(水) 21:17:17 ID:???
>>574
つ【マニュアル】

576 :nobodyさん:2006/03/08(水) 21:40:22 ID:74wPkS3/
Array ( [0] => Array ( [0] => [1] => ) [1] => Array ( [0] => a [1] => b ) )
このときaを$pen bを$con
という変数に置くにはどうしたらよいでしょうか?

577 :nobodyさん:2006/03/08(水) 21:46:50 ID:???
>>576
できない。

578 :nobodyさん:2006/03/08(水) 21:49:31 ID:74wPkS3/
ええ?そうなんですか・・・ありがとうございました

579 :nobodyさん:2006/03/08(水) 21:50:45 ID:???
マテマテww

580 :nobodyさん:2006/03/08(水) 21:51:00 ID:???
>>574
ord()

581 :nobodyさん:2006/03/08(水) 21:54:42 ID:???
>>574
ordかsprintf。
エンティティ化は
preg_replace_callback('/./', create_function('$m', 'return "&#".ord($m[0]);'), $str);
て感じか。
これやってくれる関数あるっけ?htmlentitiesやhtmlspecialcharsじゃ特定文字だけだしな。

>>576
$a = array(array('', ''), array('a', 'b'));という意味だと仮定するとlist($pen, $con) = $a[1];

582 :581:2006/03/08(水) 22:08:04 ID:???
アラヤダ
エンティティ化でセミコロンつけ忘れちゃった

583 :nobodyさん:2006/03/08(水) 22:09:04 ID:74wPkS3/
>>582
できますたありがとう

584 :nobodyさん:2006/03/08(水) 22:16:53 ID:???
掲示板やアクセス解析などを作っているのですが、
データベースを使うメリットを教えてください。
それから、今後の普及予想もお願いします。
やはりデータベースを利用したプログラムが増えていくのですか?

585 :nobodyさん:2006/03/08(水) 22:29:01 ID:???
>>584
メリット:安定して動作し、データ破損や消失が少なく、データ件数が多い場合に検索・表示が高速
普及:とっくに普及してると思うが…20年前の人ですか!?
DB利用:これは普及とかは関係なく、システム規模などの条件でどっちを使うか決めるもの

586 :nobodyさん:2006/03/08(水) 22:29:10 ID:???
>>584
掲示板だろうと、アクセス解析だろうと、
データを何かしらの方法で保存して、それを参照すれば、すなわちデータベース

お!君も既に使ってんジャンSUGEEEEEEEEEEEEEeeeeeeeeeeee!。





















と、煽ってみる

587 :nobodyさん:2006/03/08(水) 22:48:29 ID:???
PHPで他のサーバーにあるページにPOST送信するにはどうすればいいのでしょうか?
socket関数を使うというようなことを聞いたことがありますがいまいちやり方がわかりません。
ちなみにhtmlでformタグのactionで指定するのでは目的は達成できないので、phpでよろしくお願いします。

588 :nobodyさん:2006/03/08(水) 23:07:29 ID:???
>>587
PEARのHTTP_Request

589 :587:2006/03/08(水) 23:24:24 ID:???
pear使わないと無理ですか?
xreaでは使えないかなぁ・・・

590 :nobodyさん:2006/03/08(水) 23:34:28 ID:???
>>589
>pear使わないと無理ですか?
pearを使わずに自作することは可能。
ただし、それにはHTTPを理解する必要がある。

>xreaでは使えないかなぁ・・・
どこであろうとpearは使える。
例え"pearコマンドでインストール"できないサーバでも、
必要なパッケージを適当な場所に置けばよい。
なぜならpearはPHPで書かれたライブラリ群に過ぎないから。

xreaで使えるかどうかについては板違い。

591 :590:2006/03/08(水) 23:35:26 ID:???
しまったID未表示に回答しちまった

592 :nobodyさん:2006/03/08(水) 23:39:07 ID:???
( ´∀`)σ)д`)

593 :nobodyさん:2006/03/08(水) 23:45:45 ID:MQhgDV9r
HTMLのAタグやIMGタグの相対パスを絶対パスに変換する
ライブラリってありますか?
PEARで探したところそれらしきものはなさそうでした。

594 :nobodyさん:2006/03/08(水) 23:46:16 ID:???
なんで皆自作したがるんだ。

595 :nobodyさん:2006/03/08(水) 23:48:16 ID:???
>>594
PEARの手動インストール方法を知らないからじゃない?

596 :nobodyさん:2006/03/08(水) 23:51:32 ID:???
>>594
車輪が好きなんじゃない?

597 :nobodyさん:2006/03/08(水) 23:53:19 ID:???
レン鯖にコマンドラインで接続なんてできるのか?

598 :nobodyさん:2006/03/08(水) 23:54:52 ID:???
>>597
無理

599 :nobodyさん:2006/03/08(水) 23:56:19 ID:???
>>593
Net_URLのresolvePath

600 :nobodyさん:2006/03/09(木) 00:02:23 ID:???
>>597-598
出来る
たとえばSAKURA Internet(http://www.sakura.ne.jp/)
はtelnet/ssh接続で接続できるサービスを提供している
レン鯖といっても専用サバなら当然出来ると思うが。

板違いすまない。

601 :nobodyさん:2006/03/09(木) 00:06:22 ID:???
板違いついでにxreaもsshなら接続できる

602 :nobodyさん:2006/03/09(木) 00:26:43 ID:???
え、マジで?
それは知らなかった。早速やってみよう。

603 :nobodyさん:2006/03/09(木) 01:07:10 ID:???
>>590
HTTP_Requestでできました!!パッケージのインストールすら初心者には大変なもので・・・結構時間かかりました。
本当にありがとうございました!!

604 :nobodyさん:2006/03/09(木) 01:10:24 ID:???
ド初心者が1時間半でインストール〜POST送信までできれば上出来だな。

605 :nobodyさん:2006/03/09(木) 01:10:53 ID:???
20M程度のログファイルをphpで整形するスクリプトを作っているのですがメモリ関係で躓いています。
ファイルをfile関数で取り込むと

error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 15920437 bytes)

と表示されます。
調べてみるとmemory_limitを増やせば解決できるそうなのですが、
増やすとリスクが増えたりする可能性があるきがしましてできれば他の方法で解決を図りたいのですが、

何か良い方法はございますでしょうか。

606 :nobodyさん:2006/03/09(木) 01:13:54 ID:???
file関数は一気にその20MBをメモリに乗せるものだから当たり前だろ。

どういう整形をするかまったく書かれてないので、相談に乗りにくいのだが、
fopenで開いて、1行単位、もしくは、指定容量単位で処理すべき。

607 :605じゃないよ:2006/03/09(木) 01:17:37 ID:???
>>606
おまえニートの癖になんでそんなにえらそうなんだ?PCオタクがそんなに偉いのかよ。

608 :nobodyさん:2006/03/09(木) 01:19:59 ID:dcUpKQFS
別にPEARなんかサイトからダウンロードしてそのまま置けばいいだけじゃん。

609 :nobodyさん:2006/03/09(木) 01:20:04 ID:???
>>607
お前の方が偉そうだ

610 :nobodyさん:2006/03/09(木) 01:21:00 ID:???
>>608
推奨じゃないから

611 :nobodyさん:2006/03/09(木) 01:21:30 ID:???
>>607=>>605

612 :nobodyさん:2006/03/09(木) 01:28:38 ID:???
>>607=ツンデレ

613 :nobodyさん:2006/03/09(木) 01:32:41 ID:SHZr9acF
PEARについて詳しくかかれた本ってあります?
オンラインものじゃなくて、本があったほうがうれしいんで・・・

614 :nobodyさん:2006/03/09(木) 01:35:37 ID:???
>>613
PHP関連の書籍(但しPHP出版系お断り)第2版
http://pc8.2ch.net/test/read.cgi/php/1117066073/

参考書籍推薦スレッド
http://pc8.2ch.net/test/read.cgi/php/1014836425/


615 :nobodyさん:2006/03/09(木) 01:46:10 ID:???
PEARって便利なんだなあ
うふひひふ

616 :nobodyさん:2006/03/09(木) 02:02:35 ID:???
http://pc8.2ch.net/test/read.cgi/php/1140786348/
これをparse_urlで分解するとpath には/test/read.cgi/php/1140786348/が戻されますが、
真ん中の「php」の部分だけを戻したいときはどうしたらいいでしょう。

617 :nobodyさん:2006/03/09(木) 02:07:54 ID:???
>>616
○投げスレではない。
あとIDだして質問しろ

618 :nobodyさん:2006/03/09(木) 02:11:01 ID:???
617 名前:nobodyさん[sage] 投稿日:2006/03/09(木) 02:07:54 ID:???
>>616
○投げスレではない。
あとIDだして質問しろ

619 :nobodyさん:2006/03/09(木) 02:12:32 ID:???
俺も前丸投げスレじゃないって言われたんだけどどういう意味なの?自治したいだけなの?

620 :nobodyさん:2006/03/09(木) 02:16:29 ID:???
>>619
質問スレの自治厨なんて質問に答えられない奴に決まってんだろw

621 :617:2006/03/09(木) 02:19:26 ID:???
>>619-620
死ねよバカども
頭悪いくせに2chくるなよwwww氏ね。逝け。クズが。

622 :nobodyさん:2006/03/09(木) 02:50:21 ID:dcUpKQFS
コールバック関数に引数を渡したいのですが、
どうやれば良いでしょうか?

623 :nobodyさん:2006/03/09(木) 03:07:54 ID:???
無理

624 :nobodyさん:2006/03/09(木) 03:17:09 ID:???
>>616
"/"でsplitして、ゴニョゴニョする

というかその条件だけだとどういう方法がベストか分からないかも

625 :nobodyさん:2006/03/09(木) 04:07:23 ID:???
>>622
カプセル化したのをグローバルに使えば?

626 :nobodyさん:2006/03/09(木) 07:59:21 ID:???
>>561
ちゃんとNoticeが表示されるよ
みんなNotice消してるのかな

627 :nobodyさん:2006/03/09(木) 08:10:27 ID:???
php.ini の デフォルトではNoticeも表示されるだろ
消す意味あるの?

たまに配布されているphpスクリプトでもNoticeエラーでまくることあるけど、
エラーは全て表示でコーディングした方がいいよ



628 :nobodyさん:2006/03/09(木) 09:49:04 ID:???
Noticeなんて表示させなきゃ問題ないじゃん
出ても動くんだからさ

629 :nobodyさん:2006/03/09(木) 09:59:37 ID:???
>>628
Warningだって止まりはしないので、表示させなければ問題なしですか。

630 :nobodyさん:2006/03/09(木) 10:02:23 ID:???
Errorだって無視すれば・・・

631 :nobodyさん:2006/03/09(木) 10:18:29 ID:???
>>627
「最近の」デフォルトな。以前はデフォルトじゃなかった。
昨今のPHPブームでNotice出しとかなきゃミスコーディングするやつが続出したんだろ。
PHPなんて本来お手軽に作れるからこそ価値あるものだし、元々の言語構造的に
厳密にコーディングしたところでかなり無駄なんだからわざわざ出すもんじゃないんだがな>Notice

632 :627:2006/03/09(木) 12:23:00 ID:???
>>631
そうか?
一般の他の言語なら動けばいいだけだ。
しかし、phpはWebプログラミング用の言語であり、他言語との連携も重視されている。
言語構造的に正しくコーディングすることはセキュリティホールの発生確率を下げることになる。

以前はデフォルトじゃなかった、というが、以前はGETで送信されてきた「hoge」が、$hoge にそのまま入っていたよね。
そして、Noticeエラーも出ないから変数の初期化忘れても気が付かないわけだ。
その2つが組み合わされたら即大変危険なセキュリティホールの完成だったじゃないか。


633 :nobodyさん:2006/03/09(木) 12:29:30 ID:???
noticeの意味考えろや
せいぜい「通知」
気になる人は治しとけってだけ

634 :nobodyさん:2006/03/09(木) 12:36:57 ID:???
>>633
へぇー
変数の初期化をしないことは普通の言語では重大なエラーに相当するんだけどね

おまいさんは、Apacheのログの Notice 全部記録されなくて困らないの?

プログラミング言語を考える時に、もとの単語の意味なんて気にしちゃ駄目。


635 :nobodyさん:2006/03/09(木) 12:44:57 ID:???
ま、下らん煽りあいはやめとけ。
どっちが穴を防げるかっつったら議論の余地も無いだろ。

636 :nobodyさん:2006/03/09(木) 12:56:51 ID:???
>>632
register_globalsがOFFになったのは随分前の話。これは本当にセキュリティホール。
NoticeがデフォルトONになったのはつい先日の話。これはへたくそプログラマが増えたせい。

637 :nobodyさん:2006/03/09(木) 13:47:54 ID:???
言語なんてただの手段。
堅牢なプログラムが必要なら堅牢な組み方しろよ。言語関係なく。

638 :nobodyさん:2006/03/09(木) 14:06:11 ID:???
E_STRICTを付けるか、display_errors = Offかのどっちかだろ。

639 :nobodyさん:2006/03/09(木) 14:19:09 ID:31uVLi9S
HTTP_RequestでaddPostDataやsendRequestを使ってPOST送信するとサーバー側のIPからPOSTされたことになりますよね?
それを使用者のIPでPOSTするにはどうすればいいんでしょうか?

640 :nobodyさん:2006/03/09(木) 14:31:41 ID:???
使用者というかクライアントだろ。
<FORM>タグでフォームを用意して、ユーザーにSUBMITボタンおしてもらう。
PHP使わなくてもできるよ。

641 :nobodyさん:2006/03/09(木) 14:35:46 ID:31uVLi9S
>>640
それじゃあやりたいことができないんですよ・・・

642 :nobodyさん:2006/03/09(木) 14:36:00 ID:X3uNYaoU
こんにちわ。PHPで引数を送りたいのですが、
現在file_get_contents("hoge.php?id=35")でやっています。
しかし、いちいちファイルを読み込む為時間がかかります。
引数だけ送ってファイルを読み込みたくない場合はどうすればよい
でしょうか。

643 :nobodyさん:2006/03/09(木) 14:36:41 ID:???
>>642
file_get_contents("hoge.php?id=5");
になおす

644 :nobodyさん:2006/03/09(木) 14:37:26 ID:???
セッションのことがいまいちわからないんですが、
わかりやすく解説しているサイトなどはないでしょうか。

645 :nobodyさん:2006/03/09(木) 14:37:27 ID:???
>>641
POSTの仕組み勉強しなさい。

646 :nobodyさん:2006/03/09(木) 14:38:33 ID:???
>>645
答えられないの?

647 :nobodyさん:2006/03/09(木) 14:39:52 ID:???
>>646
>>645が答え。
車で空飛ぶにはどうしたらいいでしょうといわれても
車とはなにか学べとしか言えん。

648 :nobodyさん:2006/03/09(木) 14:40:30 ID:???
>>646
原理的に無理、と遠まわしに言ってることにも気が付かないか

649 :nobodyさん:2006/03/09(木) 14:43:24 ID:???
悔しくて2連投とかw

650 :nobodyさん:2006/03/09(木) 14:43:55 ID:???
つーか普通にできるけどな

651 :nobodyさん:2006/03/09(木) 14:45:11 ID:???
ヤフオクのストア管理画面とかログインにそれつかってるよな。
当然出る警告がウザイ。

652 :nobodyさん:2006/03/09(木) 14:46:48 ID:???
まあでもPHPの仕事じゃないと思われ。

653 :nobodyさん:2006/03/09(木) 14:50:03 ID:???
HTTP_Request::addHeader()
とか?

654 :nobodyさん:2006/03/09(木) 14:52:15 ID:???
>>652
だな。perlの仕事だ。

655 :nobodyさん:2006/03/09(木) 14:58:11 ID:???
Perlつえーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

656 :nobodyさん:2006/03/09(木) 15:00:46 ID:???
あれだ、Perl本体インストールさせてPOSTするスクリプトダウンロードさせて、実行させるんだろ!
天才だな

657 :nobodyさん:2006/03/09(木) 15:03:28 ID:???
それphpでもできるんじゃね?

658 :nobodyさん:2006/03/09(木) 15:16:55 ID:???
できるけど、面倒すぎてユーザーが拒否すると思う

659 :nobodyさん:2006/03/09(木) 15:22:24 ID:???
>まあでもPHPの仕事じゃないと思われ。
なんの仕事?

660 :nobodyさん:2006/03/09(木) 15:34:55 ID:???
>>659
java

661 :nobodyさん:2006/03/09(木) 16:15:43 ID:???
>>659
TCP/IPスタック

662 :nobodyさん:2006/03/09(木) 19:38:32 ID:???
>>1-661
自作自演乙

663 :nobodyさん:2006/03/09(木) 20:55:15 ID:???
シマンネ

664 :nobodyさん:2006/03/09(木) 21:03:05 ID:???
header()関数で、
header('Server: unknown');
のようにして、サーバ環境を隠蔽しようとしたのですが、うまくいきません。
エラーが出るわけではないのですが、Server: Apache/1.3.34 PHP/5.1.2の
ようにレスポンスが帰ってきます。
header()関数でサーバ環境を隠蔽するにはどのようにすればいいでしょうか。

665 :nobodyさん:2006/03/09(木) 21:08:01 ID:???
>>664
_

666 :nobodyさん:2006/03/09(木) 21:10:18 ID:???
>>665
miriですかぁ…
それは、PHPではということですか?

667 :nobodyさん:2006/03/09(木) 21:20:48 ID:???
皮先うざすぎ
消えろ

668 :nobodyさん:2006/03/09(木) 21:23:37 ID:???
さいきんの厨房はカルシウム不足で切れやすいというが
それと同じくして無能な人間がふえているのも現状だと言える。

669 :nobodyさん:2006/03/09(木) 21:25:10 ID:???
>>668
自己紹介とかいらんのや

670 :nobodyさん:2006/03/09(木) 21:36:09 ID:???
>>664
ブラウザに「Server: Apache/1.3.34 PHP/5.1.2」なんて情報渡してるんだっけ?


671 :664:2006/03/09(木) 21:39:40 ID:???
>>670
はい。firefoxなどのブラウザで見るぶんには意識することはありませんが、
ほとんどのサーバはヘッダ情報として「Server: Apache/1.3.34 PHP/5.1.2」
のような情報を送信します。

672 :nobodyさん:2006/03/09(木) 21:41:29 ID:???
htaccessに
Header Set

673 :664:2006/03/09(木) 21:51:11 ID:???
>>672
Apache側の設定をいじるわけですね。
Header Setでググってきます。ありがとうございました。

674 :nobodyさん:2006/03/09(木) 21:56:26 ID:???
>>670
環境変数のSERVER_SOFTWAREのことジャマイカ?
最近の鯖管理者のトレンドとしてはSERVER_SOFTWAREで
全ての情報を出さず、Apacheとだけしている、、ラシイ

675 :nobodyさん:2006/03/10(金) 00:18:54 ID:???
=========================
<?php
/*?>*/
?>
↑これだと問題ない。当たり前だ
=========================
だけど
=========================
<?php
//?>
?>
↑コメント以降は評価しないはずなんじゃないの?
=========================
?>
=========================
って出力されちゃう。
おかしくね?php4.3.11

676 :nobodyさん:2006/03/10(金) 00:43:28 ID:???
>>675
正常。
「//」でそれ以降は評価しない、というのはPHPの命令部の話であって
PHPタグはコメントの評価よりも先に解釈されている。
だから // ?> でのコメント部分は //「 」?> この「〜」部分だけ。

それから
/* ?> */
?>
ってやつのコメント範囲は
/*「 ?> */
?>」
ここまで。(後ろの */ はPHPタグ外なのでHTMLに*/と書かれている状態)
つまり、それはコメントが閉じてない状態になっているため、以降が全部見えてない。

677 :nobodyさん:2006/03/10(金) 00:49:21 ID:???
横槍だけど
print "?>";
print '?>';
は出来るんだね

678 :675:2006/03/10(金) 00:53:31 ID:???
>>676
なるほど。
先日ちょっとした手違いでソースが上記のようになりこんな現象を体験したもので不思議に思った次第です。
わざわざこんな風に書く事なんてあり得ないんですが、ひとつ勉強になりました。

もう一つ、最近思い悩んでることがあります。
$a = "moto_a";
$b = "moto_b";
$c = "moto_c";

これらの変数に、文字列"_tuketashi"を加えて(これは何の問題もない)
元の変数名に"_plus"を加えた変数名の新たな変数を、phpの処理で作りたい。
ここのロジックがわかれば元の変数を配列にぶち込んで関数で一気に処理出来たらいいんだけど。

$a = "moto_a_tuketashi";
$b = "moto_b_tuketashi";
$c = "moto_c_tuketashi";

変数名($がついてない)だけを引数で与えて、自作関数でなんとかするとか、evalでどうにかするっていうのは出来たけどいまいちスマートじゃない。
変数「名」を取得して、特定の文字列を付け足した新たな変数を作るという部分で悩んでるんだけど、なんかいい方法はないでしょうか?

679 :nobodyさん:2006/03/10(金) 01:01:19 ID:arwUV0AH
>>672
>>664じゃないけど知りたくなってググったがわからん。後学のために教えてくれ。

680 :nobodyさん:2006/03/10(金) 01:02:09 ID:???
>>678
変数名のセットはともかく「取得」ってのは「どっから??」って思うのでこれはパス。
とりあえずこんな感じでどうか。
foreach(array("a", "b", "c") as $env) {
 ${"{$env}_plus"} = "${$env}_tuketashi";
}

681 :nobodyさん:2006/03/10(金) 01:12:37 ID:???
>>678
俺はHTMLソースを表に出さないようにコメント化して非表示にしたり、
HTMLソースとしては見せたくない内部的なコメントを書くのに<!-- -->を使わず
<html>
<?php /* ここからコメントアウト?>
<div>
</div>
<?php ここまでコメントアウト */?>
とか
<div>
<?php //項目名 ?><span></span>
<table>
みたいなHTMLもたまに使うよ。

682 :nobodyさん:2006/03/10(金) 01:20:16 ID:???
>>679
すぐ検索できたぞ・・
おれもphp関係ないけど興味あったので調べてみた
http://www.heeha.ws/index.php?Apache%B4%D8%B7%B8
はまとまってるんじゃないかな

683 :nobodyさん:2006/03/10(金) 01:20:56 ID:???
>>682
そこにも書いてあるけどapache側で完全に出ないようにしないと意味無いよね・・

684 :nobodyさん:2006/03/10(金) 01:31:26 ID:???
>>682
thx

685 :678:2006/03/10(金) 01:54:26 ID:???
>>680
たしかに取得という言い方はちょっと変ですね。
$aという変数があったら、「$a」から「$」をとった部分を文字列として「a」として取り出せないかな。と。
こういうことを言いたかった。

で、ソースの方ですが、なるほど。
こういう感じで$(ドル)重ねちゃうんですね。こんなやり方もあったんだ。
ただ、やっぱり引数に与える文字列は手動で、ってことになっちゃうんですね・・・
それでも最初に配列を作っておけばいいから、かなりすっきりしますね。

受け取った値を表示用に整形して元の値はそのまま残しておきたいってケースが結構あるんです。
それで、元の変数に手を加えて名前をちょっとだけ変えた変数を生成ってやりたいんですよ。
>>681
いただきます

686 :nobodyさん:2006/03/10(金) 01:57:13 ID:JMSIppfw
2日間試行錯誤してみましたがわからなかったので教えていただけると嬉しいです。
「?????」
のようなUnicode10進で書かれた文章を、
「あいうえお」
という形に変換、またはその逆を行いたいのですが、どのように行えば良いのでしょうか。

687 :686:2006/03/10(金) 01:59:35 ID:JMSIppfw
すいません。化けてしまいました。

「?????」

「&#12354;&#12356;&#12358;&#12360;&#12362;」

です。

688 :nobodyさん:2006/03/10(金) 03:10:33 ID:???
>>686
まずはUCS-2とUTF-8の関係を調べると良い。
ttp://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm
ttp://homepage1.nifty.com/nomenclator/unicode/data/hiragana.htm
http://www.unicode.org/charts/PDF/U3040.pdf

689 :nobodyさん:2006/03/10(金) 03:48:26 ID:???
xxxxx.xxxxx.jp

アクセスログでこういうリモートホストがあった場合に、
これが属性JPなのか汎用JPなのか判別するいい方法ありませんか。
リモートホストをドメインでグルーピングしたいんですが。

690 :nobodyさん:2006/03/10(金) 03:58:00 ID:???
>>689
co.jp
or.jp
gr.jp
ac.jp
ed.jp
ne.jp
かどうかで判断すればいいんじゃないのかな・・
これで全部かは知らんけど

691 :nobodyさん:2006/03/10(金) 04:17:37 ID:???
>>689
リモホをドットで区切って後ろから二つ目が2文字なら属性っていうのはどうよ
gTLDじゃないっていう前提が必要だが

692 :690:2006/03/10(金) 04:27:21 ID:???
>>689
http://www.nic.ad.jp/ja/dom/basics.html
がまとまってそうだから読んでみれば?
法則自体は難しくないから.jpだけなら比較的簡単に作れるんじゃない

693 :nobodyさん:2006/03/10(金) 04:40:42 ID:???
>>690-692
ありがとうございます
691さんのやり方使おうと思ったんですが、地域型ドメインなんていう厄介なものもあるんですね
検討してみます

694 :nobodyさん:2006/03/10(金) 05:35:55 ID:???
>>693
691の提示しているやり方でなんら問題ない。
http://jprs.jp/info/jp-dom/character.html

695 :694:2006/03/10(金) 05:45:18 ID:???
ああ、汎用JPドメインと属性型地域型JPドメインの区別も必要な訳か。
これの区別は難しいと思うよ。

696 :694:2006/03/10(金) 05:48:20 ID:???
×属性型地域型JPドメイン
○地域型JPドメイン
ごめん頭回ってない。もう居ぬわ。

697 :nobodyさん:2006/03/10(金) 06:43:32 ID:+ksaxYfx
http://php.s3.to/bbs/emoji.phps

このプログラムを調べています。

$wを何もしなくても0と1の配列に別れていますが、これはどういうことですか?


この定義していないのに配列で扱うというのは、なぜですか?これを配列で定義すると、どうに分けられた答えが返ってきますか?

698 :nobodyさん:2006/03/10(金) 07:00:47 ID:???
>>697
$w = mb_substr($str, $i, 1, "SJIS");
って行で $w が最初に出て来てるじゃん

mb_substr でググルなりしてみなされ

699 :nobodyさん:2006/03/10(金) 07:04:54 ID:+ksaxYfx
いや、そうじゃなくてこの0と1の変数の意味がわかんないんです。。

戻り値は普通そのsubstrされた文字なのはわかるのですが、なぜ配列になっているのかがわからないです。。

700 :nobodyさん:2006/03/10(金) 07:37:29 ID:???
>>697
このユーザ関数の説明みたいなページは無いの?

701 :nobodyさん:2006/03/10(金) 08:44:51 ID:???
>>697
$wがマルチバイト文字(2バイト)だから
$w[0]$w[1]にわけられる
俺はこういう場合は$w{0}を使うけどね

702 :nobodyさん:2006/03/10(金) 08:48:48 ID:???
$w = "abcde";
の文字列に
echo $w[3]; // dが表示
のように配列でアクセスできることの応用かな
ただし文字列に配列でアクセスするときは{ }が推奨されている


703 :nobodyさん:2006/03/10(金) 10:50:40 ID:???
これ
ttp://jp2.php.net/manual/ja/language.types.string.php#language.types.string.substr

散々出ているが、レッツ!のスクリプトは古く、
かつメンテナンスされていない物が多いので
(特に初心者は)あまり参考にすべきではないと思う

704 :nobodyさん:2006/03/10(金) 11:40:13 ID:???
目的はアク禁なら、事前にドメインを持てばおけ。
にちゃんの解除以来板でも見て候補拾えばよろし。

ソース出したくないなら、そもそもphpは向いてないよ。
mixiみたいに設定ミスで流出の危険は常に有る。
アプリケーション鯖みたいにリクエストだけ別に投げて処理するようにしないと。

705 :nobodyさん:2006/03/10(金) 11:52:24 ID:???
波括弧って1文字しかアクセスできないの?

706 :nobodyさん:2006/03/10(金) 14:56:54 ID:???
ttp://php.s3.to/simple/
レッツPHPのbasic認証のパス失敗したらlog残すみたいな
スクリプト配布しているところ知りません?

707 :nobodyさん:2006/03/10(金) 15:36:33 ID:OI9+vMb4
以下のようなソースを a.php として書いたんですが(UTF-8で)

<?
header('Content-type: text/xml; charset=utf-8');
echo('<?xml version="1.0"?>');
echo('<xmldoc><data>1</data></xmldoc>');
?>

以下のようなエラーが出てしまいます。どうしたら回避できますか?
これより前にヘッダなんか送ってなんかないよ〜。
Warning: Cannot modify header information -
headers already sent by (output started at /usr/local/apache2/htdocs/a.php:1) in
/usr/local/apache2/htdocs/yj.php on line 2
1

環境は
Apache/2.0.50 (Unix) PHP/4.4.0
です。



708 :nobodyさん:2006/03/10(金) 15:41:13 ID:???
>>706
板違い

>>707
<? の前に空白文字(改行やスペース)が入ってるだろ

709 :707:2006/03/10(金) 15:49:35 ID:OI9+vMb4
>>708
ありがとうございます、入ってませんでした。

>>707にコピペした以外1バイトたりとも余計なものはありません。。
もちろん
<?
が1行目です。

710 :707:2006/03/10(金) 15:50:56 ID:???
あああああ。
ソースを shift_jis で保存しなおしたらでけた。
なんでだ。

711 :nobodyさん:2006/03/10(金) 15:53:48 ID:???
>>710 保存したコードと実際記述したコードが違ったんじゃまいか?

712 :nobodyさん:2006/03/10(金) 16:38:26 ID:???
>>707
多分BOMという余分なものが

713 :nobodyさん:2006/03/10(金) 16:42:27 ID:???
多分爆弾がらみだろうな

714 :nobodyさん:2006/03/10(金) 16:47:57 ID:???
UTF-8N

715 :nobodyさん:2006/03/10(金) 16:50:04 ID:???
>>710
InternalEncodingの設定じゃまいか?

716 :706:2006/03/10(金) 17:10:07 ID:???
板違いでしたか・・・どこの板で質問がいいですか?

717 :nobodyさん:2006/03/10(金) 17:47:46 ID:???
PHPでQRコードは生成できますか?

718 :nobodyさん:2006/03/10(金) 17:53:34 ID:???
php qr でぐぐれ一番最初に出てくる

719 :nobodyさん:2006/03/10(金) 17:58:20 ID:???
>>716
PHP-users ML

720 :nobodyさん:2006/03/10(金) 18:28:51 ID:???
>>719
最低だw

721 :nobodyさん:2006/03/10(金) 19:06:20 ID:???
>717なんかの
「PHPで〜できますか?」とか言う質問は

・PHPの組み込み関数で〜
・PHPの関連ライブラリ(pear,peclなど)で〜
・PHPの(サードパーティー)ライブラリで〜
・PHPの能力のうちで〜

のどれなのかをはっきりさせて質問するべきだと思うんだが。

>>716
Web制作orダウソ

722 :nobodyさん:2006/03/10(金) 19:11:18 ID:???
>>721
くだ質だし、この方法なら出来るよって行ってみるしかない気も

723 :nobodyさん:2006/03/10(金) 19:12:18 ID:???
>>722
PHPに関する知識がないのは許そう。
だが、質問者としての常識がないのはいただけない。

724 :nobodyさん:2006/03/10(金) 19:38:55 ID:Zv8Tap21
PHP4 でスタックの実装ってありますか?
push('a');
push('b');
$b = pop();
$a = pop();
echo $a.$b;
"ab"
みたいな事がしたいのですが、どの関数を使えば良いのか分かりません。

725 :nobodyさん:2006/03/10(金) 19:43:10 ID:???
array_push
array_pop
どうぞ。
ってか、別にいらない気もするけど。

726 :nobodyさん:2006/03/10(金) 19:43:21 ID:???
array_push()
array_pop()

727 :nobodyさん:2006/03/10(金) 19:44:17 ID:???
>>724
マニュアルを push で検索。

728 :nobodyさん:2006/03/10(金) 19:51:00 ID:???
>>725
>>726
>>727
ありがとうございます。m(_ _)m

729 :nobodyさん:2006/03/10(金) 20:01:58 ID:???
>>724の人気に嫉妬

730 :nobodyさん:2006/03/10(金) 20:11:45 ID:???
おまいら優しいな

731 :nobodyさん:2006/03/11(土) 02:09:03 ID:???
仕事はじめて一年になります。
何本かプログラムを作ったけどいわゆる入力まわりの、
「記入」「確認」「修正(記入と同じ画面を使いたい)」「完了」
これの条件分岐に関して、getでなんとかしたり、セッションに変な変数入れたり、hiddenで変な変数投げたりといつも、ごちゃごちゃになって、未だ自分の納得出来る方法を確立してません。
特に、確認画面から修正にもどるとこ。
これに関して、定番のロジックのフローチャートみたいなものってどこかにないでしょうか?

$_POSTが無くて、何らかの入力エラーがあったら「記入」
上記をスルーしたら「確認」
修正したい時は「記入」にもどるけど、このときはgetで。
「記入」画面で「確認画面をスキップ」にチェックを入れておいたら「確認」をスルーしてメイン処理(書き込み、DB登録やメール飛ばし)、成功したら「完了」失敗したら「エラー(このエラーはほかのエラーの場合も使う)」
こんな感じでやりたいのですが、皆さんはこの辺はどんな設計にしてますか?

732 :nobodyさん:2006/03/11(土) 02:22:13 ID:???
drupalモジュールの開発をやってみてるんですが。
すでに定義されている変数や定数を一覧表示する関数というか方法は無いでしょうか?

733 :nobodyさん:2006/03/11(土) 02:29:37 ID:???
開発ソフトを使う。

734 :nobodyさん:2006/03/11(土) 02:32:42 ID:???
>>731
> 定番のロジック
HTML_QuickForm_Controller

735 :nobodyさん:2006/03/11(土) 02:35:55 ID:???
>>732
実行中なら
get_defined_vars
get_defined_constants
ソースからなら
http://oss.moongift.jp/intro/item_624.html


736 :nobodyさん:2006/03/11(土) 02:44:22 ID:???
>>735
ありがとうございます!
リンクのツールもかなり便利そうですね。

737 :nobodyさん:2006/03/11(土) 03:36:09 ID:???
>>735
でPHPXrefの公式に飛んでワロタ

738 :735:2006/03/11(土) 05:36:03 ID:???
>>737
735の公式サイトのリンクはクリックをカウントしてるのか自サイトですね。
たまにエラーが出るみたい
こっちが直
http://phpxref.sourceforge.net/


739 :nobodyさん:2006/03/11(土) 09:40:18 ID:???
みなさんは、メソッドを作成するときにpublicとpublic staticを
どのように使い分けていますか?
私はインスタンスを生成するのがめんどくさいというだけの理由でほ
とんどのメソッドでstatic宣言を使用しているのですが、これだと、
向上心がないような気がするので、みなさんの意見を聞きたいです。

740 :nobodyさん:2006/03/11(土) 09:51:36 ID:???
>>739
> インスタンスを生成するのがめんどくさい

どんな嫌なことがあったんですか?

741 :739:2006/03/11(土) 09:58:14 ID:???
…質問されて改めて考えてみると、特に嫌なことがあったわけではな
いことに気がつきました。
嫌というよりは、例えば$example->example()でできることはstaticを
宣言すればexample::example()でもできるわけで…
つまり、みなさんがどんな使い分けをしているのかを聞きたかっただけ
なんですけが。

742 :nobodyさん:2006/03/11(土) 10:20:33 ID:???
staticじゃexampleの中に$thisが書けないっすよ

743 :739:2006/03/11(土) 10:26:24 ID:???
>>742
確かに。でもself::が書けるのでオケィです。

744 :nobodyさん:2006/03/11(土) 10:35:16 ID:???
>>743
え?インスタンスごとの変数はどうするの?

745 :743:2006/03/11(土) 10:46:56 ID:???
>>744
あぁ、なるほど!!
インスタンスを複数生成したことがなかったから、意識していません
でしたが、たしかに、staticではインスタンスごとの変数は扱えませ
んね。
すっきりしました。ありがとうございました。

746 :nobodyさん:2006/03/11(土) 13:20:18 ID:???
ワロス

747 :nobodyさん:2006/03/11(土) 15:19:01 ID:???
しょぼいSPAMフィルタリングツールを作ろうと思ってるんだけど、
文字コードが大きな壁になってます。
メールの件名を判断してフィルタリングしようと思ったら
例えば日本語ならiso-2022-jpにエンコードして設定しなきゃいけない
わけですよね?
日本語だけならまだしも他の言語で色々エンコードあると
1言語ずつ対応しなきゃいけないわけで
非常にだるそうなんですが、なにか良い方法ないでしょうか?


748 :nobodyさん:2006/03/11(土) 15:21:09 ID:???
>>747
やる気がないんだったらカエレ!

749 :nobodyさん:2006/03/11(土) 15:33:48 ID:???
ftp_chmodってphp5からしか使えないのね、
そのユーザの権限でchmodしたいので
ftp_chmod使うつもりだったんだが。
php5入れる以外で代替法ないですかね・・・orz

750 :nobodyさん:2006/03/11(土) 16:01:31 ID:???
PEAR::Net_FTP#execute("chmod 755 something.txt")

751 :nobodyさん:2006/03/11(土) 16:02:19 ID:???
>>749
http://jp.php.net/manual/ja/function.ftp-chmod.php
下の投稿に代替案みたいなのが載ってる

752 :nobodyさん:2006/03/11(土) 17:44:19 ID:???
>>747
対応が必要なんだったら、そのだるい方法しかないよ。
前以てフィルタワードを各エンコーディング毎に用意しとくてもあるけど。

753 :nobodyさん:2006/03/11(土) 18:09:37 ID:???
>>747
日本語と英語ぐらいしか来ないんだったら、マルチバイト関数のautoである程度行けるけどね

754 :nobodyさん:2006/03/11(土) 18:53:48 ID:???
>>751
ftp_siteを使えば言いわけね。
俺はお前に土下座するくらい感謝してる、本当にありがとうございます

755 :nobodyさん:2006/03/12(日) 00:18:43 ID:???
>>751
セキュリティ的にはローカルのFTPにアクセスするだけなら安全なのかな
ネットワークを介すとFTPってのはちょっと怖いよね・・

756 :nobodyさん:2006/03/12(日) 09:25:46 ID:???
Strict Standards:
Assigning the return value of new by reference is
deprecated in PEAR.php on line 557

line 557: $a = &new $ec($code, $mode, $options, $userinfo);
line 558: return $a;

PEAR/Auth.phpを読み込んだら、上記のようなエラーが複数出力されました。
これは、どのような意味のエラーなのでしょうか。
また、E_STRICT設定でもエラーが出ないようにするための対処方法も教えて
いただけると助かります。ご回答よろしくお願いします。


757 :756:2006/03/12(日) 10:05:41 ID:???
$new を clone に書き換えたらエラーはでなくなりました。
失礼いたしました。

758 :nobodyさん:2006/03/12(日) 10:30:23 ID:???
MySQLのテーブルにPHPスクリプト内で作った配列を「そのまま」入れることって出来ますか?
大垣本で調べたけど、Postgreの関数しか見つかりませんでした。

MySQLでは配列を配列のまま格納することは出来ないんでしょうか・・・。
もしそうなら、みなさんは配列のデータをどう分解してMySQLに収めるのがベストだと思いますか?

僕が考えているのは、たとえば$hairetu[1]〜$hairetu[50]まで50個の値が入ってるとして、
順にfor文で添え字1から取り出していって、DB格納用の変数$DBに入れて「:」などの記号を挟んで
「.」で連結していき、その$DBをMySQLテーブルの「text」フィールドに入れます。

もっとスマートなやり方などはありますでしょうか?

759 :nobodyさん:2006/03/12(日) 10:32:15 ID:???
自己レスですが、上記のやり方だと
連想配列やキーが連続した数字ではない配列では
使えない手法ですよね。

760 :nobodyさん:2006/03/12(日) 10:36:46 ID:???
serialize()使ってる

761 :nobodyさん:2006/03/12(日) 10:50:11 ID:???
phpの公式マニュアルに、

説明
bool isset ( mixed var [, mixed var [, ...]] )

のような表記があります。

この場合は単純なのですが、こういった表記の 「mixed var」や括弧の意味などの凡例は
どのページに明記されているのでしょうか?


762 :758:2006/03/12(日) 10:59:21 ID:???
>>760
すみません、「神」と呼んでいいですか?

763 :nobodyさん:2006/03/12(日) 11:05:08 ID:???
>>761
ttp://www.php.net/manual/ja/about.prototypes.php

764 :nobodyさん:2006/03/12(日) 11:49:30 ID:???
>>757
どっかのversionからnewがデフォルトで参照を返すようになったらしい
つまり & new の & が余分

765 :nobodyさん:2006/03/12(日) 12:20:38 ID:LBgD1ivZ
PHPのセッションは
クッキーが有効ならクッキー、
有効でないなら、URLに自動的に付加されますが、
スクリプト側で、セッションにクッキーが使用されているか否かを知るには
どうすればいいですか?

766 :761:2006/03/12(日) 12:22:42 ID:???
>>763
ありがとうございます


767 :765:2006/03/12(日) 12:28:39 ID:???
あー分かりました
$_COOKIE[session_name()]の有無を調べればいいんですね。
今までセッションの挙動がいまいち分からなかったのですが
PHP側で裏でいったんリダイレクトしてたんですね。

768 :nobodyさん:2006/03/12(日) 13:02:06 ID:???
え?リダイレクトなんてしてない筈だよ。
> URLに自動的に付加
ってことだから、use_trans_sidを使ってると思うけど、
初回のレスポンスはcookieとURL付加の両方をやって
次のアクセス時のリクエストにcookieが含まれていればcookieだけ使うって感じじゃなかったっけ?

769 :nobodyさん:2006/03/12(日) 13:16:51 ID:???
>>768
yes

770 :768:2006/03/12(日) 14:11:57 ID:???
>>768
なるほど、最初は両方するんですね。
クッキー判定をするために裏でやっているのだと思ったのですが
そういうことでしたか。
ありがとうございました。

771 :nobodyさん:2006/03/12(日) 14:38:24 ID:???
たとえば、us000999 のような文字列があって、
その次「us001000」を取り出したいのですが、
スマートな方法はないでしょうか?

現在は、力ずくで、文字を分解して、+1して、桁数を数えて…。
見たいな事をしています。
よろしくお願い致します。

772 :nobodyさん:2006/03/12(日) 14:59:59 ID:???
>>771

<?php
$str = 'us000999';
echo $str, PHP_EOL;
$str++;
echo $str, PHP_EOL;
?>

結果
us000999
us001000

773 :nobodyさん:2006/03/12(日) 15:03:46 ID:???
あ、ありがとうございました…。
なんか、苦労してたのがバカみたいです…。
PHP万歳

774 :nobodyさん:2006/03/12(日) 15:08:52 ID:???
>>772
これはびびった。PHPスゲーな。

775 :nobodyさん:2006/03/12(日) 15:20:19 ID:???
すごいけど
逆に怖い気もする

776 :nobodyさん:2006/03/12(日) 15:44:43 ID:???
その辺はPerlのパクリ。
そんなに怖がることもない。

777 :nobodyさん:2006/03/12(日) 15:45:33 ID:whEzuZdE
echo "<a href=\"hoge.html\">ほげほげ<\/a>";

このように</a>のスラッシュはエスケープした方がいいですか?

778 :nobodyさん:2006/03/12(日) 15:51:39 ID:???
>>777
特に展開の必要がないときは、シングルで括れば?
エスケープせずにすむし。

779 :nobodyさん:2006/03/12(日) 15:52:00 ID:???
>>758
似た様な事をやろうとして頭を悩ませてる。
serialize()でやった場合、そのデータをphpmyadminなんかでちょっといじりたいって時にそのserializeしたデータはどんな風に見えるんだろう?
「はてなブックマーク」のタグ的な仕組みを作ろうとしてるけど、こんな場合はやっぱり、区切り文字入れてフィールドに格納。
読み出したときにばらして配列に入れてごにょごにょ、っていうほうが楽そうな希ガス

780 :nobodyさん:2006/03/12(日) 15:53:19 ID:???
>>777
/のエスケープ?何のために?

781 :nobodyさん:2006/03/12(日) 15:54:07 ID:???
>>778
藻前ら、シングル、ダブルどっちでもいい状況のときって、どっち使いますか?
漏れはなんとなくダブル使う。

782 :nobodyさん:2006/03/12(日) 15:54:49 ID:???
>>779
実際にserializeしたのを出力してみればいいじゃない。
区切り文字でくっつけたのと似たような感じで文字列化されてるよ。

783 :nobodyさん:2006/03/12(日) 15:55:33 ID:???
>>781
微妙に速いのでシングルを使ってる。

784 :nobodyさん:2006/03/12(日) 15:56:36 ID:???
>>781
シングルを使う

785 :nobodyさん:2006/03/12(日) 15:58:34 ID:???
>>779
呼び出したときunserializeすればいいだけだが

786 :nobodyさん:2006/03/12(日) 16:34:26 ID:???
>>772
それ、$strが'us999999'までいくと次が'us000000’になるのか。
挙動をちゃんと覚えりゃ、なかなか使えそう。

787 :786:2006/03/12(日) 16:36:24 ID:???
うわ肝心なとこ書き換えてなかった...
'us000000’→'ut000000’。戻ってどないすんねん

788 :nobodyさん:2006/03/12(日) 16:53:19 ID:???
(´・ω・`) 知らんがな

789 :nobodyさん:2006/03/12(日) 16:59:52 ID:???
>>772
PHP_EOLってのは環境によって適した改行を勝手に表示って事?

790 :nobodyさん:2006/03/12(日) 17:19:10 ID:???
>>783
前に質問スレでその話題でベンチ計ったけど、エスケープや変数展開がない場合は全員ダブルの方が僅かに速かったよ。

791 :nobodyさん:2006/03/12(日) 17:22:50 ID:???
どんなスクリプトでテストしたの?
処理量はシングルの方が少ないから
テストの方法が悪いか、その他の要因が働いたとしか思えないのだが。

792 :nobodyさん:2006/03/12(日) 17:45:55 ID:???
>>790
とりあえず、100桁の文字(エスケープも変数も含まない)を
10000回printする、ってやつを30回くらい交互に実行させてみた。
結果としては
「不定期に一方が誤差程度に勝つだけで毎回勝敗が違う。故に両者に速度差はほぼ無いと言える」
となったよ。
>>791
なんかPHPってそこの処理はちゃんと最適化してないのかダブルがよっぽど最適化されてるのか
変数の有無で同じ関数使うようにしてるのか知らないけど、シングルだから処理少ないってことはなさげ。

793 :792:2006/03/12(日) 17:53:12 ID:???
さらにprintしないで変数に格納するだけってのと、変数にも入れないでただ評価するだけ、
ってベンチマークもやってみた。(printの方が処理コスト大きいんで誤差が把握しにくかったので)
でもいずれも結論としては同じ。どっちが速いみたいな差は全然ない。ほんとに誤差しか違わない。

794 :nobodyさん:2006/03/12(日) 18:39:00 ID:???
('A')

795 :nobodyさん:2006/03/12(日) 19:02:50 ID:???
フォームからPOSTした値(ラジオボタン選択値など)をスクリプトで受け取ったとき、
値に何らかの問題や未入力部分があったときにブラウザの「戻る」ボタンで戻らせたいです。

このとき、あるサーバでは、「戻る」でフォーム画面に戻ると、さきほど入力した値が残っています。
しかし別のサーバで同じスクリプトを置いてみたら、「戻る」でフォームの値がクリアされてしまっています。
これは恐らくphp.iniの設定の違いだと思うのですが、どの設定を直せばいいのでしょうか・・・??

796 :nobodyさん:2006/03/12(日) 19:20:07 ID:???
>>795
残ってる場合 -> ブラウザのキャッシュが使われている(つまり、鯖へのアクセスも無し)
クリアされている場合 -> 鯖から新規取得されている(鯖へのアクセス有り)

てなわけで、キャッシュ周りの設定をチェック(やポリシーの決定を)すれば良いよ。

797 :nobodyさん:2006/03/12(日) 19:27:48 ID:???
>>796
キャッシュ周りというと「session.cache_limiter」でしょうか??
戻るボタンでも入力した値が残るサーバをA、クリアされちゃうサーバをBとしますと、
AとBのphp.iniを比べてみましたが、「session.cache_limiter」など
怪しいところはみんな同じ値(nocache)なんです・・・。
いったいどの設定を直すのでしょう。

798 :nobodyさん:2006/03/12(日) 19:29:11 ID:???
phpだけの問題じゃない気がする。

799 :nobodyさん:2006/03/12(日) 19:34:42 ID:???
>>798
php.iniの問題だけじゃないかな。
他に何かある? ありうるとしたらApache・・・?

800 :nobodyさん:2006/03/12(日) 19:55:39 ID:???
フォームのページで送られてくるHTTPリスポンスヘッダを比較すれば原因及び解決法が分かるんじゃないかな。
たとえばこんな感じだと、クリア(新規取得)されることになる。
Pragma: no-cache
Cache-Control: no-cache
Expires: 過去の時間

これをキャッシュさせるためには、session.cache_limiterを変更したり、直接header()で書き出したり。
HTMLのmetaにも同じのを仕込めるので、そのあたりもチェック。
見た目は同じフォームでも、PHPで出力した場合と静的なHTMLファイルの場合はその辺の値が違ったりするよ。

801 :nobodyさん:2006/03/12(日) 20:10:11 ID:???
フォームのページで送られてくるHTTPリスポンスヘッダを比較すれば原因及び解決法が分かるんじゃないかな。
たとえばこんな感じだと、クリア(新規取得)されることになる。
Pragma: no-cache
Cache-Control: no-cache
Expires: 過去の時間

これをキャッシュさせるためには、session.cache_limiterを変更したり、直接header()で書き出したり。
HTMLのmetaにも同じのを仕込めるので、そのあたりもチェック。
見た目は同じフォームでも、PHPで出力した場合と静的なHTMLファイルの場合はその辺の値が違ったりするよ。

802 :質問:2006/03/12(日) 20:17:10 ID:OTf6vXB0
あるフォルダの中にあるファイルのリストを、自動で作るphpを作ったんだけど
その上のディレクトリの中身もリストに出すやり方がわかりません。
説明が分かりにくくてすみません。
簡単に言うと「りすてぃんぐ」というフリーソフトと同じ機能を持つphpが作りたいんです。
(http://www.oohara.jp/ppp/listing.html)

作りかけソース貼ったほうがいいですか?


803 :nobodyさん:2006/03/12(日) 20:34:30 ID:???
>>802
環境と、一応ソースコード

804 :質問:2006/03/12(日) 20:44:05 ID:OTf6vXB0
ソースがこれ
<html>
<head>
<title>PSPデータベース音楽</title>
</head>
<body bgcolor=black>

<table border=1 bgcolor=white>
<tr>
<td bgcolor=lightblue>タイトル</td>
</tr>
<?php
if ($dir = opendir("Music/")) {
while (($file = readdir($dir)) !== false) {
if ($file != "." && $file != "..") {
echo "<tr><td><a href=/Music/$file>";
echo "$file\n";
echo "</a></td></tr>";
}
}
closedir($dir);
}
?>
</table>

805 :質問:2006/03/12(日) 20:55:13 ID:OTf6vXB0
今の状態がこれで
http://ccfa.info/cgi-bin/up/src/up25666.html

理想はこれです。
http://ccfa.info/cgi-bin/up/src/up25665.html

806 :質問:2006/03/12(日) 21:01:03 ID:OTf6vXB0
>>805の違いが分かりにくいと思いますが、
理想のほうは
一番下にスクロールするとomaというフォルダの中身もリストに表示されます。
こういうふうにしたいんです。

何度もすまんです。

807 :nobodyさん:2006/03/12(日) 21:06:12 ID:???
opendir("Music/../")
じゃだめなん?

808 :nobodyさん:2006/03/12(日) 21:07:00 ID:???
>>804
まずその直接埋めこんでるものを$dirが引数になる関数にする。
次にechoする前のところにディレクトリの判別を入れてディレクトリだったら
それを引数にして再帰呼出しする。

ヒントは与えた。がんばれ。

809 :nobodyさん:2006/03/12(日) 21:13:12 ID:???
っていうか、mp3とか違法行為じゃないん?

810 :質問:2006/03/12(日) 21:16:47 ID:OTf6vXB0
>>809自分用ですから大丈夫と思います。

811 :nobodyさん:2006/03/12(日) 21:16:59 ID:???
>>809
自分でエンコしたものなら全然問題ないだろ

812 :nobodyさん:2006/03/12(日) 21:17:08 ID:???
>>795
色々悩むの面倒だから、漏れはこうしてる
ブラウザの戻るで戻ろうが、こっちの用意した戻るボタンを使おうが値が読み戻されるようにしたいなら、

if($ぽすと){$せっしょん=$ぽすと}
で、$せっしょん['なまえ']でうめこんでおけばいいんじゃね?
いろいろな場面で汎用性もたせたいなら、
$はんよう=$せっしょん
にしといて$はんよう['なまえ']にしといたほうが楽。

813 :nobodyさん:2006/03/12(日) 21:19:08 ID:???
>>808
下のディレクトリを辿っていく必要があるわけじゃなくて
1つ上のディレクトリだけやればいいだけのようだから
(そういう仕様が便利なのか知らないけど)
再帰はいらんと思う。

814 :nobodyさん:2006/03/12(日) 21:22:43 ID:???
>>801
関連してるのかわからないけど,POST使ったページに対してブラウザで「戻る」を選択すると
「データを再送信しますか?」って出るんだけど,これを防ぐ方法あるいはデフォルトで再送信にする設定とかないですか?

815 :質問:2006/03/12(日) 21:30:53 ID:???
>>813
その通りです。というか引数はちょっと苦手だから
一つ上のディレクトリまでだけの引数なしプログラム
を組もうと企んでいます。
しかしながら、それすらよく分からないていたらく。
本音を言うと、答えを教えてもらいたいです。

816 :nobodyさん:2006/03/12(日) 21:36:10 ID:???
>>814
どのRFCだったか忘れたが、POSTを使ったページをreloadした時には
confirm dialogを出さなければいけないという決まりがあった希ガス。

817 :nobodyさん:2006/03/12(日) 22:17:54 ID:???
相談に乗ってください
ttp://www.phpweb.jp/accelyzer/ をダウンロードして設置手順通りに設置

解析したいウェブページの、カウンターを表示したい場所に、次の文字列を記述します。コピペ推奨。
<?include("./accelyzer/store.php");?> ←index.phpに挿入
HTMLファイルの拡張子を「.php」に直します。
movableのテンプレート index.htmを index.phpに変更


さくらの鯖と独自ドメインを取得
http://homoaniki.com/ にアクセスすると
http://homoaniki.sakura.ne.jp/blog/index.phpに転送するように設定

ブログを見るとアクセス解析が反映されていません、何が問題だったのでしょうか教えてください

818 :nobodyさん:2006/03/12(日) 22:33:33 ID:???
>>815
提示されたソースを読んでないから何とも言えんが、
カレントディレクトリの処理が出来てるなら
>>807に示されてるのが、回答のひとつ

819 :nobodyさん:2006/03/12(日) 22:38:41 ID:???
>>817
<?include("./accelyzer/store.php");?>
パスは本当にこれで合ってるんだろうな

820 :nobodyさん:2006/03/13(月) 00:20:10 ID:???
>>795
IEとfirefoxでも動作が違うよね
IEだとformのselectedの状態に戻る。
firefoxでキャッシュが効く状態だとユーザが選択した状態を保持する
だったような気がする

821 :nobodyさん:2006/03/13(月) 00:54:53 ID:???
>>795
JavaScriptを使おう

822 :nobodyさん:2006/03/13(月) 01:45:02 ID:???
>>821
キャッシュさせないようにして$_POST全部配列ごと$_SESSIONにぶち込むのが最強かつ手軽じゃね?

823 :nobodyさん:2006/03/13(月) 02:03:55 ID:???
file_existでinclude pathの中身も検索させる方法ってありますか?

824 :nobodyさん:2006/03/13(月) 02:18:42 ID:???
get_include_path()かなんかで自前でやるしかないんじゃなかろうか

825 :nobodyさん:2006/03/13(月) 02:33:33 ID:???
$hoge['name'] = "値";//配列の一要素
$hage = "値";//普通の変数

function kansu(){
ここ
}


引数は使わずに、globals宣言も使わずに、function内の「ここ」って書いてある位置からグローバルスコープの中にいる「$hoge['name']」を参照したい時はどうしたらいいのでしょうか?
グローバルの普通の変数「$hage」を参照したい場合は「$GLOBALS['hage']」というのは解るんですが、添字付きの配列の場合はどうしたらよいのでしょうか?

826 :nobodyさん:2006/03/13(月) 03:01:14 ID:???
>>825
GGLOBALS['hoge']['name']

827 :826:2006/03/13(月) 03:02:06 ID:???
$GLOBALSの書き間違い

828 :nobodyさん:2006/03/13(月) 05:16:01 ID:???
>>821 携帯とかにも使うかもしれないから、なるべくJavaスクリプトに依存したくないのです。

>>822
俺もセッションを使うことを考えたけど、これがたとえば選択肢5個のラジオボタンが
計100個もあるようなフォームだったら、気が遠くなるコーディング作業になるわけで・・・。
もちろんループ文でHTMLを生成するように組むんだけど、複雑でややこしくなる・・・。
単にブラウザがキャッシュしてくれてりゃそれで簡単に済む話なのに、
どうしてあるサーバではそれが可能で、別のあるサーバではそれが不可能なんだぁ〜!!
両者のphp.iniの設定を見比べてもほとんど違いが無いように思えるし。。。

829 :nobodyさん:2006/03/13(月) 06:11:45 ID:???
>>828
php.iniの内容じゃなくて、HTTP上で実際にどういうデータ(特にヘッダ)が
やり取りされてるか調べる。

830 :nobodyさん:2006/03/13(月) 07:57:28 ID:???
>>828
ドコモしか知らないけど、キャッシュ効いててもリンクしたらフォームの内容は全部飛ぶ。

831 :nobodyさん:2006/03/13(月) 08:37:24 ID:???
>>829 すいません、それのデータはどうやって取得するのでしょうか??
    そういう環境変数(?)ってありましたっけ?
で、仮にそのデータを調べたとしても、それを修正するのはphp.iniの設定なのでは??
    見当違いのこと言ってたらごめんなさい。

>>830 「リンクしたら」??? すみません、ちょっと意味が分からない…

832 :nobodyさん:2006/03/13(月) 08:51:54 ID:???
centos4.2へphpcollab入れたんだけどフィールドへ日本語入力した際に
文字化けします。 直りますでしょうか。

833 :nobodyさん:2006/03/13(月) 08:59:02 ID:???
>>810
>>811
自分の曲?
そうじゃなきゃダメ。

834 :nobodyさん:2006/03/13(月) 09:00:26 ID:q2braTai
mail関数でメールを送信する際にmail関数の設定ミス等でメールを送信できない場合
処理が止まってしまうようなのでmail関数を実行する前にmail関数でメール送信できるか調べ
できない場合はエラーメッセージを出すようにしたいのですが、うまくいきません。
function_exists関数では設定ミスまでは調べてくれないようでした。
どうすればうまくいくでしょうか?


835 :nobodyさん:2006/03/13(月) 10:35:57 ID:???
>>833
別に他人の曲だろうと何だろうと、
ローカルでPHP動かしてリスト作るのは違法じゃないだろ。

836 :nobodyさん:2006/03/13(月) 10:51:13 ID:???
私はスーパーグローバル変数を初期化するために、何度も下のような
記述をしているのですが、かなり面倒です。
もっと簡単な方法があったらぜひ教えてください。

$_COOKIE['example'] = isset($_COOKIE['example']) ? $_COOKIE['example'] : NULL;

837 :nobodyさん:2006/03/13(月) 11:05:51 ID:nCSNQGQc
開発環境、テスト環境、本番環境などの運用方法のノウハウに詳しいサイトなどありましたら、お教え下さい。
チームで開発してて、本番環境がすでに稼働している状態で、
新機能を開発し、テストに上げ、システム管理者やユーザにメンテナンスを連絡し本番に適用する、
という流れを詳しく知りたいです。

838 :nobodyさん:2006/03/13(月) 11:07:59 ID:???
>>835
そうだよね

839 :nobodyさん:2006/03/13(月) 12:28:12 ID:???
>>836
スーパーウルトラグローバルエターナル変数を使えばいい。

840 :nobodyさん:2006/03/13(月) 12:31:56 ID:???
>>836
foreachで回すとかじゃダメ?

841 :nobodyさん:2006/03/13(月) 13:59:50 ID:???
HTTPのレスポンスヘッダってどうやって調べるの??

842 :nobodyさん:2006/03/13(月) 14:03:43 ID:???
>>836
if (isset($_COOKIE['example'])) $_COOKIE['example'] = $_COOKIE['example'];
if (isset($_COOKIE['hogehog'])) $_COOKIE['hogehog'] = $_COOKIE['hogehog'];
素直にこうするといいかも。
スペースで縦をそろえると結構ソース読みやすいし。

三項演算子は(〜?〜:〜);か(〜)?(〜):(〜);と括弧で括られてないと何故か不安な俺が居る。

843 :nobodyさん:2006/03/13(月) 14:33:50 ID:19XzlIjZ
フレームワークを使用していると
URLが、クエリの連なった形になります

?module=hoge&action=fuga&id=piyo

getで投げたい場合、
formタグのaction属性にこのようなURLを書いても、
うまく投げられません。
みなさんはどうやっていますか?

844 :nobodyさん:2006/03/13(月) 14:41:36 ID:???
>>843
method="get"

PHP5を使ってます。
正規表現で&(アンパサンド)をヒットさせたいのですが、
preg_match ("/\&/", $src, $match)や"/&&/"とやってもヒットしません。
どのようにすればヒットさせられますか?

845 :nobodyさん:2006/03/13(月) 14:49:29 ID:???
掲示板を作ってるのですが、コメントの文字数が多い場合に2chのように(省略)などとしたリンクを作成し、その記事へジャンプさせたいと思います。
というかここまではできたんですが、これとは別に、コメント中にURLがある場合に自動的にリンクになるようになっており、
省略のリンク部分が↑のリンクタグと重なるとおかしくなってしまいます。
これをウマーく回避したいのですが、どうしたらいいでしょう?
今はコメントの文字数が多い場合にstrip_tagsしてるんですがそれだとURLの自動リンクも無しになってしまうので困ってます。

846 :nobodyさん:2006/03/13(月) 14:55:59 ID:???
>>845
省略を先にやってそれから自動リンクを判断するとかはダメか?

847 :nobodyさん:2006/03/13(月) 14:58:49 ID:???
>>844ですが、$srcのデータを間違えてました。
&の部分が打ち間違えで$になってました…

>846に同じく、
strip_tagsを先にやって、その後自動リンクを張るのはどう?
もしくはstrip_tagsで<a>タグを有効にするとか。

848 :845:2006/03/13(月) 15:04:44 ID:???
>>846-847
省略を先にやったら出来ました、ありがとうございます。
これを数時間も悩んでいたとはorz

849 :nobodyさん:2006/03/13(月) 15:08:59 ID:???
>>848
いやいや、俺も打ち間違えで1時間半は時間つぶしてたから気にすんな。
かなりぐぐったけど全然情報出てこないで新手のバグ?なんて無駄な詮索してしまったよ。

850 :nobodyさん:2006/03/13(月) 15:12:20 ID:uoSdweNm
あるページ(もしくは画像)を開いて、簡単にHTTPヘッダやソースを取得するにはどうしたら良いでしょうか。

851 :nobodyさん:2006/03/13(月) 15:37:20 ID:???
多分PEARとか言うのがいいんじゃないかな。

852 :nobodyさん:2006/03/13(月) 16:14:48 ID:???
>>842
それ意味ないよ
やりたいのは
if (!isset($_COOKIE['example'])) $_COOKIE['example'] = NULL;
と未定義変数を定義したいのだと思う

853 :nobodyさん:2006/03/13(月) 17:19:30 ID:???
PHPでJSP/ServletのServletContext(スコープ:application)のようなもの
を使いたいんですが、PHPで同じ感じのやつありませんか?

854 :nobodyさん:2006/03/13(月) 17:32:53 ID:???
>>850
ttp://www.heeha.ws/index.php?Firefox%B4%D8%B7%B8
この辺でいいんじゃね

他にも方法いっぱいあるだろうけど

855 :nobodyさん:2006/03/13(月) 17:38:45 ID:???
あとheaderの操作はphpで出来るよ
マニュアルでheaderって検索してみれ

856 :nobodyさん:2006/03/13(月) 17:42:31 ID:???
>>854-855
ありがとうございます。
でも、PHPで取得して出力させるにはどうしたら良いのでしょうか。

857 :nobodyさん:2006/03/13(月) 17:47:19 ID:???
>>801,>>855
あたりで解決だし、ちょっと調べれば分かるはずだけど・・
検索しなって・・

858 :質問:2006/03/13(月) 18:02:01 ID:???
いろいろと試行錯誤してなんとか成功しました。
みなさんのヒントは、寸分の狂い無く私の脳を活性化させ
見事プログラミングの成功という偉業を達成させて下さいました。
初めてプログラムを組んだのですが、成功したときは涙がちょちょぎれました。
本当にありがとうございました。

                                みつを


859 :nobodyさん:2006/03/13(月) 19:14:57 ID:???
皮先ウザイ

860 :nobodyさん:2006/03/13(月) 20:08:04 ID:???
スレが違うよ

861 :nobodyさん:2006/03/13(月) 22:25:52 ID:???
>>574.802.804.805.806.810.815.858
限りなく皮先のにほいがする。
巣に帰れ!

862 :nobodyさん:2006/03/13(月) 22:48:02 ID:???
>>861
おまいさんは2chブラウザを知らんにほいがする
出来たらこう書いてくれ!
>>574,802,804

863 :861:2006/03/13(月) 23:00:17 ID:???
>>862
スマソ
悪気はなかった
吊ってくるわ

864 :nobodyさん:2006/03/13(月) 23:08:08 ID:???
>>856
いい加減うざい。
自分で調べる癖つけような、な。

865 :nobodyさん:2006/03/13(月) 23:39:46 ID:???
>>862
自分の使ってる2chブラウザは普通にリンクになってるが?


866 :nobodyさん:2006/03/13(月) 23:48:41 ID:???
当然、このスレの常連ならみんなp2使っているよね?

867 :nobodyさん:2006/03/13(月) 23:55:59 ID:???
rep2では>>861のアンカーは認識されず。

868 :nobodyさん:2006/03/14(火) 00:09:21 ID:???
JaneDOEでも認識されてないぽ

869 :nobodyさん:2006/03/14(火) 00:19:23 ID:???
>>867
それくらい自分で改造汁

870 :nobodyさん:2006/03/14(火) 00:38:33 ID:???
前に話題になってたけどstr_split使えない環境だったら
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
があるみたいだね。やっぱマニュアル天才。

871 :nobodyさん:2006/03/14(火) 01:27:19 ID:???
何を今更…

872 :nobodyさん:2006/03/14(火) 11:40:24 ID:???
フォームでの画面遷移時に「戻る」ボタンで戻ったときの
値の保持についていろいろググってみたけど、
まだ誰も根本的な解決策や原因が見つかってないみたいだね。

フォームなんてごくごく一般的に誰もが使うのに、意外な結果だ。

873 :nobodyさん:2006/03/14(火) 12:33:52 ID:???
>>870
マルチバイトだとそれもつかえない。
おれはmb_substr()を回してやってる。

874 :nobodyさん:2006/03/14(火) 13:40:27 ID:???
> 原因が見つかってない
?????

875 :nobodyさん:2006/03/14(火) 13:45:29 ID:???
バカはほっとけ

876 :nobodyさん:2006/03/14(火) 13:49:38 ID:???
PHPとはあんまし関係ないんだけどさ
PHP本家からダウンロードできる.chmのヘルプって壊れてる?
何回やってもページを表示できませんってでてしまう

877 :836:2006/03/14(火) 13:52:31 ID:???
>>839(?)
>>840
>>842
>>852
返事が遅くなってすみません。
いろいろなアイディアを教えていただいて、参考になりました。使ってみて
一番入力が楽なヤツを試してみます。
ご回答ありがとうございました。

878 :nobodyさん:2006/03/14(火) 14:15:15 ID:???
function getSGlobal ($gname, $name) {
return (isset ($$gname[$name]))?($$gname[$name]):(NULL);
}

$_COOKIE['example'] = getSGlobal ('_COOKIE', 'example');
という方法もある。

俺も凄い気になったんだよな、もう少し楽にスーパーグローバル取得できないか。
そんで前スレかどっかで、Cのマクロ関数みたいな事ってできませんか?みたいな事聞いたら、
関数でやれって返ってきた。

879 :nobodyさん:2006/03/14(火) 14:15:25 ID:???
>>876
キーワードが文字化けしてるが壊れてはいない

880 :nobodyさん:2006/03/14(火) 14:30:02 ID:???
>>878ってできないんだな
ttp://php.s3.to/man/language.variables.variable.html

881 :nobodyさん:2006/03/14(火) 14:31:41 ID:???
>>877
こんな感じになった。
<?php
// デバッグ用
// エラーは全て表示する
error_reporting(E_ALL);
function getSGlobal (&$gname, $name) {
return (isset ($gname[$name]))?($gname[$name]):(NULL);
}
$hogehoge = getSGlobal($_GET, "hogehoge");
echo $hogehoge;
?>

882 :nobodyさん:2006/03/14(火) 14:45:52 ID:???
三項演算子 (〜?〜:〜);

ほんと便利だよね。


883 :nobodyさん:2006/03/14(火) 15:06:54 ID:???
IDとパスワードでログインする仕組みをセッションを使って作ったのですが、
ログイン後しばらく放置しておいてからアクセス(更新など)すると、ログアウトされてしまいます。

これは放置時間が一定以上続いた場合にセッション情報が破棄されているのだろうと思いますが、
このセッション破棄までの時間は、php.iniのどこをいじればいいのでしょうか?
「session.cache_expire」が関係あるのかとも思いましたが、デフォルトの「180」のままなのに、
180分も経たないうちに(具体的には10分くらいで)ログアウトになってしまいます。

884 :nobodyさん:2006/03/14(火) 15:12:29 ID:???
>>882
俺への何かのあてつけかと一瞬勘ぐった。

885 :882:2006/03/14(火) 15:14:33 ID:???
>>884
あてつけのつもりはないから安心汁

886 :nobodyさん:2006/03/14(火) 15:14:58 ID:???
>>883
http://php.s3.to/man/ref.session.html
session.gc_maxlifetime integer

887 :nobodyさん:2006/03/14(火) 15:17:49 ID:???
>>885
ってか三項演算子って言葉って知ってて当然なんかな?
(〜?〜:〜);と全部記号だから検索でヒットさせられるのが無くて困る。
Cだと#defineと併用して使うからマクロ関数とかばっかり出てくるし。

888 :nobodyさん:2006/03/14(火) 15:24:55 ID:???
>>887
三点演算子だと思い込んでいて検索でかからなくて困ってたことが・・・。

http://www.sra.co.jp/people/t-ishii/php_new/php4_new.html

第一部 PHPをはじめよう(3360KB)

だけでもいいから読んどいた方がいいよ。


889 :nobodyさん:2006/03/14(火) 15:25:36 ID:???
>>887
マニュアルをじっくり読めば書いてある


890 :888:2006/03/14(火) 15:26:55 ID:???
「ふざけんな、そんな初心者向けの本なんて読むかbk」と言われそうだから追記
ざっとでいいから、眺めれば「三項演算子」という言葉ぐらいは分かるって意味ね。


891 :nobodyさん:2006/03/14(火) 15:27:21 ID:???
>>886
あいたしゅ。

892 :nobodyさん:2006/03/14(火) 15:48:49 ID:???
sessionスタートさせて(セッション用プログラムをrequire)、
セッション値を参考にしてダウンロード場所を選択して
ファイルをダウンロードする仕組みを作ってるんですが、
どうもセッション用プログラムをrequireすると
上手くダウンロードログが表示されません。

セッション用プログラムをコメントアウトすると機能するので、
おそらくヘッダー関係あたりの問題かなと思うのですが、
何か良い解決方法は無いでしょうか。


893 :nobodyさん:2006/03/14(火) 16:36:12 ID:???
日本語おk

894 :877:2006/03/14(火) 17:02:51 ID:???
>>878
>>881
更なるアイディアありがとうございます。
教えていただいた方法を試してみた結果、881に紹介していただいた
方法を自分好みにして、以下のようなコードで記述することにしま
した。

function getSGlobal (&$gname, $name) {
$gname[$name] = isset($gname[$name]) ? $gname[$name] : NULL;
}
getSGlobal($_GET, "hogehoge");
echo $_GET["hogehoge"];

これなら、入力が楽です。本当にありがとうございました。

895 :nobodyさん:2006/03/14(火) 17:06:30 ID:???
〜です。本当にありがとうございました。

896 :nobodyさん:2006/03/14(火) 18:36:34 ID:???
>>892
まず問題点を整理し、そして質問する前に国語の勉強から・・・

897 :nobodyさん:2006/03/14(火) 18:49:44 ID:???
配列を foreach で回すときの
順番って設定した順番になりますが
これは保証されてるのでしょうか?



898 :nobodyさん:2006/03/14(火) 19:01:58 ID:???
>>897
されてるはず。

899 :nobodyさん:2006/03/14(火) 19:05:12 ID:???
>>897
されてる。

900 :nobodyさん:2006/03/14(火) 19:13:33 ID:???
>>899
して

901 :nobodyさん:2006/03/14(火) 19:57:29 ID:???
されてるっけ?
不安になってきた

902 :nobodyさん:2006/03/14(火) 20:45:04 ID:???
>>897
保証はされていないが、設定した順番になる。

903 :nobodyさん:2006/03/14(火) 20:50:40 ID:???
>>901
foreachで取り出される順番はリンクリストに従ってるので
「設定した順番」つうのが通常のpushしていくやりかたなら
保証されてると考えていい。明確に保証するとは書いてなかったと思うけど。

904 :nobodyさん:2006/03/14(火) 21:33:46 ID:???
それが保障されてなかったらasort()なんて意味なくなるだろ。
PHPでの連想配列は格納順番を内部に保持していてその通りに取り出せる。

905 :nobodyさん:2006/03/14(火) 22:01:08 ID:???
>>892
ソースコードを出すのが手っ取り早い。

906 :897:2006/03/14(火) 23:17:06 ID:???
>>898-904
みなさんありがとうございました
安心して回します


907 :nobodyさん:2006/03/15(水) 00:27:49 ID:???
>>906
っていうかこんなとこで聞いてるヒマがあったら、
自分で実験して確かめてみりゃあいいのに。。。
ループでecho使えば分かる話だろ。

908 :nobodyさん:2006/03/15(水) 00:34:04 ID:???
>>907
それ、偶然動いてるのか環境依存なのか言語仕様なのか、動きを見ただけでお前は分かるのか?

909 :nobodyさん:2006/03/15(水) 02:02:25 ID:???
>>908
>907じゃないが、俺なら数十回は試すな。
知的探究心ってのは止められないね。
その中で出てきた結果から憶測を何度も繰り返す。
再度何度も試し憶測どおりだったら頭の中に入れとく。

ところでPHPで、OSが違うと処理が変わる事ってあるん?
機会に便乗して質問してみる。

910 :nobodyさん:2006/03/15(水) 02:19:33 ID:???
>>909
数十回試して同じ結果ならそれが正しいと?

911 :nobodyさん:2006/03/15(水) 02:27:00 ID:???
>>910
正しいって言ってるか?好奇心の話だろ?

>>909
そんな話は聞いたこと無いな。インストールはまったく違うけど


912 :nobodyさん:2006/03/15(水) 02:33:21 ID:???
マルチバイト関数はwinでのバグなのか挙動が違うって話はあったような・・

なんか話がずれてる人同士が言い合ってて不毛そうなのでやめたら?

913 :nobodyさん:2006/03/15(水) 02:36:17 ID:???
>>907
むしろお前が暇人

914 :nobodyさん:2006/03/15(水) 03:14:22 ID:???
>>913
このスレでそれは禁句(爆)

915 :nobodyさん:2006/03/15(水) 04:09:05 ID:???
>>908
2〜3回試せば十分。ヲタは何事も粘着質でキモイな。

>>913
なんで? 5分もあれば出来ることだろ。

916 :nobodyさん:2006/03/15(水) 04:34:09 ID:A2wD7hwK
質問です。
print関数の出力先を変える関数、方法をおしえてください。

917 :nobodyさん:2006/03/15(水) 05:10:12 ID:???
>>915
危険なプログラマハケーン
そんなハンパな知識でWebアプリ組むなよ

918 :nobodyさん:2006/03/15(水) 05:11:37 ID:???
>>916
ob_start()、ob_get_contents()

919 :nobodyさん:2006/03/15(水) 05:11:44 ID:???
>>916
どこに変えたいの?

920 :nobodyさん:2006/03/15(水) 05:13:11 ID:???
>>917
お前みたいなヤツは長生きしそうだな。

921 :nobodyさん:2006/03/15(水) 05:16:13 ID:???
ヲタ同士喧嘩してないで、一緒に秋葉原でピザでも食ってろデブ。

はい、次の質問どうぞ。

922 :nobodyさん:2006/03/15(水) 05:20:12 ID:???
アルテマウエポンはどこで手に入りますか

923 :nobodyさん:2006/03/15(水) 05:35:22 ID:???
>>922
まずジュノン近くの湖へ行きましょう。
ボスが居ます。
戦闘終了後(まだ倒してない)ぶアルテマウェポンがどっか飛んでくのでぶつかって何度も倒しましょう。
今度は直線に飛び始めるので、止まったら再度戦闘を仕掛けて倒しましょう。
アルテマウェポンがコスモキャニオンか古の森で止まったら最後です。
おめでとうございます、アルテマウェポンをゲットします。

924 :nobodyさん:2006/03/15(水) 05:36:19 ID:???
ありがとうございます。これで悔いはありません。

925 :nobodyさん:2006/03/15(水) 07:18:48 ID:???
>>922
まずおもちゃの銃を手に入れろ
少年が倉庫へ行くためのカードキーの場所まで連れて行ってくれるところでカードキーを落とす敵の奥で手に入る
8章以降でおもちゃの銃をアルテマウェポンにチューンできる。20万ギルほど必要

926 :nobodyさん:2006/03/15(水) 08:44:03 ID:???
今からここはFF専用下らねぇ質問スレになります

927 :nobodyさん:2006/03/15(水) 09:12:36 ID:???
>>922
まず、となり

928 :nobodyさん:2006/03/15(水) 09:17:17 ID:???
>>907
ソース見た方がはやい

929 :nobodyさん:2006/03/15(水) 09:58:51 ID:???
>>915
2〜3回くらいならPerlの連想配列ですら格納順でループしちゃう可能性があるけどなw

930 :nobodyさん:2006/03/15(水) 10:14:44 ID:???
>>909
配列みたいな基本部分では多分変わんないと思うけど、
システムコールを呼んでる部分では微妙に違うとこあるね。
そういう中身を想像できる人ならあまり気にならないんじゃない?

931 :nobodyさん:2006/03/15(水) 10:18:36 ID:???
>>912
そういや、4.4.1でallow_url_fopenがバグったのはWin版だけだったね。

932 :質問:2006/03/15(水) 10:38:37 ID:48VnBYob
"/head.bin"と、"/data/body.bin"というファイルを、
"/data/hoge.bin"として結合する方法を教えてください。
それぞれのファイル内容をfread()で$headと$bodyに読み込んで、

$ToFile = fopen("/data/hoge.bin","wb");
fwrite($head.$body,$ToFile);
のようにしてみたのですが、
エラーが出て、"/data/hoge.bin"のファイルが、サイズが0の状態で出力されます。
この方法は正しくないのでしょうか?
御教示お願い致します。
エラーメッセージの内容は、今家にいないので、帰ってきてから書きます。

933 :nobodyさん:2006/03/15(水) 10:50:35 ID:???
fwrite($ToFile,$head.$body);
では。

そもそも連結しなくたって、
fwrite($ToFile,$head);
fwrite($ToFile,$body);
2回書けばいいだけでは。

934 :932:2006/03/15(水) 11:11:38 ID:F5a3ZDp1
>>933
> fwrite($ToFile,$head.$body);
> では。
そうでした。携帯からだったので書き写し間違えてました。PCのほうは正しく書いてます。

2回書けばいいんですか。帰ったら試してみます。

935 :nobodyさん:2006/03/15(水) 11:29:41 ID:???
すいません。スクリプトの最初と最後でmicrotimeでスタンプ取得して、
その差を求めてベンチ取ってるんですが、
なぜかときどき結果がマイナスになってしまうことがあります。
なぜなんでしょう??? ありえないですよね・・・

936 :nobodyさん:2006/03/15(水) 11:45:42 ID:???
>>935
すごい速いとか

937 :nobodyさん:2006/03/15(水) 11:48:18 ID:???
光の速度を超えちゃったんだね

938 :nobodyさん:2006/03/15(水) 11:53:25 ID:???
>>935
時刻あわせかな?

939 :nobodyさん:2006/03/15(水) 11:54:21 ID:???
プログラムミスだと思うよ。

940 :nobodyさん:2006/03/15(水) 12:06:52 ID:???
>>935
ちゃんとスペースで分割してる?

941 :nobodyさん:2006/03/15(水) 12:14:33 ID:???
>>935
ソース出せ

942 :nobodyさん:2006/03/15(水) 13:06:22 ID:???
つーかマニュアルにあるな。
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}

943 :nobodyさん:2006/03/15(水) 13:16:44 ID:???
>>940 スペースで分割・・・???

>>941
$start_time = microtime(); //スクリプトの先頭に置く
$end_time = microtime(); //ここから下はスクリプトの末尾に置く
$exe_time = $end_time - $start_time;
echo $exe_time;

944 :nobodyさん:2006/03/15(水) 13:29:54 ID:???
>>943
まづ下の結果をよく見て来い。話はそれからだ。
echo microtime();

945 :nobodyさん:2006/03/15(水) 13:46:48 ID:???
phpのfloatって倍精度保証?

946 :nobodyさん:2006/03/15(水) 13:52:38 ID:???
>>945
標準はdouble精度

てか、また保証話かよ

947 :nobodyさん:2006/03/15(水) 13:54:06 ID:???
実際にmicrotimeでベンチ取っても、結果にはかなりのバラつきあるよね。
10回や20回数値を取った程度じゃ、偏りのある結果を得られないかもしれない。
ましてや共有鯖みたいな環境だったら、他に影響される部分が多すぎて、
自分のスクリプトの真のベンチが取れないね。
はて、どうしたもんやら。
ローカルでベンチ・スクリプト以外は極力動かさないようにしてやるしかないか??

948 :nobodyさん:2006/03/15(水) 13:55:06 ID:???
そこでPEARですよ。

949 :nobodyさん:2006/03/15(水) 13:57:47 ID:???
>>947
共有鯖でベンチとろうってお前の姿勢が気に食わない

950 :nobodyさん:2006/03/15(水) 14:00:10 ID:???
>>947
共有鯖でベンチテストなんてやらないでね

951 :nobodyさん:2006/03/15(水) 14:04:40 ID:???
>>947
100万回ループさせて割り算しろよ。

952 :nobodyさん:2006/03/15(水) 14:07:56 ID:???
>>949>>950>>951
ベンチって言っても、いわゆる何万回も意味のないループを
繰り返したりするような類のベンチじゃないっつーの。
キモヲタと一緒にするなっての。

ふだん運用してる自作のスクリプトの実行時間を知りたいだけ。

953 :nobodyさん:2006/03/15(水) 14:08:45 ID:???
>>947
頼むから俺様がピーコちゃんを飼ってるサバの住人じゃありませんように

954 :nobodyさん:2006/03/15(水) 14:10:37 ID:???
>>953
カエレ

955 :nobodyさん:2006/03/15(水) 14:14:57 ID:???
>>952
情報小出しにしてなに優越感に浸ってるんだ?

956 :nobodyさん:2006/03/15(水) 14:16:22 ID:???
>>952
きんもーっ☆

957 :nobodyさん:2006/03/15(水) 14:19:20 ID:???
>>955
ハァ?? 何が小出しなんだ??? バカかお前?
これ以上何を知りたいってんだ?

>>956
キモいよお前wwwwwwwwwwwwwwwwwwwwwwwwwww

958 :nobodyさん:2006/03/15(水) 14:23:45 ID:???
>>957
お前の全てを知りたい。
まずその穴をこっちに向けてくれ…。

959 :nobodyさん:2006/03/15(水) 14:23:58 ID:???
>10回や20回数値を取った程度じゃ、偏りのある結果を得られないかもしれない。
>ましてや共有鯖みたいな環境だったら、他に影響される部分が多すぎて、
>自分のスクリプトの真のベンチが取れないね。
>はて、どうしたもんやら。

100万回とって平均値とれや

>ベンチって言っても、いわゆる何万回も意味のないループを
>繰り返したりするような類のベンチじゃないっつーの。

そんなの後出しされても知るか。

960 :nobodyさん:2006/03/15(水) 14:25:01 ID:???
>>959
小出しも後出しも駄目だ。外へ出してくれ。

961 :nobodyさん:2006/03/15(水) 14:37:04 ID:???
>ふだん運用してる自作のスクリプトの実行時間を知りたいだけ。

これがキモヲタらしくてよい。

962 :nobodyさん:2006/03/15(水) 14:43:22 ID:???
>>952
それをベンチと呼ぶ君の無知っぷりがかわいい

963 :nobodyさん:2006/03/15(水) 14:45:13 ID:???
>>943
それは小数点以下の部分だけで差分を出してる。
当然、タイミングによってはマイナスになるし、1秒以上の実行時間は算出できない。

964 :nobodyさん:2006/03/15(水) 15:12:10 ID:???
>>963
え、単純に引き算しているだけで、小数点以下の部分の差分になるの?


965 :nobodyさん:2006/03/15(水) 15:15:36 ID:???
はい、共用鯖での実験ももちろんokですよ
うるさい御老人の事は気にせずなんでもどうぞ^^

966 :nobodyさん:2006/03/15(水) 15:17:55 ID:???
>>964
そこがphpの怖いところなんだな
文字列を算術演算で使うと数値として評価できる部分までがその数値になる
この場合は' 'より前の部分だけ

>>965
カエレ

967 :nobodyさん:2006/03/15(水) 15:21:11 ID:???
>>964
microtimeは
"小数部"スペース"整数部"
の文字列
そのまま引き算するとスペース以降の部分は無視され小数部のみの引き算になる

968 :964:2006/03/15(水) 15:26:35 ID:???
>>966-967
なるほど。
試しに、print microtime(); をやってみたら、
「0.90277600 1142403902」みたいになってた。

phpの演算って面白いね。
普通の言語だと余計なものが入っている状態で減算したら
エラーになる気がする・・・。


969 :967:2006/03/15(水) 15:27:05 ID:???
マニュアル見直したらPHP5から
microtime(true); //floatを返します。
が使えるんだ


970 :nobodyさん:2006/03/15(水) 15:27:30 ID:???
的確なアドバイスの>>942>>944は無視して話が進んでいるな

971 :nobodyさん:2006/03/15(水) 15:30:10 ID:???
>>942 のコードの、型宣言floatは必要なの?

function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return $usec + $sec;
}

これで同じ結果になると思うけど。


972 :971:2006/03/15(水) 15:34:21 ID:???
あ、精度を落としているんだね。
失礼しました。
http://jp.php.net/manual/ja/language.types.float.php

973 :971:2006/03/15(水) 15:38:02 ID:???
あ、でも実験したら同じ結果になった。
宣言しない場合は、float型として加算されるのかな。



974 :nobodyさん:2006/03/15(水) 15:39:06 ID:???
>>971
宣言は不要
何を勘違いしてるか知らんがどっちも同じだけ精度は失われてる

975 :nobodyさん:2006/03/15(水) 15:40:56 ID:???
>>944が可愛そうだ。
むしろ可愛い

976 :nobodyさん:2006/03/15(水) 16:02:04 ID:???
精度を気にするなら$secと$usecは足してしまう前に減算した方がいいんじゃないのか?
$secがかなりでかい数字なので、それに$usecを足した時点でかなりの精度が失われてる。
それはfloatだろうとdoubleだろうと避けられないかと。
先に$sec同士、$usec同士で減算を済ませてから最後に足せばかなり精度を維持できると思う。

977 :nobodyさん:2006/03/15(水) 16:03:53 ID:???
>>976
君は正しい

978 :nobodyさん:2006/03/15(水) 16:09:07 ID:???
>>976
> 精度を気にするなら$secと$usecは足してしまう前に減算した方がいいんじゃないのか?
> $secがかなりでかい数字なので、それに$usecを足した時点でかなりの精度が失われてる。
正しい。
君は賢いね。

> それはfloatだろうとdoubleだろうと避けられないかと。
phpにおいては、float と double は全く同じものじゃないだろうか。
http://jp.php.net/manual/ja/language.types.float.php

> 先に$sec同士、$usec同士で減算を済ませてから最後に足せばかなり精度を維持できると思う。
だね。
普通はそれで十分。

まぁ、更に精度を気にするなら、GMP関数を使うべきだと思う。
ただ、モジュールだからレンタル鯖な人は使えねーかもな。
http://jp.php.net/manual/ja/ref.gmp.php

979 :nobodyさん:2006/03/15(水) 16:16:40 ID:???
>>978
>まぁ、更に精度を気にするなら、GMP関数を使うべきだと思う。

お前はわかってない

980 :nobodyさん:2006/03/15(水) 16:18:09 ID:???
奴がミリ秒以下の精度を気にしなければいけないようなシステムを作っているとも思えんが

981 :nobodyさん:2006/03/15(水) 16:21:30 ID:???
>>971
丁寧にキャストしてるのはマニュアルの親切心かなと思った。
この場合は明示しなくてもfloatとして加算される。

> list($usec, $sec) = explode(" ", microtime());

ここで var_dump($usec, $sec) 取ってみたりとか
マニュアル読みながらいろいろ試したりすると、疑問が解消すると思うよ。
http://jp.php.net/manual/ja/language.types.type-juggling.php

で。

>>ALL
引っ張ってごめんなさい。

982 :nobodyさん:2006/03/15(水) 17:20:10 ID:???
// ●実行開始時刻の取得(スクリプトの最初に書く)
$startTime = microtime();


// ●実行時間の取得(スクリプトの最後に書く)
list($startUsec, $startSec) = explode(" ", $startTime);
list($stopUsec, $stopSec) = explode(" ", microtime());
$secure_execSec = ($stopSec + $stopUsec) - ($startSec + $startUsec);

print $secure_execSec;


983 :nobodyさん:2006/03/15(水) 17:32:17 ID:???
いや先に引くっつー話じゃなかったのか

984 :nobodyさん:2006/03/15(水) 17:50:46 ID:???
>>982
先にSecとUsec足しちゃうと精度が著しく落ちるだろが

985 :nobodyさん:2006/03/15(水) 17:59:46 ID:???
うにゃ

// $secure_execSec = ($stopSec + $stopUsec) - ($startSec + $startUsec);
$secure_execSec = ($stopSec - $startSec) + ($stopUsec - $startUsec);

986 :nobodyさん:2006/03/15(水) 18:16:24 ID:???
>>983-985
$secure_execSec = ($stopSec + $stopUsec) - ($startSec + $startUsec); だと、
Load Time: 0.13795495033264 sec.

$secure_execSec = ($stopSec - $startSec) + ($stopUsec - $startUsec); だと、
Load Time: 0.137955 sec.

になった。


予想の反対の結果だね。
精度が落ちる計算(前者)の方が、表示される桁数が多くなり、
精度が前者に比べ落ちない計算(後者)の方が、表示される桁数が少なくなる。


つまり、精度の低い数字がずらずらと表示されるわけだな。(前者の計算だと)

987 :nobodyさん:2006/03/15(水) 18:29:38 ID:???
>>986
SecとUsecを足した時点で有効桁数が変換が入るので、
その時点で10進変換では割り切れない数字になってる可能性が高い。

988 :nobodyさん:2006/03/15(水) 18:31:23 ID:???
>>986
試しに計算前の文字列状態のmicrotime()の戻り値も表示させてみれば?

989 :nobodyさん:2006/03/15(水) 18:45:18 ID:???
usecは有効少数以下6桁じゃないのかね
俺のサーバは8桁表示されるが、7-8はいつもゼロ

990 :nobodyさん:2006/03/15(水) 18:46:42 ID:GW/RIGqH
質問です
変数$aに全角ひらがな、もしくは全角カタカナが含まれるか否かを判別するにはどうすれば良いのでしょうか?

991 :nobodyさん:2006/03/15(水) 18:48:44 ID:???
↓いやらしい声

992 :nobodyさん:2006/03/15(水) 19:01:13 ID:???
開発やアプリには直接は関係しないベンチの話になったら
急にイキイキと書き込みが激しくなった点についてwwwwwwww

やっぱヲタは分かりやすくていいなぁ。

993 :nobodyさん:2006/03/15(水) 19:07:05 ID:???
992=986=978だな

994 :nobodyさん:2006/03/15(水) 19:09:43 ID:???
PHPの勉強を始めようと思うのですが、
オススメの書籍はなんでしょうか?

995 :nobodyさん:2006/03/15(水) 19:12:50 ID:???
>>993
大外れ乙wwwwwwwwwwwww

しかしあと数回の書き込みで1000ゲトなのに、
誰もそれに気づかない(?)ほど熱中してベンチの話に
なってんのが面白いww

996 :nobodyさん:2006/03/15(水) 19:14:41 ID:WV793DnE
質問です。
現在、テキストボックスに入力されたデータを別ページで表示させるものを作っています。(簡単に言えばメンバー表のようなもの)
今はまだ書き込み処理等、ログファイルへの書き込みは行っておらず、たんに入力されたものを出力するようにしています。
表示させるところまではうまくいったのですが、現在メールの入力欄に文字が入力されていたら自動で名前にリンク、入ってなかったら名前のみ表示。
と言うようにしようと思っているのですが、思うようにうまくいきません。
<? if ("{$_POST['mail']}" !== "") {
echo "{$_POST['name']}";
} else {
echo "<A href=\"mailto:{$_POST['mail']}\">{$_POST['name']}</a>"; } ?>
というようにしてみたのですが条件の部分のせいでエラーがでてしまいます。
条件の設定法がうまくわからないのですが教えてください。
条件としては「{$_POST['mail']}に文字がはいっていなかったら」です。

997 :nobodyさん:2006/03/15(水) 19:19:46 ID:???
誰か>>990の質問に答えてやれよ…。

↓いやらしい声

998 :nobodyさん:2006/03/15(水) 19:22:10 ID:???
埋めるか

999 :nobodyさん:2006/03/15(水) 19:23:39 ID:yiOrS10N
次スレ立てました。不備があったらごめん。

【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/

1000 :nobodyさん:2006/03/15(水) 19:24:58 ID:???
<? if (${_POST['mail']} == "") {

1行目を上記のように直す。

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

247 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)