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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2006/02/24(金) 22:05:48ID: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
0002nobodyさん2006/02/24(金) 22:06:36ID: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/
0003nobodyさん2006/02/24(金) 22:30:08ID:???
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するのは楽だと思いますけど。


一応追加・・・?
0004nobodyさん2006/02/24(金) 22:53:42ID:???
和露太ww
0005nobodyさん2006/02/24(金) 23:44:51ID:???
毎週木曜日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/
0006nobodyさん2006/02/25(土) 01:31:08ID:???
はてなブックマークのような「タグ」機能をつけたものを作りたいと思っています。
一つのレコードに対して、ユーザーが定義したキーワードのタグを複数割り当てることが出来るものです。
さらに、そのタグが削除されれば、全部のレコードからそのタグのみ削除されたり、
タグごとにいくつのレコードにそのタグが割り当てられているか集計出来たり、
タグによる絞り込みや、新規レコード登録の際にすでに定義されたタグ
(そのタグをもったレコードが存在するという事)を動的に読み出して、
入力の選択肢として再利用するような感じです。

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

環境はPHP4.3.1、MySQL 3.23.58です。(本番用のレンタル鯖)
0007nobodyさん2006/02/25(土) 01:34:44ID:RijzHz3L
>>6
趣味でやってるなら背伸びのしすぎ
仕事でやってるなら金払え
0008nobodyさん2006/02/25(土) 01:55:40ID:???
>>7
一応仕事でやっております。
ユーザー(データを登録する人)がタグを自由に追加出来るってのがくせ者でして、シンプルに考えれば好き放題カラムを増やすのもありなんですが、テーブルをいじくるクエリ発行しまくりで禿げしく面倒な悪寒。
やっぱり配列でごにょごにょですかね?
なお、この案件は要望としてこういう機能が出てる訳でなく、納期もあるし、お金も出してくれそうなので、勉強をかねていっちょがんばってくれや、といわれたので張り切ってるのですが、もう構想だけで半月もたってしまいますた。
0009nobodyさん2006/02/25(土) 01:58:22ID:???
前スレを見て気になったので質問します。

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

ということですが、どの関数をつかってZIPファイルを生成すれば良いか教えてください。
0010nobodyさん2006/02/25(土) 02:20:03ID:???
前スレからのバグ報告

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
0011nobodyさん2006/02/25(土) 04:43:33ID:???
>>9
addfile()の模様
0012nobodyさん2006/02/25(土) 05:37:02ID:???
>>5
なんだよ、この新テンプレは
0013nobodyさん2006/02/25(土) 08:08:57ID:???
>>9
クラスなので関数は使わない、使うのはメソッド。話の流れを読めば判ると思うんだが
zip.lib.phpは、phpMyAdminのパッケージ中に含まれるクラスライブラリのファイル
(phpMyAdmin専用ということはないので、他のアプリケーションでも含まれることあり)

そんなに大きなファイルでもないし、懇切丁寧な説明があるわけでもないので
まずは入手してどんなメソッドがあるのか、パラメータは何か、その辺はソースを参照。
(でもライセンスが何なのか、俺も良く知らないんだけど)
0014nobodyさん2006/02/25(土) 08:38:43ID:???
>>9
gzcompress()かgzencode()使えばいいだけだろ
0015nobodyさん2006/02/25(土) 09:42:53ID:???
>>8
クダ質の範囲じゃないだろ。
スレたてるか、ふさわしいスレさがせ。てか、仕事でやるならくんなよ。
せめて、自分で考えた範囲とかを公開して意見求めるならわかるが
2chに丸投げすんな
0016nobodyさん2006/02/25(土) 09:47:11ID:???
>>14
その両方ともZIP形式とは似て非なるもの。
0017nobodyさん2006/02/25(土) 10:50:23ID:???
>>6
タグとレコードのIDの組み合わせを持つテーブルを作ればいいんでないの?
PHPっつーよりDBのスキーマ設計じゃん。スレ違いな感じ。
0018nobodyさん2006/02/25(土) 16:56:40ID:???
>>15
>スレたてるか、ふさわしいスレさがせ。てか、仕事でやるならくんなよ。
こんなんでいちいちスレ立てるんですか?
>せめて、自分で考えた範囲とかを公開して意見求めるならわかるが
>2chに丸投げすんな
だから、自分で考えた範囲は、>>6に。
丸投げじゃなくて、DBをどう構成するか、って部分を聞きたかったんですよ。

>>17
たしかにスレ違いというより板違いかも。
DB板に逝って来ます
0019nobodyさん2006/02/25(土) 17:18:24ID:???
住み分けをきちんとすれば住民もしっかり答えてくれるよ
0020nobodyさん2006/02/25(土) 18:30:59ID:???
>>18
DBをどうするかってわかってんなら最初から他の板池
0021nobodyさん2006/02/25(土) 19:22:00ID:???
こんな胸糞悪いヤツは久しぶり棚
0022nobodyさん2006/02/25(土) 19:38:30ID:???
あまりにもくだらすぎる質問で申し訳ないけど
例えば書評サイトを作るとしよう
・書籍名 :(さるでもわかるPHP)
・ジャンル:(ぱそこん)
・作家名 :(曾英知)
・出版社 :(PHP出版)
・書評  :(わからん)
・満足度 :(38%)
とソフトかなんかにカッコ内だけ記入してアップロードしたら
かってに
・ジャンルごとに固めて五十音順にならべるてページ作ってくれる
・ジャンルごとに固めて満足度順に並べてページつくってくれる
とかしてくれるようにしたいんだけど
HTMLやCSS以外に何を勉強したらできるようになるのか教えてください、
正直本屋いってもプログラム言語が多すぎてさっぱりわからない

blog使えばいいじゃねーかとか言われてもブログのデザインって
使いにくいしダサいし
0023222006/02/25(土) 19:40:45ID:???
付け加え
これは難しいのか、簡単なのか、全く知識が無い者が
簡単にできるものなのか?てのも教えてください。
0024nobodyさん2006/02/25(土) 19:44:40ID:???
簡単だが、知識が皆無の者が作れるわけが無い。
ここはPHP言語スレだからPHPを使え
0025nobodyさん2006/02/25(土) 19:52:55ID:???
最近、PHPとHTMLとDBの区別もできない人が多すぎやしませんか?
0026nobodyさん2006/02/25(土) 19:55:42ID:???
それは最近に限ったことじゃないような。

俺は>>22がここを「PHP板・総合くだ質スレ」だと思ってることのほうが気になる。
0027nobodyさん2006/02/25(土) 20:03:49ID:???
>正直本屋いってもプログラム言語が多すぎてさっぱりわからない
PHPスレに来てこの発言とは、PHPを使えと言って欲しいだけのMと見た。
0028nobodyさん2006/02/25(土) 20:04:20ID:???
>>23
帰れ
0029222006/02/25(土) 21:25:21ID:???
じゃあ、どこで質問すればいいの
俺のプログラム言語の認識
WEBプログラミング
 JavaScriput→なんかサイトの見栄えをうざくするやつ
 CGI→カウンターとかつくるやつ
 PHP→なんでもできるうえにかんたん
 mysql→なんかデータベースつくるソフト、phpで記述する?
他のぷろぐらむ言語
 basic→中学んころやったけどよくわからん
 c→大学でやったけどカレンダーのプログラム難しくてつくれなかった

だからここで質問したw
やっぱりあきらめろってことかい
0030222006/02/25(土) 21:31:09ID:???
ああ、ごめんごめんちゃんと"WebProg 初心者の質問 "ってあったわ
スレ違いでした
0031nobodyさん2006/02/25(土) 21:38:44ID:???
バカばっか
0032nobodyさん2006/02/25(土) 21:44:29ID:???
盛り下がって参りました
0033nobodyさん2006/02/25(土) 21:51:38ID:???
>>22はScriptも書けないチキン
0034nobodyさん2006/02/25(土) 22:25:47ID:???
んー、GZIPとZIP(PKZIP)は圧縮形式が同じだからヘッダとフッタを書き替えて変換が可能らしい。
0035nobodyさん2006/02/25(土) 22:49:32ID:???
>>29
他に書いてあることも駄目ダメだが…
>  c→大学でやったけどカレンダーのプログラム難しくてつくれなかった
これがやたらリアルで吹いた。
理解できるまで自分でプログラム書かない方がいいよ。
0036nobodyさん2006/02/25(土) 22:55:19ID:???
>>29
正直、お前さんの場合、自分でプログラムを書いてやりたいことをやるよりも、
誰かに書かせられるだけの資金力を身につけた方がてっとり早いかもよ。
0037nobodyさん2006/02/25(土) 23:36:25ID:???
いや、資金力があったとしても、
やりたいことをプログラマに伝えられるとは思えん。
>>29のような認識しかしようとしない人には誰もついていかないと思う。
0038nobodyさん2006/02/25(土) 23:45:42ID:???
札束積んでくれりゃ、どんな奴にでもついてくぜ!
0039nobodyさん2006/02/25(土) 23:45:54ID:???
いや、逆に良いんじゃない?
中途半端に知識があるヤツは「ここはコレでああしてくれ!」って頼んでくるからマジで面倒くさい。
>>29なら「こういうのが作りたいんだ。やってくれるか?」って行ってくれれば喜んでやるよ。
まぁ、>>29に人間性によるがな。知識はなくても人間性の良いやつには俺は出来るだけ力になりたいよ。
0040nobodyさん2006/02/26(日) 00:23:56ID:???
大学で学ぶ機会があったのに真面目にやらなかったような人間でしょ。
そういう人は何やっても無駄。
他人に金払って作ってもらったほうがいいよ。
0041nobodyさん2006/02/26(日) 00:49:05ID:???
自分を理解してる分、ましな奴だと思うけどね。
0042nobodyさん2006/02/26(日) 03:20:21ID:???
>>38
つ[堀江]
0043nobodyさん2006/02/26(日) 04:31:10ID: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を使うのかなぁと思うんですがいまいちやり方わからず・・・

0044nobodyさん2006/02/26(日) 04:35:24ID:???
>>43
nl2brとかなんとか
0045nobodyさん2006/02/26(日) 05:40:08ID:???
>>43
\nでexplodeしてさらに要素を,でexplodeすればいんでない
0046nobodyさん2006/02/26(日) 07:15:27ID:???
$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>";
}
0047nobodyさん2006/02/26(日) 10:00:13ID:???
なんでforeach使わないのか不思議
0048nobodyさん2006/02/26(日) 10:52:41ID:???
>>47
知らないから
0049nobodyさん2006/02/26(日) 11:02:51ID:???
よし!今日はPHPでのオブジェクト指向プログラミングに挑戦するぜ!


・・・でも、PHPにしろJavaにしろオブジェクト指向開発で難しいのはプログラミングじゃなくって
クラス図とか作るほうだよな('A`)
0050nobodyさん2006/02/26(日) 11:11:23ID:WBgYvtX2
mb_send_mail で登録されてる人にサーバーからメールを送っていますが(主に携帯)
failure notice のエラーが返ってきて送れない人達がいます。

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

例 : test.@docomo.ne.jp
0051nobodyさん2006/02/26(日) 11:33:39ID:???
>>50
RFC2821の記述を読むと、
. から始まったり
. が連続したり
. で終わったり
するのはマズイんでないかねぇ。自分でも読んでみてちょ。
てか、実際 .@ の場合は多くのMTAが叩き落してた希ガス
0052nobodyさん2006/02/26(日) 11:48:28ID:???
>>50
>例 : test.@docomo.ne.jp
RFCに準拠して無いアドレスは、インターネットのメールアドレスとは言えない。
ドキュモの勝手な仕様。
0053nobodyさん2006/02/26(日) 13:18:31ID:???
RFCってたくさんあるから、どれ読んどいたらいいのかわかんないよね
0054nobodyさん2006/02/26(日) 13:30:13ID:???
WebProgに関係するのはそんなに多くないし、使う人が多いからか訳も充実してるからなぁ。。。
一番苦労してるのはネットワーク系の人だろうね。
0055nobodyさん2006/02/26(日) 13:57:13ID:???
本当に頭の良いヤツってネットーワーク屋さんかコンパイラ屋さんかだな
0056nobodyさん2006/02/26(日) 14:05:50ID:???
下らない質問なんですが、
標準で組み込まれてる関数ってPHPで書かれてるんですか?
0057nobodyさん2006/02/26(日) 14:07:53ID:???
マシン語じゃないの?
0058nobodyさん2006/02/26(日) 14:18:14ID:???
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 ってのをダウンロードすればいいよ。
0059nobodyさん2006/02/26(日) 17:32:27ID:izomZemY
インテリセンスが効くIDEはありますか?
0060nobodyさん2006/02/26(日) 22:50:17ID:???
>>59
インテリセンスはマイクロソフト製のIDEにしか存在しません。
0061nobodyさん2006/02/26(日) 23:35:30ID:???
>>60
ありがとうございます。
シコシコ頑張ります。
0062nobodyさん2006/02/27(月) 09:31:48ID:???
登録商標
0063nobodyさん2006/02/27(月) 11:33:33ID:???
使い分けだとは思うんですけど、
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;
とかいろいろありますよね。
この書きかたはセキュリティ的に良くないよー
みたいなことは特にありませんか?
0064nobodyさん2006/02/27(月) 12:01:08ID:???
PHPでMySQLのストアドプロシージャを使うにはどうすればよいのでしょうか?
mysq_query()コマンドで行うのでしょうか・・
0065nobodyさん2006/02/27(月) 12:32:40ID:???
>>63
長い場合は3つ目。ダブルクォートを気にしなくてすむし。
見やすくするためにEO+識別子を使う。EO_EntryFormとかね。
EOFだとファイルが終わっちゃう感じがするし。
短い場合は1行で収めちゃうね。基準はその時の気分w
0066nobodyさん2006/02/27(月) 12:51:45ID:???
>>63
俺はechoやprintではHTMLを出力しないようにしてる。
原則、?>HTML<?php 形式。

必要なケースでは(変数に格納しておきたい場合など)
1.変数が必要で内容が短い→"〜"
2.変数が不要か「.」で繋いだ方がシンプルにまとまって内容が短い→'〜'
3.内容が長い→<<<HTML でヒアドキュメント
って感じ。
0067nobodyさん2006/02/27(月) 13:22:14ID:nvSEUa/x
学生時代にpascalをつかっていたんで、ある程度はプログラミングの
常識は持っています。

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

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

cgiとPHPどちらがいいものでしょうか?
0068nobodyさん2006/02/27(月) 13:23:50ID:???
>>67
perlとPHPってことでしょうか?

どっちでもいいんじゃないですかね。
0069nobodyさん2006/02/27(月) 13:40:35ID:???
>>67
CGIでPHPを使うのが両方出来てお得だと思います。

Pascalライクなのがいいなら、Pythonなんかがそんな感じがするが
Webと組み合わせるならPHPは本当に楽だよ。
0070672006/02/27(月) 14:14:22ID:???
68,69さんきゅ。

PHPを勉強してみます。
0071nobodyさん2006/02/27(月) 16:04:42ID:???
みなさま。この問題で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)
なども試してみました・・・
0072712006/02/27(月) 16:12:47ID:sj9CYitM
ミスりました。
誤)if ($post === "") / if ($post == "") / if ($post === NULL)
正)if ($post['name'] === "") / if ($post['name'] == "") / if ($post['name'] === NULL)
0073nobodyさん2006/02/27(月) 16:12:57ID:???
$post、$errmsgはグローバル変数じゃないのだから
関数の中でグローバル宣言してやる、もしくは引数として渡してやるかしないとダメだろ。

いずれにしてもgetData()、checkErr()は変だよ。返値ないじゃん。
関数の書き方マニュアルでチェックしてみ。
0074712006/02/27(月) 16:20:23ID:???
>>72
レスありがとうございます。
ソースにはカキコした関数以外の部分でglobal宣言しておりました。
とりあえずcheckErr()に$postを渡してみました。

checkErr → checkErr($post);

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

ひとまず、ご報告まで。半年ROMって精進します。
0075712006/02/27(月) 16:31:45ID:???
どうやら一山超えることができたようです。

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

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

ありがとうございました。
0076nobodyさん2006/02/27(月) 17:19:00ID:???
>>75
グローバルに使うなら$_POST[ ]のままじゃ駄目なのか
0077nobodyさん2006/02/27(月) 17:25:06ID:???
>>76
グローバルの対象になる変数が違うと思われ
0078nobodyさん2006/02/27(月) 17:26:50ID:???
まぁ、functionの呼び出し時引数に$_POSTを渡してやるって手もあるが…

checkErr($_POST);
0079nobodyさん2006/02/27(月) 20:00:13ID:j8jIGqNe
!= と !== って同じ?
0080nobodyさん2006/02/27(月) 20:02:35ID:???
近いけど微妙に違う。!==の方がより厳密。
0081nobodyさん2006/02/27(月) 20:03:28ID:???
>>79
== と === って同じ?
0082nobodyさん2006/02/27(月) 20:04:59ID:j8jIGqNe
>>80
すいません、詳しく教えてくれませんか?
検索しようにも記号は検索語にならんもんで。。
0083nobodyさん2006/02/27(月) 20:08:18ID:???
>>82
ttp://php.s3.to/man/language.operators.comparison.html
0084nobodyさん2006/02/27(月) 20:10:34ID:???
>>83
ありがとう。
0085nobodyさん2006/02/27(月) 22:02:21ID:APEEDXbI
ファイルを分割する関数を探しています。
やったこと
→googleで「ファイル分割関数」で検索
→PHPエディタ[スタンドアロン版]に付属のマニュアルchmで検索
関数名さえ教えてもらえば、あとは自分で調べます。
0086nobodyさん2006/02/27(月) 22:12:02ID:???
どういう基準で分割するんだ。バイトサイズ?
0087nobodyさん2006/02/27(月) 22:14:09ID:APEEDXbI
>>86
すいません書き忘れてました
1.44メガバイトずつに分割したいと考えています。
0088nobodyさん2006/02/27(月) 22:19:06ID:???
フロッピーかよー!! カヨー カヨー カヨー
0089nobodyさん2006/02/27(月) 22:27:51ID:???
>>87
fopen&fread&fwrite
0090nobodyさん2006/02/27(月) 22:44:32ID:???
>>89
ありがとうございます。
今日はもう寝るので明日やってみます。
0091nobodyさん2006/02/27(月) 22:49:27ID:???
>>88
いえ、フロッピーではなく、
今「PCドキュメントダウンローダー」という、auの定額携帯用のツールを作っていて、
DL可能なファイルサイズが、KDDIの仕様で1.5MBまでなんです。
0092nobodyさん2006/02/27(月) 23:21:55ID:???
マルチバイト関数を有効にする方法を教えてください。
夜遅くにすみません。
0093nobodyさん2006/02/27(月) 23:24:21ID:???
>>92
移動乙

OSとphpのバージョン書いたほうがいいよ
Winっぽいよね・・、winでphpのインストールした事がないなぁ
0094nobodyさん2006/02/27(月) 23:26:01ID:???
winならば
googleで
「php windows インストール マルチバイト関数」
で検索したら一発だな
0095nobodyさん2006/02/27(月) 23:28:34ID:d/u1H5JH
>>93
あの、ホントいい人ですね。
winです。でも>>94さんが言うように、さっきググったら自己解決できます。きっと。
俺のバカ。
夜遅くにホントすいません。

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

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

はい、これならできます。ホントありがとうございました。
0096nobodyさん2006/02/27(月) 23:36:12ID:???
>>95
報告乙。解決できたら報告する人は成長も早い・・・らしい。
0097nobodyさん2006/02/27(月) 23:59:20ID:???
>>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;
//ここまで

おやすみなさい。。
0098nobodyさん2006/02/28(火) 00:00:38ID:???
>>64
長いときはヒアドキュメント。
漏れはとにかく変数は全部"文字列{$hoge}文字列"で埋め込んでる。
0099nobodyさん2006/02/28(火) 00:00:44ID:???
>>96
それ本当だから。

一番だめなのはメモも持たずに人のところに聞きに来る馬鹿です。
0100正規表現?2006/02/28(火) 00:01:40ID:DEUM5hM0
こんにちは、トピ作成失礼します!

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

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

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

この2箇所がどのような文字列についての対策なのかが分かりません...
もし分かる方がいらっしゃいましたら、
おしえてくださいっm(__)m
0101nobodyさん2006/02/28(火) 00:41:40ID:???
>>63
漏れは余計な改行が入るのを嫌って全てecho

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

''と""を使い分けている理由に付いては(゚听)シラネ
参照(引用)元がたまたまこの形式で、それをコピペしただけかも知れん。
0102nobodyさん2006/02/28(火) 00:41:45ID:???
オレには分からない
0103nobodyさん2006/02/28(火) 00:45:25ID:???
>>101
どんなに長くても入れちゃう派?
01041032006/02/28(火) 00:46:01ID:???
>>103
一行にを忘れてた。すげーエロイじゃんorz
0105nobodyさん2006/02/28(火) 00:46:28ID:C5SJRerw
safemodeじゃないのにphpからフォルダが作成できないです。
ちなみにperlからも出来ない・・・orz

これってモジュール版で動いてるから仕方ないんでしょうか?
解決策は鯖管に頼むしかないんでしょうか・・
0106正規表現?2006/02/28(火) 01:09:33ID:1e1aKd+D
>>101

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

PHPは最近はじめたばかりで、他の言語に関しては知識は皆無です・・・
0108nobodyさん2006/02/28(火) 07:17:53ID:???
>>107
cron + PHP
0109nobodyさん2006/02/28(火) 07:28:57ID:???
>>107
まぁできなくは無いんじゃないかな。WebProgというよりLinuxの方の話になると思うけど。

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

tarはそう難しいファイルフォーマットじゃないので、自作でもできるんじゃないかな。
実際pearにもtarを扱うやつあるものね(pearだから当然PHPで書かれている)。
0110nobodyさん2006/02/28(火) 09:10:39ID: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" ] );
を各所に配置して確認したところ、日本語入力をすると文字化けしています。
0111nobodyさん2006/02/28(火) 09:16:55ID:???
>>109
PEARにもあるし
Archive/Tar.php
01121112006/02/28(火) 09:18:37ID:???
>>109の自作でもできるんじゃないかな。
まで読んだ
01131102006/02/28(火) 09:33:07ID:???
自己解決しました。
mbstring.http_output = EUC
としました。
汚してどうも。
01141072006/02/28(火) 09:44:35ID:???
みなさんレスありがとうございます。
cronですか。ちょっとサービスが起動してるか確認してみます。
0115nobodyさん2006/02/28(火) 12:33:53ID:???
すげー下らないんだけど、ここらに書いてあるPHPプログラムを
実行するにはどーすればいいんでしょーか?
http://jp.php.net/downloads.php ここで落とせばいいの?
0116nobodyさん2006/02/28(火) 12:54:20ID:???
実行って言い方はあれだけどとりあえず本体落としてインストールせんとだめ。
あとWEBサーバもないと駄目。まぁ単体でも使えるけど・・
0117nobodyさん2006/02/28(火) 13:08:31ID:???
気になったんですが、
変数宣言とか無いから
ソース見た時に、この変数の型ってなんだ?とか思っちゃいます。
例えば、
$BBSData = LoadCsvFile( BBS_DATA );
こんなのある時に、LoadCsvFileはarray型の値を返すんですが、
$BBSDataの型は、LoadCsvFileの定義か、
$BBSDataを実際に使ってるところから割り出すしか無いですか?

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

更に下らない質問なんだけど
つまり鯖無しユーザーはHTMLにPHP記述してブラウザで確認ってカタチで宜しいんでしょうかね?
0119nobodyさん2006/02/28(火) 13:12:46ID:???
>>118
自分のパソコンにApacheとPHPを入れて確認。
0120nobodyさん2006/02/28(火) 13:17:29ID:???
>>117
ムリ

大抵は関数の定義から判断する。
Perlみたいにスカラーとリストを両方返せる関数があるわけじゃないんだし、
型宣言できたところでリファレンスか実体かでまた苦しむだけだから一緒かと。
ソースを部分的に見ただけで型判別できるようにしたかったら、変数名に型の識別名を
入れるのがPHPに限らずCでもC++でもJavaでもセオリーかと思うがどうか。
01211172006/02/28(火) 13:24:14ID:???
>>120
>リファレンスか実体かでまた苦しむだけだから
あら、やっぱり参照型と値型あるんですね。
まだ始めたばっかりなんで、オブジェクト関係はまだ遠いです。

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

すごい分かりやすい解説でした。
また縁があったらよろしくお願いします。
ありがとうございました。
01221172006/02/28(火) 13:47:48ID:???
深く調べないで聞いちゃうんですが、
PHPって関数の戻り値を、
絶対受けなきゃいけないって訳じゃないんですか?

さっきの例で、

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

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

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

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

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

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

PHPってHTMLファイルの中に直接書き込んでいってブラウザで表示するものだと思ってた・・orz
JavaScriptとは違うのね。・・・もうこれ以上質問する前に勉強してくる。
0125nobodyさん2006/02/28(火) 14:39:09ID:???
>>124には早い気がする。



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

「そうだよばか」

勉強頑張れ〜。


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

論旨は間違っていないが、初心者には余計な誤解を招くぞ。
0129nobodyさん2006/02/28(火) 14:46:24ID:???
>>126

>>124がPHPをHTMLに埋め込むんだからな。
一般ユーザではなく>>124が。
0130nobodyさん2006/02/28(火) 14:51:08ID:???
>>114
すれ違いだが、WindowsつかってるみたいなのでATコマンドしらべとけとか言ってみるテスト
0131nobodyさん2006/02/28(火) 15:00:31ID:???
>>121
> PHPの慣習に倣います。
慣習で言ったら接頭語なんて付けない、型なんて特に気にしない、が普通じゃないか。
0132nobodyさん2006/02/28(火) 15:02:33ID:???
>>122
戻り値は必要があるときだけ受ければいい。
その辺はCと変わらん。
0133nobodyさん2006/02/28(火) 15:11:05ID:???
>>124
> 自分のパソコンをWeb鯖にするってことだよね?
> それが公開されてなくても大丈夫なのかな・・・?
まー、IISじゃなきゃ80ポートをちょこっと受け付けるくらいで甚大な被害は多分出ないって。きっとw
0134nobodyさん2006/02/28(火) 15:41:59ID:???
最近Cになぞらえて考えるやつ多いな

>>117
PHPの変数の型はその場の文脈で勝手に変わるから
変数名で判断するとか無理なんよ
あと、Cだと基本的に全てのシンボルはアドレスと考えられるが
PHPはそうではないからリファレンスを理解する時注意するように
0135nobodyさん2006/02/28(火) 17:02:02ID:???
>>107
俺はスクリプトの最後にバックアップ用ファイルの最終更新時間と現在の時刻を照らして、条件を満たしていればバックアップを上書きするようにしてる。
普段使ってるファイルが壊れたり異常が見られたら、普段のファイル削除→バックアップを普段のファイル名にリネームしている。
0136nobodyさん2006/02/28(火) 17:57:58ID:???
スクリプト中からphp.iniのupload_tmp_dirを変更したいのですが以下のコードを
スクリプト中に記述しても変更出来ません。

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

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

どうすれば変更できるでしょうか?
01371362006/02/28(火) 17:58:54ID:???
コードの記述ミスをしました。

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

ini_set('upload_tmp_dir', "D:/test");  
0138nobodyさん2006/02/28(火) 18:01:19ID:???
そういうのはINI側の設定が優先されると思うよ。
それとWinのセパレーターは/じゃなくて\ね
01391362006/02/28(火) 18:03:20ID:???
php.ini側の設定では以下の様に設定していない状態になっています。

;upload_tmp_dir =

どの様にすれば変更出来るでしょうか?
0140nobodyさん2006/02/28(火) 18:06:46ID:???
var_dumpではなくini_getだと思う
01411362006/02/28(火) 18:09:53ID:???
ini_getでも試していますがFALSEが帰ってきます。
0142nobodyさん2006/02/28(火) 18:14:43ID:???
>>136
文頭の;を外したらいけませんか?
01431362006/02/28(火) 18:15:43ID:???
それも試してみましたが駄目でしたorz
0144nobodyさん2006/02/28(火) 18:19:30ID:???
>>136
D:\testが存在してないとか
01451362006/02/28(火) 18:20:18ID:???
してますorz
0146nobodyさん2006/02/28(火) 18:47:29ID:z6M7N5M1
みんなマニュアル読もうよ。
PHP_INI_SYSTEM 4 このエントリは、php.ini または httpd.conf (しかし、httpd.confのVHostブ ロック内では不可)で設定可能
0147nobodyさん2006/02/28(火) 18:50:11ID:???
Formの生成から入力チェックまでやってくれるライブラリ探してるんですが、
XMLで記述したForm情報を読み込んで処理できるやつあったら教えてください。

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

<form>
 <element id="name">
  <max_length>30</max_length>
  <min_length>1</min_length>
 </element>
</form>
0148nobodyさん2006/02/28(火) 19:05:53ID:???
csvファイルに変数の値をセットしたいのですが可能でしょうか?
もし可能であれば教えていただけないでしょうか。
0149nobodyさん2006/02/28(火) 19:18:52ID:???
csvファイルを書き出すときに、変数の値を書き出す
0150nobodyさん2006/02/28(火) 19:37:39ID:???
>>136
そもそもスクリプトが実行開始された時点でファイルのアップロードは完了しており、
すでにどこか(指定の)ディレクトリに保存されているので、スクリプト内で改めて
保存先を指定する意味が無い。実際の動作を考えれば判りそうなもんだけど・・・。

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

>>146
ゆとり教育の弊害だと思う
0151nobodyさん2006/02/28(火) 19:57:03ID:???
このスレにいるやつほとんどがゆとり世代なんだがなぁ、、
ゆとり教育ってのは段階的にかなり長期的に続けられている
0152nobodyさん2006/02/28(火) 20:09:58ID:???
>>150に笑ったw
0153nobodyさん2006/02/28(火) 20:18:17ID:???
小人閑居し不善を為す
0154nobodyさん2006/02/28(火) 20:49:51ID:???
そうそう、そのとおり。
元々ゆとり教育したい教育者のムードがあった。

そんな突然ゆとり教育させたら、きちんとした教育者は反発する。
0155nobodyさん2006/02/28(火) 21:28:23ID:???
ゆとり教育は大人の責任
0156nobodyさん2006/02/28(火) 21:48:47ID:???
そうやって何でも人のせいにすればいいさ。




楽をしたがった教職員やPTAのせいだけどね。
0157nobodyさん2006/02/28(火) 22:04:52ID:???
なんの話やねんな
0158nobodyさん2006/02/28(火) 22:05:44ID:???
ここはPHPの質問スレだったような気がしたんですが気のせいですか
0159nobodyさん2006/02/28(火) 23:11:14ID:???
学力崩壊―「ゆとり教育」が子どもをダメにした PHP文庫
和田 秀樹 (著)
http://www.amazon.co.jp/exec/obidos/ASIN/4569579108/ref=pd_sim_dp_4/249-5087703-6782729
0160nobodyさん2006/02/28(火) 23:50:56ID:???
馬鹿に限って血液型とかゆとり教育の話をする、とそういことさ
0161nobodyさん2006/02/28(火) 23:58:27ID:???
俺、血液型はAだけどゆとり教育なんだ。
0162nobodyさん2006/03/01(水) 00:24:46ID:???
>>158
気のせいですね。ここはPHPの雑談スレなんですよ。
0163nobodyさん2006/03/01(水) 00:27:02ID:HmVG72O5
ブラウザがcookieを使えるようになっているかを判別することはできるでしょうか?
0164nobodyさん2006/03/01(水) 00:30:16ID:???
クッキー送って記録されてればOK
0165nobodyさん2006/03/01(水) 00:51:43ID:???
cookieってsession_start()みたいな宣言必要じゃないですよね?
セッションなら上手くいくんですが、クッキーだと上手くいかんとです。
ブラウザ側で禁止してるわけでもないし。

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

表示するときも echo $_COOKIE["hoge"];
で間違いないですよね?
01661652006/03/01(水) 00:58:57ID:???
setcookie使ったらいけました・・・orz

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

setcookie("hoge", "hogetest");
は同じって書いてあるのですが、これはもしかして嘘でしょうか?
0167nobodyさん2006/03/01(水) 00:59:09ID:???
あのさ、最低、「php cookie」ぐらいでぐぐれよ。
0168nobodyさん2006/03/01(水) 01:02:56ID:???
>>166
はい嘘です。
setするときにはsetcookie使いなさい以上
0169nobodyさん2006/03/01(水) 01:07:06ID:ektJPim1
そのリファレンスの書名を是非教えてください
0170nobodyさん2006/03/01(水) 07:32:54ID:???
>>122
エラーのときfalseを返す関数はPHPでは一般的だったりする
str_word_countとか引数の違いで戻り値がstringだったり配列だったりするし
PHPやるなら型のことは忘れないと駄目だよ
0171nobodyさん2006/03/01(水) 08:18:27ID:???
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; }
}
0172nobodyさん2006/03/01(水) 09:11:40ID:???
strcasecmpすればいいだけでしょーがー
0173nobodyさん2006/03/01(水) 12:22:53ID:C+OfQRhv
PHPで $hoge に任意の文字が含まれているとします。
もし、それが数字である場合に真を返す関数はありますか?
0174nobodyさん2006/03/01(水) 12:36:56ID:???
>>173
is_numeric とか gettype などいかがでしょう。
実際に試してないので自信ないですが。

はい、次ぼくの質問

perlで言うところの

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

みたいな書式はありますでしょうか?
この書き方の呼び方が分からんので検索できなかったす……
0175nobodyさん2006/03/01(水) 12:40:55ID:???
>>174
このスレを「 <<< 」で検索
01761742006/03/01(水) 12:41:13ID:???
自己解決。ヒアドキュメントね。そうそう。
01771742006/03/01(水) 12:42:26ID:???
>>175
失礼しました!猛省します。
あきれないで……今後ともよろしくお願いします
0178nobodyさん2006/03/01(水) 12:44:38ID:???
ちなみにecho以外にも、変数の格納などに応用可能。
0179nobodyさん2006/03/01(水) 13:07:10ID:YIO/KfnW
ヒアドキュメントってPerlだと

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

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

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

って書くしかない?
0180nobodyさん2006/03/01(水) 13:28:25ID:???
>>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になる
0181nobodyさん2006/03/01(水) 14:02:36ID:???
>>179
後者しかないね。
PHPだと識別子直後の改行が必要なうえに、
次の行に何が書いてあっても取り込む文字列として見なされる。
0182nobodyさん2006/03/01(水) 14:48:01ID:???
 print ($flag)? (<<<TEXT1
なんたら1
TEXT1)
 : (<<<TEXT2
なんたら2
TEXT2);

カッコで閉じても無理?
0183nobodyさん2006/03/01(水) 15:21:27ID:???
>>182
何をしたいのか分からん。
おまけにTEXT1とかの後ろに)を付けるのは文法エラーだ。
0184nobodyさん2006/03/01(水) 16:09:03ID:???
ちょっと教えてほしいのですが
幾つかのデータを表にだしある行のデータを変更したら一番端に作っているチェックを
Javaでonにして、更新時はそのチェックをついている行のデータを更新させているのですが
↓こんな感じ 各チェックボックスの値は主キー
foreach($_POST['check'] as $val){
 mysql_query("update hoge set a='".$_POST{'a'.$val}."',b='".$_POST{'b'.$val}."' ");
}
$_POSTも項目ごとに必要だし各項目の後ろの主キー(一意の番号)をつけないといけないので
もっとスマートor簡単な処理方法なにかないでしょうか?
0185nobodyさん2006/03/01(水) 17:24:45ID:???
>>184
質問とは関係ないけどwhereはいらないのか
それと注射対策にエスケープしろよ
0186nobodyさん2006/03/01(水) 18:04:05ID:MpRVy8N5
>>184
何がしたいのか、解読するのが面倒なので、もっと質問を整理してください。
0187nobodyさん2006/03/01(水) 18:44:58ID:???
>>183
echo ($hoge) ? 'true': 'false';
0188nobodyさん2006/03/01(水) 18:46:21ID:???
>>184
日本語で
0189nobodyさん2006/03/01(水) 18:49:15ID:???
>>184
JavaとJSは別物

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

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

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

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

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


ここまで書いて自信なくなってきましたが、
おそらくこうだったと思います。
0192nobodyさん2006/03/01(水) 19:36:39ID:???
へー
0193nobodyさん2006/03/01(水) 19:41:00ID:???
>>190
参考までに

【スレッド】2ch型掲示板 14 【フロート型】@WebProg
http://pc8.2ch.net/test/read.cgi/php/1127896640/l50
0194nobodyさん2006/03/01(水) 20:02:46ID:???
>>191
そういえばread.cgiが間に入ってますね。ありがとうございます。

>>192
誘導ありがとうございます。参考にさせてもらいます。
0195nobodyさん2006/03/01(水) 21:09:07ID:MpRVy8N5
>>194
パスインフォ
0196nobodyさん2006/03/01(水) 23:10:25ID:9If1oYZF
midiファイルを再生させるソース
<EMBED
SRC=".mid"
WIDTH="150"
HEIGHT="40"
AUTOSTART="FALSE"
REPEAT="TRUE"
SAVE="TRUE"
>
これの類で複製を出来なくする方法ってどうやるのですか?
0197nobodyさん2006/03/01(水) 23:12:43ID:???
>>196
PHP関係ない
01981962006/03/01(水) 23:13:19ID:9If1oYZF
ごめんスレタイ見てなかった。
どこ逝きゃいい?
0199nobodyさん2006/03/01(水) 23:54:54ID:???
>>196
探せよ屑
0200nobodyさん2006/03/02(木) 04:18:35ID:???
WEBアプリケーションは

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

ってな感じが一般的だと思うんですが、これってひとつファイル中で if 使ってやるほうがいいか
form.php、check.phpとかファイルを分けてやるほうがいいかどう思いますか?
0201nobodyさん2006/03/02(木) 05:02:30ID:???
>>200
index.php と check.inc や end.inc というように、
1つのphpファイルと多数のincファイル(インクルードするファイル)で構成するのがいいと思う。
0202nobodyさん2006/03/02(木) 08:24:23ID:???
別に拡張子はなんだっていいよ。
0203nobodyさん2006/03/02(木) 09:20:52ID:c/Xyk/Yy
次のようなサンプルを良くみかけます。
$fp = @fopen($editfile, 'w');
$fp = fopen($editfile, 'w');


fopen関数の横に「@」があると無い場合とでは動作の違いはあるのでしょうか?
0204nobodyさん2006/03/02(木) 09:28:08ID: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()';
をやっていたのがいけないんですよね?
0205nobodyさん2006/03/02(木) 09:42:45ID:???
>>204
エラーメッセージ通りじゃねーか。
0206nobodyさん2006/03/02(木) 10:07:55ID:???
>>204
わかってんじゃねーか
0207nobodyさん2006/03/02(木) 10:08:34ID:???
>>200
システムの規模なんかにもよる。
02082032006/03/02(木) 10:51:59ID:???
>>204
ありがとです
02092032006/03/02(木) 10:53:31ID:???
>>204
教えてくれたお礼に教えてあげよう。

includeはループの中で何度でもできるが、requireは1回しかできないから
ループの中で何度も使いたい場合は include使えばいいだよ
0210nobodyさん2006/03/02(木) 10:59:59ID:???
つ require_once
0211nobodyさん2006/03/02(木) 11:03:29ID:???
>>209
> requireは1回しかできないから
できる。
includeとrequireはエラー時にWarningになるだけかFatal Errorになってしまうかの差しかない。
0212nobodyさん2006/03/02(木) 11:06:34ID:???
>>211
勘違いしてない?
http://www.komonet.ne.jp/~php/chap7.htm
0213nobodyさん2006/03/02(木) 11:09:55ID:???
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
0214nobodyさん2006/03/02(木) 11:12:39ID:???
そのサイト、大丈夫か?

require()とinclude()は エラーの扱い方を除けば全く同様に振舞います。
0215nobodyさん2006/03/02(木) 11:14:35ID:???
どうしてこう、サイトといい書籍といい、PHPの解説してるとこって嘘書いてるとこが多いんだ?
0216nobodyさん2006/03/02(木) 11:14:45ID:???
同様に振舞うとかそういう問題じゃないと思うが。
printfとかprintとかechoが同じといってるようなもんだな。
0217nobodyさん2006/03/02(木) 11:18:31ID:???
公式マニュアルからのコピペですが。
英語だと
require() and include() are identical in every way except how they handle failure.
0218nobodyさん2006/03/02(木) 11:27:06ID:???
>>212
ソースは解説サイトよりマニュアルを参照した方がいい。
そこで自分の過ちに気付き、自分が間違っていたんだと認める事ができれば人間としてもレベルが高い。
更に変な解説したサイトに嫌がらせのメールを送ったり勝手にMLに登録したら次の日は大吉。
0219nobodyさん2006/03/02(木) 11:28:06ID:???
>>212
[a.php]
<?php
require("b.php");
require("b.php");
?>

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

実行結果
a
a
02202032006/03/02(木) 11:29:03ID:???
なぬ、解説サイトが間違っていたのか
それをずっと信じてました
すみません
0221nobodyさん2006/03/02(木) 11:33:10ID:???
http://www.komonet.ne.jp/~php/chap13.htm

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

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

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

0222nobodyさん2006/03/02(木) 11:39:54ID:???
http://hotwired.goo.ne.jp/webmonkey/2000/02/index4a.html
0223nobodyさん2006/03/02(木) 11:50:43ID:???
>>221
http://www.php.net/manual/ja/function.setcookie.php
02242042006/03/02(木) 11:53:31ID:???
皆さん情報ありがとうございます。
思いのほか盛り上がる内容だったみたいでなんだか嬉しいです。

>>210さんの方法が一番楽そうだったので、安直な私としては即採用です。
どう見ても便利です。ありがとうございました。
0225nobodyさん2006/03/02(木) 11:56:43ID:???
>>224
1番楽そうというか、それしか回答はないよな
0226nobodyさん2006/03/02(木) 12:03:08ID:???
>>224
俺としては何でループの中でrequireしないといけないのかが気になるがな
0227nobodyさん2006/03/02(木) 12:03:31ID:???
>require 'user_function()';
コレの意味がわからんのは俺だけか?
0228nobodyさん2006/03/02(木) 12:16:33ID:???
>>227
もちろんファイル名だろ
02292042006/03/02(木) 12:20:20ID:???
>>226
うーん、間違った行為なんでしょうか
ループが無駄に長いもので、ループの外にrequire書いてもいいんですが。
requireとその中にユーザ関数があるんですが、記述が離れると一覧性が下がるかなぁと。

>>227
oops,
require 'user_function.inc';
とでも皆さん脳内変換してくれてたんですね・・。
02302212006/03/02(木) 12:22:04ID:???
>>223
「クッキーを削除する場合には、ブラウザの削除機構を起動するために必 ず有効期限を過去に設定する必要があります。 前の例でクッキーを削除する方法のサンプルです。」と
公式マニュアルにもあるのか。
値が無いCookieをSetすることでFirefoxやIEでは正常にCookieが削除されるけど、これは仕様外の動作なのかな。
0231nobodyさん2006/03/02(木) 13:04:31ID:???
>>230
「クッキーは設定されたものと同じパラメータで削除する必要があります。 値が空文字列("")で、その他の全ての引数が前にsetcookieをコールした時と 同じである場合に、指定された名前のクッキーはリモートクライアント上から 削除されます。」
とも書いてあるんだから両方とも正しいんじゃない?
0232nobodyさん2006/03/02(木) 13:42:54ID:???
mysql_query()関数で正しく実行できなかった場合に
詳細を知る方法はないでしょうか?
sql文をよく間違うのですが、
原因を見つけるまでかなり時間がかかります。

$error = mysql_query($sql);
echo $error;
これでは無理でした・・・
0233nobodyさん2006/03/02(木) 13:49:35ID:???
del_set_cookie();
を使いましょう。








ユーザ関数で
0234nobodyさん2006/03/02(木) 14:22:21ID:???
HTMLフォームのsubmitボタンから、外部PHPスクリプトの特定の関数を呼び出すことはできますか?
0235nobodyさん2006/03/02(木) 14:31:46ID:???
>>234
(--;) ウ〜ン
何を突っ込んでいいのやら…
0236nobodyさん2006/03/02(木) 15:11:17ID:???
>>232
>$error = mysql_query($sql);
これで$errorにクエリが成功/不成功したかという情報が入ってるから、
その情報を元に、別の関数(直前のクエリのエラーを得る)で詳細を取得。
つかマニュアル読める環境で作業してないのけ?
0237nobodyさん2006/03/02(木) 15:54:52ID:wuWQEqGX
助けてください。お手上げなんです。

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

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

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

どうぞよろしくお願いします。
0238nobodyさん2006/03/02(木) 15:58:13ID:???
板違いじゃね?
0239nobodyさん2006/03/02(木) 15:59:11ID:???
DB板もエスパーいないよ
0240nobodyさん2006/03/02(木) 16:00:45ID:wuWQEqGX
PHPのプログラムがほしいのですが。
0241nobodyさん2006/03/02(木) 16:09:09ID:???
>>240
どこがどうお手上げなんだか示せ。
0242nobodyさん2006/03/02(木) 16:11:25ID:wuWQEqGX
まったく分からないんです。

われながら考えたのですが、preg_match()でなんとかとはいきませんでした。
0243nobodyさん2006/03/02(木) 16:11:37ID:???
>>237
SQLの範疇だと思うんだが?
普通にSELECT 〜 WHERE word = 'hatena'
0244nobodyさん2006/03/02(木) 16:14:27ID:wuWQEqGX
それだと hatena だけが入っているレコードは取得できるのですが、 hatena 2ch のように他の単語が入ってしまうと取得できないんです。
0245nobodyさん2006/03/02(木) 16:16:35ID:???
>>232
>>236が言うように、マニュアルですぐに分かりそうなもんだが。
mysql_error -- 直近に実行されたMySQLコールのエラーメッセージを返す
mysql_errno -- 直近のMySQL処理からエラーメッセージのエラー番号を返す
0246nobodyさん2006/03/02(木) 16:18:56ID:???
>>244
SELECT 〜 WHERE LIKE 'Q%'
02472462006/03/02(木) 16:19:35ID:???
>>244
すまん、暴発した。
SELECT 〜 WHERE LIKE 'Q%'
0248nobodyさん2006/03/02(木) 16:20:26ID:wuWQEqGX
>>246
それだと haten sql でもヒットしてしまいませんか?
02492462006/03/02(木) 16:21:15ID:???
何で連続で暴発する…。LIKE使ってみ。
SELECT 〜 WHERE word LIKE '%hatena%
0250nobodyさん2006/03/02(木) 16:22:36ID:wuWQEqGX
なるほど、ありがとうございます。

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

>>250 いや、書き込みボタン押してないのに、何故か書き込まれたので。
0252852006/03/02(木) 16:27:29ID:tZ9efk0A
>>85で質問をした者です。

ファイルを連番で1.4メガバイトずつに分割したいのですが、
やり方がわかりません。
fopen、fread、fwriteを使うという事を以前教えてもらい、googleで検索しましたが、よく分かりません。
どのように記述すればよいか教えてください。
例えば、hoge.swf(3MB)を、hoge1.swf(1.4MB),hoge2.swf(1.4MB),hoge3.swf(200KB)に分割するような感じです。
0253nobodyさん2006/03/02(木) 16:28:55ID:???
>>237
スプレッドシートではなく、DBMSを使ってるらしいことは判ったが、
>hatena という単語と完全一致する単語があるレコードすべてを表示する
条件にマッチするものを取得→表示で問題があるのか?
それとも表示の条件と取得の条件が異なるのかい
取得に関して話が出てきてないように思えるが、
そうなら何のために取得が必要なのか説明もしてくれ。
0254nobodyさん2006/03/02(木) 16:38:38ID:???
>>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。
0255nobodyさん2006/03/02(木) 16:54:36ID:???
>>230
それホントに削除されてるの?空文字列が格納されてるわけじゃなくて?
0256nobodyさん2006/03/02(木) 16:57:22ID:???
>>229
requireはいちいちディスクアクセス&ソースのコンパイルが入るので
そんな真似すると遅い&サーバー負荷になるよ。
せっかくのPHPのキャッシュ機能も宝の持ち腐れ。

そもそも一瞥できないほど長いループブロック書いてる時点でダメダメって気がするけど。
0257nobodyさん2006/03/02(木) 17:03:02ID:???
>>252
分割はそのうち出来るだろうから他の識者に任せるとして、
それよりも、分割してダウンロードさせたファイルを端末サイドで
結合させるロジックに非常に興味があるな。
しかもauだそうで…
まさか、公式BREWアプリでやろうってか?
BREWの通信制限3Mの壁とか…
なぞは深まる・・・
0258nobodyさん2006/03/02(木) 17:03:24ID:???
>>237
select 〜 where word like '% $w %' or word like '$w %' or word like '% $w'
って空白込みでlikeを使う手じゃないの?
wordカラムのデータを '単語 単語 単語' にしないで ' 単語 単語 単語 ' って先頭と末尾にも空白入れとけば
select where word like '% $w %'
で一発だけど、そんな先のことを見据えた設計はしてないんでしょう。

いずれにせよPHPは「全く」関係ない。
0259nobodyさん2006/03/02(木) 17:06:38ID:???
>>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);
0260nobodyさん2006/03/02(木) 17:08:17ID:???
>>252
1.元のファイルを”r”で開く。
2.1.4MB分読み込む
3.分割ファイルNo.1を"w"で開く
4.3のファイルに2の内容を書き込む
5.3のファイルを閉じる
6.2にもどって次の分割ファイル名をNo.2にする
7.元のファイルを全部出力し終わったら1のファイルを閉じる

幼稚園児に物を教えてるみたいだ
0261nobodyさん2006/03/02(木) 17:15:53ID:???
>>260
>>252は、たぶんその「2」が判らんのだと思うよ。
0262nobodyさん2006/03/02(木) 17:19:32ID:???
分割したFlashはどうやったら見られますか


という質問が来そうな気がする
0263nobodyさん2006/03/02(木) 17:20:00ID:???
>>261
マニュアル見ればすぐ判るじゃん(w
っていうか、そもそも「1.4メガバイト」とか言ってる時点で、
バイナリを扱う知識に欠けているのは予想できるんだが。
たぶん引数に14000000とか指定するんだろうな。
0264nobodyさん2006/03/02(木) 17:26:55ID:???
>>257
激しく同意
0265nobodyさん2006/03/02(木) 18:00:41ID:???
>>261
fread使えとまで指示されてそれが分からんっつーのもどうかと思う
0266nobodyさん2006/03/02(木) 18:40:57ID:???
>>237
ポイント尽きた?
02672042006/03/02(木) 19:03:53ID:???
>>256
include_onceのほうがいいのかしら・・
外に出せって事ですよね早い解決は

>>そもそも一瞥できないほど長いループブロック書いてる時点でダメダメって気がするけど。
ごもっとともです・・、勉強がてらなのに一人では大き目のプログラムを行き当たりばったりで書き始めたバージンソースなので
今見ると自分でも寒いソースだ・・と痛感致します
><
0268nobodyさん2006/03/02(木) 19:29:53ID:???
>>263
> たぶん引数に14000000とか指定するんだろうな。
いえ、そこは1433600を指定してました。皆様のレスを見ているとそれも間違いのような気がしますが。
バイナリの知識に乏しいというのは正解です。
0269nobodyさん2006/03/02(木) 19:31:40ID:???
>>262
そこはちゃんと考えてあります。
自分専用の非公開ツールとして作ってるので、Windows上で結合しますよ。
0270nobodyさん2006/03/02(木) 19:40:26ID:???
>>261
「5」が判りませんでした
0271nobodyさん2006/03/02(木) 20:36:14ID:???
質問です。
PHPからoracleへ接続したいのですが
oracleクライアントを使わずに接続する方法を知っている方はおられませんか?
JAVAではthinを使って接続しました。
似たような方法があれば教えてください。
環境は 窓2000にoracle10 REDHAT9にPHP4.4.0です。
よろしくお願いします。
0272nobodyさん2006/03/02(木) 21:04:15ID:???
>>234-235
思わず吹いた
0273nobodyさん2006/03/02(木) 22:20:41ID:???
>>268-270
偽だよな?と釣られてみる。
0274nobodyさん2006/03/02(木) 22:44:53ID:???
>>269
>>91で言っている事となんか違うぢゃねぇかYO
何がしたいんだか・・・
0275nobodyさん2006/03/02(木) 23:04:16ID:???
>>271
ODBCで繋がんないか?
0276nobodyさん2006/03/02(木) 23:37:27ID:???
>>258
select 〜 where concat(" ", word, " ") like '% hatena %'
でどうかな(MySQLの場合だが)
0277nobodyさん2006/03/03(金) 00:16:47ID:???
>>266
漏れも突っ込もうと思ってた。
キャンセルかよ!
0278nobodyさん2006/03/03(金) 02:17:49ID:???
各板の書き込み数と、
各板から出される削除依頼の件数と、
その比率を全部調べて表にしてほしいんだけど。
0279nobodyさん2006/03/03(金) 02:20:02ID:???
>>278
質問でも雑談でもOKのスレッド 52
http://ex9.2ch.net/test/read.cgi/accuse/1129722955/
0280nobodyさん2006/03/03(金) 04:44:58ID:???
ご意見ください。

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

・改行が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"];
}

?>

よろしくおながいします。
02812802006/03/03(金) 04:47:43ID:???
if文の行の末尾に ?> が残ってついてますが、そこには突っ込まないでください。。
0282nobodyさん2006/03/03(金) 05:15:09ID:???
>>280
$array = explode('<br />', $vl["body"]);
for ($i = 0; $i < 5; $i++) echo $array[$i].'<br />';
028307012320212468_mb2006/03/03(金) 06:38:49ID:j89wU6/4
>>273
> 偽だよな?と釣られてみる。
いえ、本人ですが。
どうやれば信じてもらえるかわからないので、フシアナサンをします。
0284nobodyさん2006/03/03(金) 07:48:02ID:???
質問する場合、IDを出さないと誰が誰かわからん
0285nobodyさん2006/03/03(金) 10:07:21ID:???
ID出したって翌日にはわかんなくなるけどな。
だから初回ID+次回から名前に番号、なんじゃないのか?
0286nobodyさん2006/03/03(金) 11:07:53ID:???
>>283
ちなみにそれってどういう利点があるの?
PCがインターネットに繋がってないか極端に回線速度が遅い場合以外の利点が思い付かないんだけど。
0287nobodyさん2006/03/03(金) 11:30:59ID:???
>>283
フシアナってもしょうがなかろうに・・・
自分を特定してもらいたいんだったら、コテハン+トリップ これ最強
028807012320212468_mb2006/03/03(金) 11:44:56ID:???
>>286
> PCがインターネットに繋がってないか極端に回線速度が遅い場合以外の利点が思い付かないんだけど。
後者です。ダイヤルアップ回線で伝送損失60デシベルです。
0289nobodyさん2006/03/03(金) 11:48:47ID:???
>>269
Windowsなら、 copy /b a+b+c d
みたいに標準ツールでできるもんな

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

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

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

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

が、必要です。

282さんの例のは一番最初に試した方法なのですが、
それだと配列の長さをによってif()で分岐させなければならないので、
結果として長くなってしまいました。
0292nobodyさん2006/03/03(金) 12:15:54ID:mLdhBg36
すいません。ご質問させてください。
プログラム内で現在実行されているPHPがDSOなのかCLIなのか
を判別したいのですが何か方法はありますでしょうか?

よろしくお願いします。
0293nobodyさん2006/03/03(金) 12:21:18ID:???
>>291
最後に
if(count($array) > 5){echo '省略して表示されています';}
で良いんじゃね?
02942802006/03/03(金) 12:23:34ID:???
>>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"];
}
02952802006/03/03(金) 12:31:34ID:???
>>293

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

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

ってことですね。
いまいちすっきりしませんが、ご意見をありがとうございます。
0296nobodyさん2006/03/03(金) 12:33:20ID:???
>>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 ) {'.......省略して表示されています';}

かな。
02972802006/03/03(金) 12:37:38ID:???
しつこくてすいません。

ちなみに>>295のやり方だと、本文の行数が4行以下の時(<br />が2個しかない等)に
存在しない配列の添え字を参照してしまうので、NOTICEエラーになります。
0298nobodyさん2006/03/03(金) 12:38:23ID:???
NOTICEじゃなかったか。。
02992802006/03/03(金) 12:41:38ID:???
と、時系列がおかしい書き込みになりまくってますが、
explodeのやり方だと、結果としてはやっぱり微妙に長くなるようです。
0300nobodyさん2006/03/03(金) 12:44:36ID:???
>>299
正規表現使わない分だけ速度は数倍早いけどね
0301nobodyさん2006/03/03(金) 12:49:19ID:???
>>299
スクリプトの行数を減らしたいのか?
実行速度を上げたいのか?
030207012320212468_mb2006/03/03(金) 13:07:19ID:j89wU6/4
>>290
自分のPCのHDD内にあるファイルを分割するならそれで良いんですが、
その「フリーの分割結合ツール」を始め、インターネット上にあるソフトウェアやマルチメディアファイルは、
データ量が大きいため、ダイヤルアップで何十分もかけて課金されながらダウンロードするのがもったいなく感じ、このツールを考案しました。
03032802006/03/03(金) 13:13:14ID:???
どうしてもview(htmlソース)側にロジックを混入しなければいけない状態だったので、
スクリプトの行数(というか工程)を極力減らして、viewが見づらくならないようにしようとしていました。

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

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

色々とありがとうございます。
0304nobodyさん2006/03/03(金) 13:17:12ID:???
>>302
つまりはなんだ、君のやろうとしているのはこういうこと貝?

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

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

0305nobodyさん2006/03/03(金) 13:18:46ID:???
>>303
なんだか良く判らないけど、さようなら
030607012320212468_mb2006/03/03(金) 13:20:02ID:j89wU6/4
>>304
まさにその通りです!
0307nobodyさん2006/03/03(金) 13:27:37ID:???
>>303
$vl["body"] = 掲示板に書き込まれた本文の内容;
$i = 0;
foreach(explode('<br />', $vl["body"]) as $l) {
if(++ $i >= 5) { echo '省略して表示されています'; break; } else { echo $l; }
}
0308nobodyさん2006/03/03(金) 13:28:58ID:???
あ、$lのechoで<br/>つけるのわすれた
0309nobodyさん2006/03/03(金) 13:34:57ID:???
>>303
これじゃダメ?
$str = "str1<br>str2<br>str3<br>str4<br>str5<br>str6<br>str7";
$reg = preg_replace("/((.*?<br>){5})(.*)/","$1省略して表示されています",$str);
echo $reg;
0310nobodyさん2006/03/03(金) 13:37:08ID:???
>>306
で、どこまで出来ていて
何が判らないんだっけ?
0311nobodyさん2006/03/03(金) 13:42:59ID:???
>>309
それ、5行無かったらどうなるんだ?
03123092006/03/03(金) 13:45:01ID:???
>>311
$strがそのまま表示された。
それと俺、ど初心者だからあまり信用しないで。
0313nobodyさん2006/03/03(金) 13:46:47ID:???
>>304
昔、それのメール版を作った事あるよ。IPリーチャブルな環境じゃなかったので。
誰かが作った公開サイトもあった。今考えると何も対策もなかったので、
メールボムの温床になりかねんが、随分と大らかな時代だった。
0314nobodyさん2006/03/03(金) 14:36:04ID:???
>>306
で、>>259じゃいかんのか?
ちょっと作り変えれば、ファイル名などは任意にできるが。
0315nobodyさん2006/03/03(金) 15:55:16ID:j89wU6/4
>>314
今から書き写してテストしてみます。
0316nobodyさん2006/03/03(金) 16:29:27ID:???
>>315
今からって...ヲィ、大丈夫か?
031707012320212468_mb2006/03/03(金) 16:51:16ID:???
$path = $_POST["url"];
ファイル名を
$filename_w = dirname($path) + $n + "_" + $basename($path);
と記述しましたが、syntaxエラーが出ます。
どのようにすれば上手くいきますか?
0318nobodyさん2006/03/03(金) 17:00:54ID:???
phpって何で良くセキュリティホール見つかるの?
こんな品質じゃ仕事で使えないじゃん。
0319nobodyさん2006/03/03(金) 17:11:17ID:???
>>317
そんな質問で答えられる奴はエスパーだぞ。

「+」->「.」に汁 byエスパー2号
0320nobodyさん2006/03/03(金) 17:11:20ID:???
>>317
+

.
に変えろ
0321nobodyさん2006/03/03(金) 17:24:40ID:j89wU6/4
>>319-320
できました!ありがとうございます!
あとは3g2ファイルのヘッダを付加して
DL用の<OBJECT>タグをつければ完成です!
0322nobodyさん2006/03/03(金) 17:39:07ID:???
>>321は絶対にまた帰って来ると思う。
でもそのときには「スレ違い!」の一言で片付けられる
と予言してみるテスト
0323nobodyさん2006/03/03(金) 18:06:04ID:Mb/ANEcx
犯罪とかのニュースのたびに怒りでどうしようもない
http://life7.2ch.net/test/read.cgi/jinsei/1140716130/l50
ここで偽善者がオナニー暴れしてます
0324nobodyさん2006/03/03(金) 19:00:13ID:???
>>318
Windows って何でよくセキュリティホール見つかるの?
こんな品質(略
0325nobodyさん2006/03/03(金) 19:18:24ID:???
>>318
MS-DOSってほとんどセキュリティホール見つからないね。
仕事に使うものとしては最高じゃん!
0326nobodyさん2006/03/03(金) 19:26:10ID:???
俺のエニーちゃんのオナホールは最高だよ
0327nobodyさん2006/03/03(金) 19:32:11ID:???
ちょっと貸してくれないか
0328nobodyさん2006/03/03(金) 20:15:27ID:???
断る
0329nobodyさん2006/03/03(金) 20:21:25ID:???
分割の人はここのヤスタカだったんだな
中学生くらいかな。頑張れ。

http://c.m-space.jp/bbs.php?ID=nullpo&serial=22733&page=9&sort=0&action=next
033007012320212468_mb2006/03/03(金) 20:30:06ID:???
>>329
ちょwwwwwうぇwwwそうだけどさ、2chで晒さなくてもいいじゃないか。
かそれ本名なんですから。
あと、僕は高校生ですよ!リアル工房ですよ!
触ったことある言語N88BASICとJavaScriptぐらいでこれでも頑張ってるんですよ!
0331nobodyさん2006/03/03(金) 20:31:45ID:???
かそれ→それ
指摘される前に訂正。
0332nobodyさん2006/03/03(金) 20:44:08ID:???
本名でも仮名って言っときゃいいのに
0333nobodyさん2006/03/03(金) 20:49:27ID:???
そこまで予想して本名と言ってる(実際は仮名)…てことはないな。
しかし、N88BASICを触ってる時点で結構なものと思うんだが。
兎にも角にも頑張れ。
0334fusianasao2006/03/03(金) 20:49:28ID:???
>>332
あなた、頭いいですね
0335nobodyさん2006/03/03(金) 20:52:09ID:???
よく言われる
0336nobodyさん2006/03/03(金) 20:52:22ID:???
いまどきの高校生でN88BASICなんぞ触る機会があるのか?
普通に学校の授業であるのかな?
0337nobodyさん2006/03/03(金) 21:01:53ID:???
>>336
中学1年の2学期までパソコン室がPC-9801でした。
その頃に少し遊んだだけです。
その後は校舎新築で富士通のWindows2000搭載のコンピュータに変わりましたが。
0338nobodyさん2006/03/03(金) 21:02:22ID:???
思ったんだが、携帯でDLして転送するって事はパケットは定額制だよな?
それなら携帯を安いプランにしてブロードバンドに乗り換える方がいいんじゃまいか
0339nobodyさん2006/03/03(金) 21:10:32ID:???
>>338
痛いとこ突かれたorz
でもこのツールを完成させたいんです!
0340nobodyさん2006/03/03(金) 21:20:46ID:???
BASICはMSXで覚えた。
N88-BASICも使った。
PC-8800もさわった。
COBOLもFORTLANも使ったことある。
でも25歳。
0341nobodyさん2006/03/03(金) 21:27:04ID:???
ポケコンで数字インベーダーゲームを打ち込んでたヲヂさんが来ましたよ。
0342nobodyさん2006/03/03(金) 21:32:37ID:???
>>336
教える側が趣味でやってたBASICくらいしか教えられないというミスマッチが教育の現実です。
0343nobodyさん2006/03/03(金) 21:44:38ID:???
>>342
いや、科学部という名のパソコンクラブが放課後に遊んでただけですよ。
0344nobodyさん2006/03/03(金) 21:52:12ID:???
>>342
高校の「数学」の教科書にBASIC載ってるしな。
センター試験でBASIC選ぶと、他の問題に比べてめちゃくちゃ簡単なんだが。
CやJavaは変数の型とかあるから、数学の授業では無理があるだろうけど。
そういう意味ではPHPはうってつけか。
「情報」の授業ってプログラミングやるのかな?
0345nobodyさん2006/03/03(金) 21:56:04ID:???
現場経験も無い世間知らずしか授業出来ないんだからしょうがないよなぁ
中高ぐらいからもっと実践的な講師呼んだ授業やったら学校も楽しそうだなぁ

ってここなんてスレ?
0346nobodyさん2006/03/03(金) 21:59:01ID:???
>>344
word、excel程度の授業しかなくてがっかりした。
>>345
PHPくだ質スレですよ。
0347nobodyさん2006/03/03(金) 22:13:16ID:???
>>345
技術者の取り込みを狙ったのか、高校「情報」の教免は一般試験があったぞ。
今はもうないが。
教育現場も規制緩和して、実技科目に関しては教免なくても
外部の講師を呼べるようにすればいいのに。
0348nobodyさん2006/03/03(金) 23:01:58ID:???
くだ質スレが、ただのくだスレになってるな…
0349nobodyさん2006/03/03(金) 23:35:20ID:???
多少、趣旨を外れても本スレがあるという安心感があるからな。
0350nobodyさん2006/03/03(金) 23:48:32ID:???
じゃあくだらない質問を一つ。
マニュアルのサンプルで

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

という文をよく見かけるんですけど
これってどういう仕組みなんでしょうか?
0351nobodyさん2006/03/03(金) 23:57:26ID:???
>>350
if ($a == 1 or $a == 2) の"or"と仕組みは同じです。

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

ファイルのオープンとか、DBの接続とかで使用することが多いでしょうか。
私はあまり使いませんが。
0352nobodyさん2006/03/04(土) 00:35:17ID:???
PHPの関数とかいろんなもののベンチマーク結果を載せてるサイトないかな。
0353nobodyさん2006/03/04(土) 01:00:17ID:???
私からも、下らない質問をひとつ

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

さぁ、DOTCH?
0354nobodyさん2006/03/04(土) 01:13:51ID:???
>>351
そういえばCを勉強した時に同じような話を聞いた覚えが・・・
ありがとうございます。
0355nobodyさん2006/03/04(土) 01:30:53ID:???
>>354
Cでこんな感じの話?…
Cだと|は後ろが先に評価されるコンパイラがある可能性があるので、あんましこういうのは推奨されてないはず…
うろ覚えでスマソ
0356nobodyさん2006/03/04(土) 01:45:48ID:???
>>353
やってみてくれ
0357nobodyさん2006/03/04(土) 01:58:04ID:???
>>354
Cでそんな書き方するやつにはまずお目にかからないが…
Perlではこれは常套句だな。
0358nobodyさん2006/03/04(土) 02:01:48ID:???
>>355>>357
こういう書き方もあるって感じで、予備知識としての話だったと思います
使わない方がいいとも言われました
0359nobodyさん2006/03/04(土) 11:41:48ID:???
HTMLフォームのhiddenコントロールとしてセッションIDを引き渡す。

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

こういうやり方でユーザー認証などを行う場合、セキュリティ的に問題などありますか?
教えてください。よろしくお願いします。
0360nobodyさん2006/03/04(土) 11:52:06ID:???
>>359
Cookie使えなきゃそれかGETでURLに含めるしかない
0361nobodyさん2006/03/04(土) 11:57:17ID:???
>>359
タイムアウト実装のあるセッション ID を hidden で受け渡すだけなら
問題はないが、他のパラメータには使わないように。

参考: IPA/ISEC セキュアプログラミング講座
ttp://www.ipa.go.jp/security/awareness/vendor/programming/a01_05.html
0362nobodyさん2006/03/04(土) 14:58:31ID:???
セッションID総当たりすれば、ユーザ認証突破可能?

最後まで文字列を操作するかじゃね?
EUCで生成すること自体勧められないけど。SJISで保存するなら最初からSJISで生成すべき。
文字化けが許容出来ないなら、文字コード変換したら負けだよ。
0363nobodyさん2006/03/04(土) 15:38:43ID:???
>362
日本語でおk
0364nobodyさん2006/03/05(日) 00:19:00ID:j6g607oY
http://www.mysql.gr.jp/mysqlml/mysql/msg/12071
>もちろん、クライアント側のアプリでは階層の深さを直接
>提示するでしょうが。ウエブの開発者はツリーをループしながら、
><li></li> と <ul></ul> のタグを深さが増えたり、減ったりする
>毎に、追加します。

これのやり方がいくら考えても分からないのですがどうやったらいいのですか?
0365nobodyさん2006/03/05(日) 00:28:33ID:???
+----------------------+-------+
| 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
0366nobodyさん2006/03/05(日) 00:44:55ID:???
一度に1000人以上のアクセスがあれば
お詫びの文章を出してスクリプトをストップ!
ってのはどうやってやるんだ?
03673642006/03/05(日) 00:53:08ID:???
そーす
http://aazukan.s201.xrea.com/test.txt

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

ここまでやってみました。
0368nobodyさん2006/03/05(日) 01:17:45ID:???
AA図鑑・・・
03693642006/03/05(日) 01:19:49ID:???
>>368
そこに触れるのはヲチ板でよろしく
>>364についてお願いします><
0370nobodyさん2006/03/05(日) 01:46:26ID: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";
}

こんなかんじかな。 デバッグもしてないし適当だから保障しない。参考程度に。
03713702006/03/05(日) 02:19:56ID:???
:echo は echoね
んで
while($depth>=0) {
  echo "</ul>\n";
  $depth--;
}
ね。
03723642006/03/05(日) 02:41:57ID:???
>>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

これでとりあえず動くのですがもうちょっとスマートにできませんか?
0373nobodyさん2006/03/05(日) 02:59:51ID:???
if($depth < $category['depth']) {
$list .= "<ul><li>";
} else {
if($depth > $category['depth']) {
$list .= str_repeat("</li></ul>", $depth - $category['depth']);
}
$list .= "</li><li>";
}
03743642006/03/05(日) 03:03:47ID:???
これでいくことにしました、ありがとうございます。
0375nobodyさん2006/03/05(日) 03:15:29ID:???
いつからここは丸投げスレになったんだ?
0376nobodyさん2006/03/05(日) 04:04:12ID:???
doui
0377nobodyさん2006/03/05(日) 05:24:59ID:8JhBJBZ6
すみません、ちょっと質問なんですが・・・PHPスクリプトをいじってるんですけれど、

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

この $_SERVER['DOCUMENT_ROOT'] を自分のサイトのmain root pathに変更しろとあるんですが、
これはこのままじゃダメなんでしょうか?
ググっても解らず、困っています。
解る方がいらっしゃいましたら教えて下さい。
0378nobodyさん2006/03/05(日) 06:19:26ID:???
>>377
$_SERVER['DOCUMENT_ROOT'] の値がちゃんと取れてるなら、そんままで良いんでね。
取得できない事(環境によっては無いわけでもない)を、作者が考慮して
確実に動くように手動で明示しとけと言ってるのかな。
そのアプリは何?
0379nobodyさん2006/03/05(日) 06:21:09ID:???
>>377
・・・ん?
まずは変えてみたの?変えて駄目だったの?
0380nobodyさん2006/03/05(日) 06:33:28ID:8JhBJBZ6
>>378
ありがとうございます。そのままでも大丈夫なんですか・・・。
じゃあスクリプトが動かない原因は他にありそうです。
実はアメリカのなので私も良く解ってないんですが、
登録したサイトを閲覧できる(?)というものなんです。

>>379
すいません、書き方が悪かったです。
変えようにも、何を変えていいのか解らなかったので。
もしかして/usr/bin/phpなのか?と思って適当に変えてみたりはしたんですが。
的外れだったみたいです。
0381nobodyさん2006/03/05(日) 07:56:49ID:???
>>378
それは自分のWebサーバのドキュメントルートを取得するスーパーグローバル変数だよ
オレの環境では

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

で、ブラウザからアクセスしたら「C:/Program Files/Apache Group/Apache2/htdocs」って表示されたよ
03823782006/03/05(日) 07:59:18ID:???
ごめん、$_SERVERね

あと、ちゃんとheader.phpっていうのはあるのかい?
0383nobodyさん2006/03/05(日) 08:37:22ID:???
会員数万人のDBがあって、その会員リストに随時メールを送ったり
したいんだけど、メールが1日に数万通〜数十万通ともなると、すごい負荷かな??
別のメール配信専用サーバみたいなのを用意したほうがいいんでしょうか。
仮に用意できたとして、どうやってメール作成スクリプトからその配信専用サーバに
メール配信の指示を出せばいいの? メール作成スクリプトで「mb_send_mail」を
実行しちゃったらその鯖から送信されちゃうだろうし・・・。
0384nobodyさん2006/03/05(日) 12:08:41ID:???
>>383
そこまで何もわからないならちょっと自分で勉強してみないと
話が理解できんと思うよ
0385nobodyさん2006/03/05(日) 13:15:17ID:???
>>383

日本語でおk
0386nobodyさん2006/03/05(日) 13:26:20ID:???
>>383
業者に依頼しろ。
無知な人間が適当に作って、情報漏洩なんかした日には、会社つぶれかねんぞ。
0387nobodyさん2006/03/05(日) 13:55:53ID:???
>>383
>別のメール配信専用サーバみたいなのを用意したほうがいいんでしょうか。
ですな。サーバだけじゃなくて回線もね。
あと同じドメイン宛に短時間に大量のメールを出すと、
相手の接続拒否リストに載せられることもある。
その辺も絡めて勉強して、業者に依頼することをお薦め。
(最低限の勉強をしてないと業者の良否判断や注文も出来ないからね)
実際のメールの出し方については、その業者とすりあわせ。
0388nobodyさん2006/03/05(日) 14:27:55ID:???
最低限、MTAの仕組み、SMTP実装、ここいらは理解してこい。
PHPには関係ない。
0389nobodyさん2006/03/05(日) 18:25:30ID:???
>>384-386
無知なバカども、分からないなら「分かりません」と言えばいいのに。知ったかぶるな。
お前らが知ってる程度の知識なら俺も持ってる。端折って書いてるだけ。

>>387 ありがとう。でも、なるべく自前でやりたいんだけど・・・。
>>388 SMTP実装かぁ。プロトコルの話だよね? それを勉強したとして、PHPで実現できる??
0390nobodyさん2006/03/05(日) 18:28:04ID:???
>>389
0391nobodyさん2006/03/05(日) 18:29:32ID:???
>>389
>お前らが知ってる程度の知識なら俺も持ってる。
例えば?
0392nobodyさん2006/03/05(日) 18:36:57ID:???
>>389
あなたをリビングレジェンドに認定します。
0393nobodyさん2006/03/05(日) 18:44:13ID:???
>>389
> >>388 SMTP実装かぁ。プロトコルの話だよね? それを勉強したとして、PHPで実現できる??
お前できないの?バカじゃね?
0394nobodyさん2006/03/05(日) 18:52:04ID:iaaLXl/X
if($_POST['name'] = "") $err.= "名前が入力されてないぞ";

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

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

みたいにさせるにはどうやれば良いでしょうか?
応用力がなくてすみません。
03953842006/03/05(日) 18:55:51ID:???
[訂正]
if($_POST['name'] == "") $err.= "名前が入力されてないぞ";
0396nobodyさん2006/03/05(日) 19:05:58ID:???
>>394
・・・本当にわからないのか?if文が解らないのか、文字列を表示する方法が解らないのか

あと、余談だけど、POSTデータが取得できない場合は取得できてないんだから$_POST['name']
の中身はもちろん空だよね?
だからこれも表示するエラーメッセージは「名前が入力されていません」にしたほうが良いんジャマイカ?
0397nobodyさん2006/03/05(日) 19:10:50ID:???
>>396
俺も初心者なんだが trim()を使うのは駄目かなぁ?
if(trim($_POST['name'] == "")) $err.= "名前が入力されてないぞ";
0398nobodyさん2006/03/05(日) 19:16:21ID:???
>>397
何の意味が!!!
0399nobodyさん2006/03/05(日) 19:28:49ID:???
emptyとか
0400nobodyさん2006/03/05(日) 19:28:56ID:???
>>397
trim()は改行コードとかを除けてくれる便利な関数だけど今回のでは必要無いっぽいぞ?
でも、どう考えてそういう答えに至ったかは解らないけど、自分で考えて何か仮定を立てる
ことの出来るお前は偉い。

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

出来るならemptyか$_POST['name'] == "" とかで判断したほうが良いと思う。
04024012006/03/05(日) 19:50:36ID:???
ごめん、>>397
0403nobodyさん2006/03/05(日) 19:58:27ID:???
そこまでするなら===で比較すればいいわけで
その例ならif(!$_POST['name'])
0404nobodyさん2006/03/05(日) 20:11:32ID:???
>>390-393
知ったかぶりのバカども乙wwwwwwwwwwwwwwwwwwwww

何も具体的なことを言えないヤツの説得力はゼロ。
ウンコなクズは氏ね。
0405nobodyさん2006/03/05(日) 20:24:18ID:???
>>383
OS、メール配信のタイミング、アクションの方法、PHPのバージョン、その他もろもろ記述もし
ないでよく具体的な事が云々言えるなお前。

まぁ、どうせLinux系だろうから、実行のタイミングが決まってるのなら普通にサーバ別にたて
て今のサーバでシェルでsshとPHPファイルの実行をキックさせるようなヤツ書いてcronに突っ込む
だけじゃないのか?
もう出て行ってくれ
0406nobodyさん2006/03/05(日) 20:28:58ID:???
最近いろんなところで
>>404
みたいなアレな奴をみかけるけど、やっぱり時期的な問題?
0407nobodyさん2006/03/05(日) 21:02:37ID:???
一定時間以上起動してるPHPのプロセスを殺す方法ってある?
なんかphp.iniの設定でそういうっぽいのいがあったんだけど
readでブロックとかしてるような待ち状態は消費時間として
カウントされないみたいなんだよね
やっぱ別のプログラムで監視しててサーチアンドデストロイ?
0408nobodyさん2006/03/05(日) 21:08:15ID:???
>>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.= "名前が入力されてないぞ";
で全く問題がないと思うが、これで何が問題あるのかまず説明しろ。
0409nobodyさん2006/03/05(日) 21:10:40ID:???
「めるえもん」という悪魔のサービスがある。

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

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

ユーザー入力の受付は、

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

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

問題があるとしたらそのへん。
04124012006/03/05(日) 21:52:19ID:???
>>408
ごめん、勉強不足でした('A`)
issetってそういう関数だったのか・・・
0413nobodyさん2006/03/05(日) 22:34:52ID:???
>>411
E_ALL対策か。Noticeエラーまでいちいち気にする?
0414nobodyさん2006/03/05(日) 22:56:21ID:???
>>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 .= 'カラですわ';
}
でもいいな。
0415age2006/03/06(月) 01:21:53ID:???
はじめまして、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

です。(スレ違いでしたらすみませんです。。。)
0416nobodyさん2006/03/06(月) 03:22:12ID:???
スレ違いです
0417nobodyさん2006/03/06(月) 03:27:59ID:???
俺とあの子の心もスレ違い〜♪
0418nobodyさん2006/03/06(月) 03:46:43ID:???
>>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

==や!=は案外鬼門だよな。
0419nobodyさん2006/03/06(月) 03:56:43ID:???
require()の対象って、
ドキュメントルートに無くても問題ないのでしょうか?
一応動作しましたが。
0420nobodyさん2006/03/06(月) 04:32:10ID:???
>>419
include_pathについて調べてください
0421nobodyさん2006/03/06(月) 04:36:26ID:???
>>419
むしろ置けるんであればドキュメントルートに置かない方がいいくらいかと。
requireされるだけでなく単独でページとして動作するファイルなら別だけど。
0422nobodyさん2006/03/06(月) 13:37:25ID:???
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()関数でも同様のエラーがでます。
設定をどう弄ればよいか教えてください。
0423nobodyさん2006/03/06(月) 13:47:59ID:???
>>422
>デフォルトで導入されている
大嘘
0424nobodyさん2006/03/06(月) 14:03:10ID:???
>>422
最低限PHPマニュアルくらい読め。全部書いてある。
0425nobodyさん2006/03/06(月) 14:13:55ID:???
php.iniのextension=php_mbstring.dllはコメントを外しているのですが。
他に設定が必要なのですか?
当方windowsXPです。
0426nobodyさん2006/03/06(月) 14:32:06ID:???
>>425
OSは関係ありません
0427nobodyさん2006/03/06(月) 14:32:39ID:???
>>425
本ぐらい買え
0428nobodyさん2006/03/06(月) 14:37:38ID:???
>>425
phpinfoで、mbstringの項目があるかどうか確認せよ。
無ければphp.iniが適切なパスに置かれていないか、Webサーバを再起動していない可能性あり。
0429nobodyさん2006/03/06(月) 14:41:11ID:QzUnKc0K
>>425
423だけが本当の事を言っている。
ひとまずphpinfo()してみたら?
Apacheの再起動を忘れている可能性大。
0430nobodyさん2006/03/06(月) 14:43:20ID:QzUnKc0K
あ、428とかぶった。
04314282006/03/06(月) 15:22:24ID:???
>>430
きれいにかぶると、何かを感じるなw
ま、それだけありきたりの原因ってことだが。
0432nobodyさん2006/03/06(月) 15:36:57ID:???
何こいつ偉そうに
04334252006/03/06(月) 15:54:48ID:???
自己解決しました。
0434nobodyさん2006/03/06(月) 16:08:32ID:???
>>433
ふぃーどばっくって言葉、知ってる?
0435nobodyさん2006/03/06(月) 16:54:06ID:???
知ってますが、そんなことはしません。
04364252006/03/06(月) 16:55:21ID:???
車には興味ないです。
0437nobodyさん2006/03/06(月) 17:19:18ID:???
ふつーに荒らしが沸いてるみたいだな
0438nobodyさん2006/03/06(月) 19:06:06ID:???
phpインストールしたら、最初にやるのは Hello, World じゃなくて
phpinfo() だ。
0439nobodyさん2006/03/06(月) 19:28:03ID:???
だから質問するやつは、ID出せ。
0440nobodyさん2006/03/06(月) 19:39:23ID:???
IDでてない質問に答えるな
0441nobodyさん2006/03/06(月) 19:40:19ID:???
>>438
セキュリティ甘いサーバがわんさか現れそう
0442nobodyさん2006/03/06(月) 20:47:05ID:???
はー季節季節
0443nobodyさん2006/03/07(火) 02:35:01ID:???
>>438
そういえばそうだな・・・まぁ、HelloWorldじゃないにしろ
何か文字を表示するよな普通の言語って・・・
言われて気づいたよ。

スレ違いだけど、毎朝Suicaのペンギンを見て癒されています。
0444nobodyさん2006/03/07(火) 08:17:30ID:???
while(true){
 echo "HelloWorld";
}
ってうってみて文字が表示されたら初期設定はおk
0445nobodyさん2006/03/07(火) 08:43:19ID:???
>>444
愉快犯
0446nobodyさん2006/03/07(火) 09:23:16ID:???
>>438
レンタルサーバなら phpinfo() は使えないことも多いだろ。
0447nobodyさん2006/03/07(火) 10:18:13ID:???
XREAは使えたかな
0448nobodyさん2006/03/07(火) 11:51:24ID:???
array[]=array('a'=>1,'b=>2)って感じの処理を数回した後
現セットarray[]のaとかの値を変えたいのですがどうすればいいのでしょうか?

current(array)['a']とかでいけるかなと思ったのですが駄目でした・・
0449nobodyさん2006/03/07(火) 12:02:05ID:???
$array[ count($array) - 1 ]['a'] 辺りかね。
0450nobodyさん2006/03/07(火) 12:10:42ID:???
>>448
現セットarray[]の意味不明
0451nobodyさん2006/03/07(火) 12:38:31ID:???
array を brray にしたいとか
0452nobodyさん2006/03/07(火) 12:58:46ID:???
>>449
なるほど。ありがとうございました。
0453nobodyさん2006/03/07(火) 14:00:10ID:???
'b=>2
ここでエラーが起こるとは誰も突っ込まないのか
0454nobodyさん2006/03/07(火) 14:15:03ID:???
>>449
おまいさんを今日からエスパーに認定する。
0455nobodyさん2006/03/07(火) 15:03:43ID:???
>>453
それ以前に変数名に$ついてない時点で論外だし
04564482006/03/07(火) 16:00:11ID:???
>>453 >>455
揚げ足取らないでくださいよ^^;
0457nobodyさん2006/03/07(火) 16:30:03ID:???
質問するときは状況を再現できる正確なサンプルコードを提示するのが基本だばかちん
0458nobodyさん2006/03/07(火) 16:36:54ID:???
回答する側も、正確を期すために質問者の文をコピペして
実験することもある。
自分の答えが正しいか確認するために、検索することもある。
0459nobodyさん2006/03/07(火) 16:42:10ID: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
04604592006/03/07(火) 16:49:13ID:???
上記のパッチ済のソースです。
http://aploda.org/dat6/upload413092.txt
0461nobodyさん2006/03/07(火) 17:29:20ID:MKvD8QW3
PHPで暗号/復号を行うライブラリーってありませんか?

因みにwindowsでmd5で暗号化したものをLinuxで読むと
暗号化した文字列との比較が出来ません。
md5ってマシンに依存しするのですか?
0462nobodyさん2006/03/07(火) 18:04:28ID:???
いつからハッシュが暗号になったんだ?
04634592006/03/07(火) 18:16:42ID:???
>>462

揚げ足かよww
0464nobodyさん2006/03/07(火) 18:20:07ID:???
ご教授キタ━━━━(゚∀゚)━━━━!!
0465nobodyさん2006/03/07(火) 18:24:09ID:???
>>422
このスレだけでも読み返せ
0466nobodyさん2006/03/07(火) 18:47:24ID:tn5MgDAQ
フォームから受け取った値をファイル等に書き込む際に、今までhtmlspecialcharsなどを書き込む前にしていたんですが、
出力する際にした方がいいのでしょうか。

なんだったか忘れたんですが、本屋でチラ見した本に書かれていたので。。
0467nobodyさん2006/03/07(火) 18:57:38ID:???
書き込む前
出力する際
???
0468nobodyさん2006/03/07(火) 19:03:25ID:???
フォーム→受け取り→htmlspecialchars→書き込み→表示
これを
フォーム→受け取り→書き込み→htmlspecialchars→表示
にするって事?
0469nobodyさん2006/03/07(火) 19:09:26ID:???
フォーム→受け取り→htmlspecialchars→書き込み→別の機会なりに読み込み→表示

フォーム→受け取り→書き込み→別の機会なりに読み込み→htmlspecialchars→表示
0470nobodyさん2006/03/07(火) 19:12:07ID:???
暗号化ならBASE64に決めっ
暗号化や複号化関数も、きちんと用意されてる。
URLEncodeよりも強度も高く申し分ない。
0471nobodyさん2006/03/07(火) 19:26:31ID:/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を取得するようなシステムを作るにはなにをどうすればいいでしょうか?ご指導よろしくお願いします。
0472nobodyさん2006/03/07(火) 19:41:55ID:???
ゲットだぜ!!
0473nobodyさん2006/03/07(火) 19:43:38ID:???
>>471
・HTMLのformで入力されたURLを受け取るPHPスクリプト(PHPのマニュアル「チュートリアル」の項)
・あるURLのコンテンツを取得するPHPスクリプト(fopen/fsockopen/cURL/PEARのNet関連)
・ある文字列中から特定の条件を満たす文字列の取得(正規表現/文字列処理関数(strstr/strpos/substr))
0474nobodyさん2006/03/07(火) 19:44:46ID:???
>>471
FORMとGETとPOSTをもっと勉強してからに城。
使ってる言葉がむちゃくちゃだ。
0475nobodyさん2006/03/07(火) 19:55:43ID:???
>>473
サンクス
>>474
答えられない初心者がレスつけんなよカス
0476nobodyさん2006/03/07(火) 20:03:24ID:???
>>475>>473の責任だな
0477nobodyさん2006/03/07(火) 20:05:23ID:???
こういうのはスルー汁。
どうせ次々と出来ないことがおきて、また来るんだから最初からスルー。
04784732006/03/07(火) 20:12:48ID:???
スマン、まだ相手の性格まで読み取れるほどのエスパーじゃないので...
でもポインタの提示ぐらいまでは、数行で即答のくだ質の範疇だと俺は思うよ。
# って考えが皮先とかを養成しちまうのか
0479nobodyさん2006/03/07(火) 20:16:50ID:???
>>478
いいんじゃね?くだ質だし。
最近、>>475みたいな荒らし目的の馬鹿がわいてるので
そういうのだけスルーすれば

てか、ここの板なんでID強制にならんのか、誰かしってたら
教えてくれ
0480nobodyさん2006/03/07(火) 20:17:40ID:???
●質問する前に(必ず読みましょう)
・わからない事があれば、まずは自分で調べましょう。
 (最低限マニュアルに目を通し、Googleで検索しましょう)
・質問する前に、もう一度読み返しましょう。質問は具体的になっていますか?
・エラーが出るのであれば、エラーとともに、エラーを再現できるサンプルコード、
 環境(OS、PHPのバージョン、Apacheのバージョンなど)を明記しましょう
・残念ながら、煽ることしか出来ない人もいます。スルーしましょう。
・(゚д゚)<シメジ
0481nobodyさん2006/03/07(火) 20:22:27ID:???
くだ質は気楽に質問して素早く答えが出るのが趣旨なのに
>>474みたいな答える気のない回答者こそ邪魔。
実際余計な煽りがなければ>>475みたいなレスは生まれないしな。


こんなこと書いてると>>474が必死に「本人乙」とか言って来るのかな?ww
0482nobodyさん2006/03/07(火) 20:24:04ID:???
>>481
スルー汁
04834742006/03/07(火) 20:26:25ID:???
>>481
本人乙。アホすぎて話にならんな。死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
0484nobodyさん2006/03/07(火) 20:28:31ID:???
一番の厨房は474の方だったってオチかよw
0485nobodyさん2006/03/07(火) 20:31:55ID:???
>>484
最近、他人の番号騙ってるアホが湧いてるので
そうともいいきれんと思う。
とりあえず、去るまで変なのはスルーってことで
0486nobodyさん2006/03/07(火) 20:34:04ID:???
>>485は諸葛孔明
0487nobodyさん2006/03/07(火) 20:49:32ID:???
ゆとり教育がここまで恐ろしいものだったとは……
0488nobodyさん2006/03/07(火) 20:51:41ID:???
なんでこのスレはことあるごとにゆとり教育の話題があがるんだよwwww
0489nobodyさん2006/03/07(火) 20:56:16ID:???
リア厨リア工には分からないだろうね。
0490nobodyさん2006/03/07(火) 20:57:32ID:???
フロント厨の俺には全てが分かるぜ。
0491nobodyさん2006/03/07(火) 21:16:18ID:???
>>466
必要があれば別にエンコードした結果をファイルに保存してもいいし、
その方がいい場合もある。
その辺はTPO。
0492nobodyさん2006/03/07(火) 21:16:23ID:???
>>490
RealのリアをRearにかけたわけか。見事!
0493nobodyさん2006/03/07(火) 21:18:45ID:???
>>492
自画自賛乙
0494nobodyさん2006/03/07(火) 21:24:29ID:???
自画自賛乙

と言った時の快感が忘れられない。
0495nobodyさん2006/03/07(火) 21:37:36ID:???
ID出ないからどれもこれも全く説得力ない
0496nobodyさん2006/03/07(火) 21:46:54ID:???
Web制作、レン鯖、WebProgはID出ないから荒れまくり
0497nobodyさん2006/03/07(火) 21:49:14ID:???
でも見えてる人には見えてるんでしょ?ID
0498nobodyさん2006/03/07(火) 21:57:44ID:???
名前欄に山崎渉と入れるとIDが出るよ。
0499nobodyさん2006/03/07(火) 21:59:47ID:???
管理側にはそりゃみえるだろうよ。
まぁIDなんざ、動的に割り振られてるIPの前にはいくらでも変えられる。
0500nobodyさん2006/03/07(火) 23:15:26ID:???
>>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);
でいいんじゃない?
0501nobodyさん2006/03/07(火) 23:19:04ID:psJP3on1
WebProg板自治スレッド@WebProg
http://pc8.2ch.net/test/read.cgi/php/1064684350/l50

自治スレで要望だそうぜ!
0502nobodyさん2006/03/07(火) 23:34:57ID:???
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();
}
0503nobodyさん2006/03/08(水) 00:09:50ID:???
>>502
URLの形式かどうかチェックして渡せばいいんじゃないでしょうか
05045022006/03/08(水) 00:19:48ID:???
>>503
ハァ?中学生?んなことはわかってる。具体的な解決方法を聞いてるんだよ。初心者が口出しするな。
0505nobodyさん2006/03/08(水) 00:26:14ID:???
$url="http://www.yahoo.co.jp";

preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $url))
0506nobodyさん2006/03/08(水) 00:28:37ID:???
PearのHTTP_Requestって、中身の画像なんかも一度に取得してくれるのか?
0507nobodyさん2006/03/08(水) 00:54:22ID:???
なんで最近はそのままずばりの回答じゃないと質問者が怒るんだよ
立場わきまえれ
0508nobodyさん2006/03/08(水) 01:08:57ID:???
>>507
>>485
05095022006/03/08(水) 01:30:52ID:???
504は別人です。(荒らすなボケ>>504
妥当性をチェックするのは別にいいんですけど
if (!PEAR::isError($req->sendRequest())) {
のところでエラーチェックしてるのに意味無しなんですよね。
0510nobodyさん2006/03/08(水) 01:34:24ID:???
>>506
しない。HTMLの解析はそもそもHTTP_Requestのお仕事ではないので。

>>508
質問者を装って、すぐさま「自己解決しました」ってやるのもあったな。
05115102006/03/08(水) 01:39:29ID:???
自己解決しました。
0512nobodyさん2006/03/08(水) 01:55:39ID:???
>>511
えーと、どこで笑えばいいのかな?
0513nobodyさん2006/03/08(水) 01:58:40ID:???
>>509
良く判らないんだけど、URLを渡さないでコンストラクトして
後でsetURLメソッドを使ってURLを指定したら駄目なの?
# 妥当性はHTTP_Requestの中では、Net_URL使ってんのかな。
05145132006/03/08(水) 03:38:53ID:???
後指定でも一緒だな。
というより
>>502
>コンストラクタに渡すURLが妥当なものでないと
>エラーチェックする前にエラーを吐いてしまいます。
なんてならないんだが。妥当でないURLは具体的にどんなの?
0515nobodyさん2006/03/08(水) 07:24:40ID:???
質問者は(ageついでに)ID出せ
0516nobodyさん2006/03/08(水) 07:44:41ID:???
>>515
テンプレに追加だな
0517nobodyさん2006/03/08(水) 08:14:38ID:???
>>515-516
前はあったのにいつのまにか消えてるね

回答者はアンカー汁
も追加してくり
0518nobodyさん2006/03/08(水) 10:41:14ID:???
>>517
過去スレ全部見たがID必須のテンプレがついてたことは1度もない。
さては貴様、本スレと勘違いしておるな?
0519nobodyさん2006/03/08(水) 10:54:53ID:???
>>518
過去の事はどうでも良い。
これから先、どう生きるかが問題だ。
0520nobodyさん2006/03/08(水) 10:56:30ID:???
$d = '&1&&2&&3&&4&&5&&6&&7&';
のように、「&[^&]&」という値の組み合わせが羅列されている文字列から
preg_replaceを使って、「&1&&2&&3&&4&&5&」のように先頭から最大で5組の
値を取り出すにはどのようにすればいいでしょうか。

私の試したコード(これではダメでした)
$d = preg_replace('((?:(?:&[^&]&){1}?){,5}?)', '\1', $d);
0521nobodyさん2006/03/08(水) 11:03:18ID:???
>>520
print preg_replace('/^((?:\&[^&]*\&){0,5}).*/', '\1', $d);
こう?
0522nobodyさん2006/03/08(水) 11:16:26ID:???
>>481
フォームとGETとPOSTの勉強しろってのは十分な回答だと思うが…。
0523nobodyさん2006/03/08(水) 11:19:10ID:???
ゲットなんてなれなれしい言葉で質問するからわかりにくいんだよ
GET POST という用語がわかってれば、そんな言葉は使わないだろ
05245202006/03/08(水) 11:19:23ID:???
>>521
で、できました!!感激です!!
ご回答ありがとうございました。何時間考えてもわからなかったので
非常に助かりました。
05255002006/03/08(水) 11:24:21ID:???
>>522
真面目に答えた漏れの立場は…
0526nobodyさん2006/03/08(水) 11:24:24ID:LmEgCiLJ
配列の関数で
Array([0]=>ちんこ [1]=>まんこ)
の戻り値が返ったときにそれぞれ
ちんこを$tin
まんこを$man
と置くにはどうしたら良いでしょうか
0527nobodyさん2006/03/08(水) 11:28:06ID:???
$asoko = array('ち○こ', 'ま○こ');
list($tin, $man) = $asoko;
0528nobodyさん2006/03/08(水) 11:30:55ID:???
「ページをゲットする」は言うだろw

>>475のレスが厨なだけで>>471の質問自体は非はない。初心者向けのスレだし。
もちろん的確な回答をした奴も正解。乙
0529nobodyさん2006/03/08(水) 11:31:28ID:???
>>525
うーん、おれはあのURLにスラッシュ区切りでパラメータ並べたときの
パラメータの取得方法のことをいってるのかと思ったけどなー。
0530nobodyさん2006/03/08(水) 11:32:34ID:???
ようはスパイダリングの話なのかな。
0531nobodyさん2006/03/08(水) 11:32:51ID:???
>>525
乙。まぁくだ質だし、質問者もアレな奴が多いから
あまり気にしない方がいいと思うよ。最近特に変なのがいるし。
0532nobodyさん2006/03/08(水) 11:32:57ID:LmEgCiLJ
>>527
出来ましたありがとうございます
05335252006/03/08(水) 11:40:36ID:???
なるほど、なるほど。参考になります。
0534nobodyさん2006/03/08(水) 11:46:58ID:???
>>529
それだとわざわざhiddenの内容を示す意味って無いんじゃないか?
0535nobodyさん2006/03/08(水) 11:47:02ID:???
>>527
もっとわかりやすくするなら、
$asoko = array('ち○こ', 'ま○こ');
$tin = $asoko[0];
$man = $asoko[1];
でもおけぃ
05364812006/03/08(水) 11:57:41ID:???
>>522
もちろん、471がPOSTやGETの勉強をした方がいいのは事実だし、471自身へのアドバイスとしては的確。
だけど、質問に答えないで別のことを咎めるのはスレの趣旨にそぐわないと思う。それだけ
0537nobodyさん2006/03/08(水) 12:00:04ID:???
>>536
その言葉はおまえ自身に返ってくるようなw
0538nobodyさん2006/03/08(水) 12:14:31ID:???
スレの趣旨?

PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
0539nobodyさん2006/03/08(水) 12:19:15ID:???
素早く回答が出ることが趣旨になった覚えはまったく無いんだが…
0540nobodyさん2006/03/08(水) 13:25:55ID:???
じゃあ次スレは回答禁止にするか?
0541nobodyさん2006/03/08(水) 13:32:20ID:???
極論でしか話せない人が約一名いるな。
まあまたーりしろ。
0542nobodyさん2006/03/08(水) 13:39:38ID:???
まぁ、あんなのもこんなのも、
全部含めて和気藹々
0543nobodyさん2006/03/08(水) 13:58:48ID:???
腋毛愛愛
0544nobodyさん2006/03/08(水) 14:34:19ID:???
自宅のWin2000PCにApache2とPHP4走らせてるんですが
同じPCにPHP5を追加してPHP4と共存させることってできますか?
0545nobodyさん2006/03/08(水) 14:40:13ID:???
>>544
無理でゴンス
0546nobodyさん2006/03/08(水) 14:50:16ID:???
拡張子を.php4と.php5とかにして振り分けるってのなら最近なんかの雑誌で見かけた気はする
0547nobodyさん2006/03/08(水) 15:15:29ID:???
3と4なら共存させる仕組みあったのにねぇ
これじゃいつまでたっても5が普及しない

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

Win2000ってことはテストで動作比較したいんでしょ。
なら手軽に分離できる別Portで切り替えを薦める。
0549nobodyさん2006/03/08(水) 15:26:25ID:???
コンテンツアドバイザのパスワードをレジストリエディタでみようとしたら
パスワードがバイナリ値というので表示されていました。
バイナリ値を普通の言葉にできるソフトや、そういった解説をしている
HPなどはありますか?
0550nobodyさん2006/03/08(水) 15:50:21ID:???
>>549
どの辺がPHP?
0551nobodyさん2006/03/08(水) 15:54:07ID:???
>>549
子供はHなサイトを見ちゃイカンよ。
0552nobodyさん2006/03/08(水) 15:55:00ID:???
ある日付から月末日を算出するにはどんな方法があるでしょうか?
色々考えてみたのですが、非常に面倒な方法になってしまいました。

例2005-03-20 → 2005-03-31、2006-01-20 → 2006-01-31
0553nobodyさん2006/03/08(水) 15:58:52ID:???
「php 日付 チェック」でググルとかしてみれ・・
0554nobodyさん2006/03/08(水) 16:06:17ID:vjc8ygyC
>>552
ヒント:翌月1日の1日前の日付が当月の末日
0555nobodyさん2006/03/08(水) 16:15:40ID:???
>>552
http://php.benscom.com/manual/ja/function.date.php
0556nobodyさん2006/03/08(水) 16:24:15ID:???
>>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);
0557nobodyさん2006/03/08(水) 16:31:53ID:???
$foo = '2005-03-20';
$t = explode('-', $foo);
$bar = date('Y-m-t', mktime(0, 0, 0, $t[1], $t[2], $t[3] ))
;
echo $bar;
0558nobodyさん2006/03/08(水) 16:32:58ID:???
あ、ごめん$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;
0559nobodyさん2006/03/08(水) 16:40:34ID:???
PHP4.3とMySQL3.23でシステム作ってます。

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

mysql_fetch_array() で取得した値が全てstring型になっていたため、
一部のパラメータのみを書き換えてINSERTやUPDATEすると
エラーになり苦労させられたのですが、
この辺どのように回避していますか?

また、PEARを使用すれば上記は回避できるのでしょうか?
0560nobodyさん2006/03/08(水) 16:49:00ID:???
>>555
"指定した月の日数。"なんてオプションがあるんだな。
質問者ではないがありがとう。

print date(t,strtotime("10 April 2006"));
0561nobodyさん2006/03/08(水) 16:56:30ID:???
>>560
エラーになるかと思ったけど動くんだ、それ・・・
0562nobodyさん2006/03/08(水) 16:58:53ID:???
どのへんでエラーになると思ったのかな
tが裸だから?
0563nobodyさん2006/03/08(水) 16:59:17ID:???
>>559
PEAR::DBではクエリ作成の機能を持ってない。
ADOdbではFetchField()でDBネイティブの各カラムのデータ型の取得と、
MetaType()でその型を汎用的な抽象表現への変換ができるようになってる。
PHPの変数は型を厳密に規定できないので、あらかじめDBからテーブルの型を
取得しておこう、って発想なんだと思う。
05645602006/03/08(水) 17:05:25ID:???
>>560
今月でいいなら
print date(t);
でも可

print date(t,strtotime("April 2006"));
でも動くし

>>561
俺もなんで動かないと思ったか知りたい
責めてるんじゃなくて、もっといい記述方法があれば知りたいのだ
0565nobodyさん2006/03/08(水) 17:07:18ID:???
>>564
561じゃないけど、第一引数はちゃんと'〜'なり"〜"で括りましょう。
0566nobodyさん2006/03/08(水) 17:09:55ID:???
>>565
thnx
明示しとけって事ね
05675622006/03/08(水) 17:10:28ID:???
ま、やっぱり裸だったとこかね。
0568nobodyさん2006/03/08(水) 17:27:19ID:???
>>566
明示っつーか、define未定義の動作に頼った記法はあんま良くないよ。
05695592006/03/08(水) 17:29:49ID:???
>>563
レスどうもです。
DB_common::autoPrepare() でINSERT/UPDATEのクエリを
作ってくれるようなんですが、
使うに当たり疑問になりまして。。。
結局型をあわせてやらにゃいかんのかな〜

今PEARのDB関係のメソッド漁ってますが、
型を取得するメソッドが見つからないんですが(;´д⊂
今のままでいっかなぁ・・・
0570nobodyさん2006/03/08(水) 17:42:09ID:???
>>569
ごめん。PEAR::DBでもクエリ作成できたのね。吊ってくる…
autoPrepare()は型を含んだクエリテンプレートの自動生成みたいよ。
実際のクエリ生成はそのテンプレートを元にexecute()で生成するぽい。
0571nobodyさん2006/03/08(水) 17:59:00ID:???
>>570
DB_common::getAll() なり何なりで取得した配列が
全部DBと一致する型・・・とは言わないまでも、
intがstringになってたりしなければ問題ないんですけどね〜

もうちょっと揉まれてきます(´д`)
0572nobodyさん2006/03/08(水) 19:26:32ID:???
string date ( string format [, int timestamp] )
05735592006/03/08(水) 19:34:59ID:???
ガイシュツかもしれないけど一応報告。

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次第じゃエラーですなヽ(;´д`)ノ
0574質問2006/03/08(水) 20:55:12ID:MC7d+fja
PHPでJavascriptのtoStringメソッドみたいなことをさせるにはどうしたらいいんやろ?
具体的に言うと文字列を10進数とか16進数とかエンティティ化する方法はないですか?
0575nobodyさん2006/03/08(水) 21:17:17ID:???
>>574
つ【マニュアル】
0576nobodyさん2006/03/08(水) 21:40:22ID:74wPkS3/
Array ( [0] => Array ( [0] => [1] => ) [1] => Array ( [0] => a [1] => b ) )
このときaを$pen bを$con
という変数に置くにはどうしたらよいでしょうか?
0577nobodyさん2006/03/08(水) 21:46:50ID:???
>>576
できない。
0578nobodyさん2006/03/08(水) 21:49:31ID:74wPkS3/
ええ?そうなんですか・・・ありがとうございました
0579nobodyさん2006/03/08(水) 21:50:45ID:???
マテマテww
0580nobodyさん2006/03/08(水) 21:51:00ID:???
>>574
ord()
0581nobodyさん2006/03/08(水) 21:54:42ID:???
>>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];
05825812006/03/08(水) 22:08:04ID:???
アラヤダ
エンティティ化でセミコロンつけ忘れちゃった
0583nobodyさん2006/03/08(水) 22:09:04ID:74wPkS3/
>>582
できますたありがとう
0584nobodyさん2006/03/08(水) 22:16:53ID:???
掲示板やアクセス解析などを作っているのですが、
データベースを使うメリットを教えてください。
それから、今後の普及予想もお願いします。
やはりデータベースを利用したプログラムが増えていくのですか?
0585nobodyさん2006/03/08(水) 22:29:01ID:???
>>584
メリット:安定して動作し、データ破損や消失が少なく、データ件数が多い場合に検索・表示が高速
普及:とっくに普及してると思うが…20年前の人ですか!?
DB利用:これは普及とかは関係なく、システム規模などの条件でどっちを使うか決めるもの
0586nobodyさん2006/03/08(水) 22:29:10ID:???
>>584
掲示板だろうと、アクセス解析だろうと、
データを何かしらの方法で保存して、それを参照すれば、すなわちデータベース

お!君も既に使ってんジャンSUGEEEEEEEEEEEEEeeeeeeeeeeee!。





















と、煽ってみる
0587nobodyさん2006/03/08(水) 22:48:29ID:???
PHPで他のサーバーにあるページにPOST送信するにはどうすればいいのでしょうか?
socket関数を使うというようなことを聞いたことがありますがいまいちやり方がわかりません。
ちなみにhtmlでformタグのactionで指定するのでは目的は達成できないので、phpでよろしくお願いします。
0588nobodyさん2006/03/08(水) 23:07:29ID:???
>>587
PEARのHTTP_Request
05895872006/03/08(水) 23:24:24ID:???
pear使わないと無理ですか?
xreaでは使えないかなぁ・・・
0590nobodyさん2006/03/08(水) 23:34:28ID:???
>>589
>pear使わないと無理ですか?
pearを使わずに自作することは可能。
ただし、それにはHTTPを理解する必要がある。

>xreaでは使えないかなぁ・・・
どこであろうとpearは使える。
例え"pearコマンドでインストール"できないサーバでも、
必要なパッケージを適当な場所に置けばよい。
なぜならpearはPHPで書かれたライブラリ群に過ぎないから。

xreaで使えるかどうかについては板違い。
05915902006/03/08(水) 23:35:26ID:???
しまったID未表示に回答しちまった
0592nobodyさん2006/03/08(水) 23:39:07ID:???
( ´∀`)σ)д`)
0593nobodyさん2006/03/08(水) 23:45:45ID:MQhgDV9r
HTMLのAタグやIMGタグの相対パスを絶対パスに変換する
ライブラリってありますか?
PEARで探したところそれらしきものはなさそうでした。
0594nobodyさん2006/03/08(水) 23:46:16ID:???
なんで皆自作したがるんだ。
0595nobodyさん2006/03/08(水) 23:48:16ID:???
>>594
PEARの手動インストール方法を知らないからじゃない?
0596nobodyさん2006/03/08(水) 23:51:32ID:???
>>594
車輪が好きなんじゃない?
0597nobodyさん2006/03/08(水) 23:53:19ID:???
レン鯖にコマンドラインで接続なんてできるのか?
0598nobodyさん2006/03/08(水) 23:54:52ID:???
>>597
無理
0599nobodyさん2006/03/08(水) 23:56:19ID:???
>>593
Net_URLのresolvePath
0600nobodyさん2006/03/09(木) 00:02:23ID:???
>>597-598
出来る
たとえばSAKURA Internet(http://www.sakura.ne.jp/)
はtelnet/ssh接続で接続できるサービスを提供している
レン鯖といっても専用サバなら当然出来ると思うが。

板違いすまない。
0601nobodyさん2006/03/09(木) 00:06:22ID:???
板違いついでにxreaもsshなら接続できる
0602nobodyさん2006/03/09(木) 00:26:43ID:???
え、マジで?
それは知らなかった。早速やってみよう。
0603nobodyさん2006/03/09(木) 01:07:10ID:???
>>590
HTTP_Requestでできました!!パッケージのインストールすら初心者には大変なもので・・・結構時間かかりました。
本当にありがとうございました!!
0604nobodyさん2006/03/09(木) 01:10:24ID:???
ド初心者が1時間半でインストール〜POST送信までできれば上出来だな。
0605nobodyさん2006/03/09(木) 01:10:53ID:???
20M程度のログファイルをphpで整形するスクリプトを作っているのですがメモリ関係で躓いています。
ファイルをfile関数で取り込むと

error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 15920437 bytes)

と表示されます。
調べてみるとmemory_limitを増やせば解決できるそうなのですが、
増やすとリスクが増えたりする可能性があるきがしましてできれば他の方法で解決を図りたいのですが、

何か良い方法はございますでしょうか。
0606nobodyさん2006/03/09(木) 01:13:54ID:???
file関数は一気にその20MBをメモリに乗せるものだから当たり前だろ。

どういう整形をするかまったく書かれてないので、相談に乗りにくいのだが、
fopenで開いて、1行単位、もしくは、指定容量単位で処理すべき。
0607605じゃないよ2006/03/09(木) 01:17:37ID:???
>>606
おまえニートの癖になんでそんなにえらそうなんだ?PCオタクがそんなに偉いのかよ。
0608nobodyさん2006/03/09(木) 01:19:59ID:dcUpKQFS
別にPEARなんかサイトからダウンロードしてそのまま置けばいいだけじゃん。
0609nobodyさん2006/03/09(木) 01:20:04ID:???
>>607
お前の方が偉そうだ
0610nobodyさん2006/03/09(木) 01:21:00ID:???
>>608
推奨じゃないから
0611nobodyさん2006/03/09(木) 01:21:30ID:???
>>607=>>605
0612nobodyさん2006/03/09(木) 01:28:38ID:???
>>607=ツンデレ
0613nobodyさん2006/03/09(木) 01:32:41ID:SHZr9acF
PEARについて詳しくかかれた本ってあります?
オンラインものじゃなくて、本があったほうがうれしいんで・・・
0614nobodyさん2006/03/09(木) 01:35:37ID:???
>>613
PHP関連の書籍(但しPHP出版系お断り)第2版
http://pc8.2ch.net/test/read.cgi/php/1117066073/

参考書籍推薦スレッド
http://pc8.2ch.net/test/read.cgi/php/1014836425/
0615nobodyさん2006/03/09(木) 01:46:10ID:???
PEARって便利なんだなあ
うふひひふ
0616nobodyさん2006/03/09(木) 02:02:35ID:???
http://pc8.2ch.net/test/read.cgi/php/1140786348/
これをparse_urlで分解するとpath には/test/read.cgi/php/1140786348/が戻されますが、
真ん中の「php」の部分だけを戻したいときはどうしたらいいでしょう。
0617nobodyさん2006/03/09(木) 02:07:54ID:???
>>616
○投げスレではない。
あとIDだして質問しろ
0618nobodyさん2006/03/09(木) 02:11:01ID:???
617 名前:nobodyさん[sage] 投稿日:2006/03/09(木) 02:07:54 ID:???
>>616
○投げスレではない。
あとIDだして質問しろ
0619nobodyさん2006/03/09(木) 02:12:32ID:???
俺も前丸投げスレじゃないって言われたんだけどどういう意味なの?自治したいだけなの?
0620nobodyさん2006/03/09(木) 02:16:29ID:???
>>619
質問スレの自治厨なんて質問に答えられない奴に決まってんだろw
06216172006/03/09(木) 02:19:26ID:???
>>619-620
死ねよバカども
頭悪いくせに2chくるなよwwww氏ね。逝け。クズが。
0622nobodyさん2006/03/09(木) 02:50:21ID:dcUpKQFS
コールバック関数に引数を渡したいのですが、
どうやれば良いでしょうか?
0623nobodyさん2006/03/09(木) 03:07:54ID:???
無理
0624nobodyさん2006/03/09(木) 03:17:09ID:???
>>616
"/"でsplitして、ゴニョゴニョする

というかその条件だけだとどういう方法がベストか分からないかも
0625nobodyさん2006/03/09(木) 04:07:23ID:???
>>622
カプセル化したのをグローバルに使えば?
0626nobodyさん2006/03/09(木) 07:59:21ID:???
>>561
ちゃんとNoticeが表示されるよ
みんなNotice消してるのかな
0627nobodyさん2006/03/09(木) 08:10:27ID:???
php.ini の デフォルトではNoticeも表示されるだろ
消す意味あるの?

たまに配布されているphpスクリプトでもNoticeエラーでまくることあるけど、
エラーは全て表示でコーディングした方がいいよ

0628nobodyさん2006/03/09(木) 09:49:04ID:???
Noticeなんて表示させなきゃ問題ないじゃん
出ても動くんだからさ
0629nobodyさん2006/03/09(木) 09:59:37ID:???
>>628
Warningだって止まりはしないので、表示させなければ問題なしですか。
0630nobodyさん2006/03/09(木) 10:02:23ID:???
Errorだって無視すれば・・・
0631nobodyさん2006/03/09(木) 10:18:29ID:???
>>627
「最近の」デフォルトな。以前はデフォルトじゃなかった。
昨今のPHPブームでNotice出しとかなきゃミスコーディングするやつが続出したんだろ。
PHPなんて本来お手軽に作れるからこそ価値あるものだし、元々の言語構造的に
厳密にコーディングしたところでかなり無駄なんだからわざわざ出すもんじゃないんだがな>Notice
06326272006/03/09(木) 12:23:00ID:???
>>631
そうか?
一般の他の言語なら動けばいいだけだ。
しかし、phpはWebプログラミング用の言語であり、他言語との連携も重視されている。
言語構造的に正しくコーディングすることはセキュリティホールの発生確率を下げることになる。

以前はデフォルトじゃなかった、というが、以前はGETで送信されてきた「hoge」が、$hoge にそのまま入っていたよね。
そして、Noticeエラーも出ないから変数の初期化忘れても気が付かないわけだ。
その2つが組み合わされたら即大変危険なセキュリティホールの完成だったじゃないか。
0633nobodyさん2006/03/09(木) 12:29:30ID:???
noticeの意味考えろや
せいぜい「通知」
気になる人は治しとけってだけ
0634nobodyさん2006/03/09(木) 12:36:57ID:???
>>633
へぇー
変数の初期化をしないことは普通の言語では重大なエラーに相当するんだけどね

おまいさんは、Apacheのログの Notice 全部記録されなくて困らないの?

プログラミング言語を考える時に、もとの単語の意味なんて気にしちゃ駄目。
0635nobodyさん2006/03/09(木) 12:44:57ID:???
ま、下らん煽りあいはやめとけ。
どっちが穴を防げるかっつったら議論の余地も無いだろ。
0636nobodyさん2006/03/09(木) 12:56:51ID:???
>>632
register_globalsがOFFになったのは随分前の話。これは本当にセキュリティホール。
NoticeがデフォルトONになったのはつい先日の話。これはへたくそプログラマが増えたせい。
0637nobodyさん2006/03/09(木) 13:47:54ID:???
言語なんてただの手段。
堅牢なプログラムが必要なら堅牢な組み方しろよ。言語関係なく。
0638nobodyさん2006/03/09(木) 14:06:11ID:???
E_STRICTを付けるか、display_errors = Offかのどっちかだろ。
0639nobodyさん2006/03/09(木) 14:19:09ID:31uVLi9S
HTTP_RequestでaddPostDataやsendRequestを使ってPOST送信するとサーバー側のIPからPOSTされたことになりますよね?
それを使用者のIPでPOSTするにはどうすればいいんでしょうか?
0640nobodyさん2006/03/09(木) 14:31:41ID:???
使用者というかクライアントだろ。
<FORM>タグでフォームを用意して、ユーザーにSUBMITボタンおしてもらう。
PHP使わbネくてもできるb諱B
0641nobodybウん2006/03/09(木) 14:35:46ID:31uVLi9S
>>640
それじゃあやりたいことができないんですよ・・・
0642nobodyさん2006/03/09(木) 14:36:00ID:X3uNYaoU
こんにちわ。PHPで引数を送りたいのですが、
現在file_get_contents("hoge.php?id=35")でやっています。
しかし、いちいちファイルを読み込む為時間がかかります。
引数だけ送ってファイルを読み込みたくない場合はどうすればよい
でしょうか。
0643nobodyさん2006/03/09(木) 14:36:41ID:???
>>642
file_get_contents("hoge.php?id=5");
になおす
0644nobodyさん2006/03/09(木) 14:37:26ID:???
セッションのことがいまいちわからないんですが、
わかりやすく解説しているサイトなどはないでしょうか。
0645nobodyさん2006/03/09(木) 14:37:27ID:???
>>641
POSTの仕組み勉強しなさい。
0646nobodyさん2006/03/09(木) 14:38:33ID:???
>>645
答えられないの?
0647nobodyさん2006/03/09(木) 14:39:52ID:???
>>646
>>645が答え。
車で空飛ぶにはどうしたらいいでしょうといわれても
車とはなにか学べとしか言えん。
0648nobodyさん2006/03/09(木) 14:40:30ID:???
>>646
原理的に無理、と遠まわしに言ってることにも気が付かないか
0649nobodyさん2006/03/09(木) 14:43:24ID:???
悔しくて2連投とかw
0650nobodyさん2006/03/09(木) 14:43:55ID:???
つーか普通にできるけどな
0651nobodyさん2006/03/09(木) 14:45:11ID:???
ヤフオクのストア管理画面とかログインにそれつかってるよな。
当然出る警告がウザイ。
0652nobodyさん2006/03/09(木) 14:46:48ID:???
まあでもPHPの仕事じゃないと思われ。
0653nobodyさん2006/03/09(木) 14:50:03ID:???
HTTP_Request::addHeader()
とか?
0654nobodyさん2006/03/09(木) 14:52:15ID:???
>>652
だな。perlの仕事だ。
0655nobodyさん2006/03/09(木) 14:58:11ID:???
Perlつえーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
0656nobodyさん2006/03/09(木) 15:00:46ID:???
あれだ、Perl本体インストールさせてPOSTするスクリプトダウンロードさせて、実行させるんだろ!
天才だな
0657nobodyさん2006/03/09(木) 15:03:28ID:???
それphpでもできるんじゃね?
0658nobodyさん2006/03/09(木) 15:16:55ID:???
できるけど、面倒すぎてユーザーが拒否すると思う
0659nobodyさん2006/03/09(木) 15:22:24ID:???
>まあでもPHPの仕事じゃないと思われ。
なんの仕事?
0660nobodyさん2006/03/09(木) 15:34:55ID:???
>>659
java
0661nobodyさん2006/03/09(木) 16:15:43ID:???
>>659
TCP/IPスタック
0662nobodyさん2006/03/09(木) 19:38:32ID:???
>>1-661
自作自演乙
0663nobodyさん2006/03/09(木) 20:55:15ID:???
シマンネ
0664nobodyさん2006/03/09(木) 21:03:05ID:???
header()関数で、
header('Server: unknown');
のようにして、サーバ環境を隠蔽しようとしたのですが、うまくいきません。
エラーが出るわけではないのですが、Server: Apache/1.3.34 PHP/5.1.2の
ようにレスポンスが帰ってきます。
header()関数でサーバ環境を隠蔽するにはどのようにすればいいでしょうか。
0665nobodyさん2006/03/09(木) 21:08:01ID:???
>>664
_
0666nobodyさん2006/03/09(木) 21:10:18ID:???
>>665
miriですかぁ…
それは、PHPではということですか?
0667nobodyさん2006/03/09(木) 21:20:48ID:???
皮先うざすぎ
消えろ
0668nobodyさん2006/03/09(木) 21:23:37ID:???
さいきんの厨房はカルシウム不足で切れやすいというが
それと同じくして無能な人間がふえているのも現状だと言える。
0669nobodyさん2006/03/09(木) 21:25:10ID:???
>>668
自己紹介とかいらんのや
0670nobodyさん2006/03/09(木) 21:36:09ID:???
>>664
ブラウザに「Server: Apache/1.3.34 PHP/5.1.2」なんて情報渡してるんだっけ?
06716642006/03/09(木) 21:39:40ID:???
>>670
はい。firefoxなどのブラウザで見るぶんには意識することはありませんが、
ほとんどのサーバはヘッダ情報として「Server: Apache/1.3.34 PHP/5.1.2」
のような情報を送信します。
0672nobodyさん2006/03/09(木) 21:41:29ID:???
htaccessに
Header Set
06736642006/03/09(木) 21:51:11ID:???
>>672
Apache側の設定をいじるわけですね。
Header Setでググってきます。ありがとうございました。
0674nobodyさん2006/03/09(木) 21:56:26ID:???
>>670
環境変数のSERVER_SOFTWAREのことジャマイカ?
最近の鯖管理者のトレンドとしてはSERVER_SOFTWAREで
全ての情報を出さず、Apacheとだけしている、、ラシイ
0675nobodyさん2006/03/10(金) 00:18:54ID:???
=========================
<?php
/*?>*/
?>
↑これだと問題ない。当たり前だ
=========================
だけど
=========================
<?php
//?>
?>
↑コメント以降は評価しないはずなんじゃないの?
=========================
?>
=========================
って出力されちゃう。
おかしくね?php4.3.11
0676nobodyさん2006/03/10(金) 00:43:28ID:???
>>675
正常。
「//」でそれ以降は評価しない、というのはPHPの命令部の話であって
PHPタグはコメントの評価よりも先に解釈されている。
だから // ?> でのコメント部分は //「 」?> この「〜」部分だけ。

それから
/* ?> */
?>
ってやつのコメント範囲は
/*「 ?> */
?>」
ここまで。(後ろの */ はPHPタグ外なのでHTMLに*/と書かれている状態)
つまり、それはコメントが閉じてない状態になっているため、以降が全部見えてない。
0677nobodyさん2006/03/10(金) 00:49:21ID:???
横槍だけど
print "?>";
print '?>';
は出来るんだね
06786752006/03/10(金) 00:53:31ID:???
>>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でどうにかするっていうのは出来たけどいまいちスマートじゃない。
変数「名」を取得して、特定の文字列を付け足した新たな変数を作るという部分で悩んでるんだけど、なんかいい方法はないでしょうか?
0679nobodyさん2006/03/10(金) 01:01:19ID:arwUV0AH
>>672
>>664じゃないけど知りたくなってググったがわからん。後学のために教えてくれ。
0680nobodyさん2006/03/10(金) 01:02:09ID:???
>>678
変数名のセットはともかく「取得」ってのは「どっから??」って思うのでこれはパス。
とりあえずこんな感じでどうか。
foreach(array("a", "b", "c") as $env) {
 ${"{$env}_plus"} = "${$env}_tuketashi";
}
0681nobodyさん2006/03/10(金) 01:12:37ID:???
>>678
俺はHTMLソースを表に出さないようにコメント化して非表示にしたり、
HTMLソースとしては見せたくない内部的なコメントを書くのに<!-- -->を使わず
<html>
<?php /* ここからコメントアウト?>
<div>
</div>
<?php ここまでコメントアウト */?>
とか
<div>
<?php //項目名 ?><span></span>
<table>
みたいなHTMLもたまに使うよ。
0682nobodyさん2006/03/10(金) 01:20:16ID:???
>>679
すぐ検索できたぞ・・
おれもphp関係ないけど興味あったので調べてみた
http://www.heeha.ws/index.php?Apache%B4%D8%B7%B8
はまとまってるんじゃないかな
0683nobodyさん2006/03/10(金) 01:20:56ID:???
>>682
そこにも書いてあるけどapache側で完全に出ないようにしないと意味無いよね・・
0684nobodyさん2006/03/10(金) 01:31:26ID:???
>>682
thx
06856782006/03/10(金) 01:54:26ID:???
>>680
たしかに取得という言い方はちょっと変ですね。
$aという変数があったら、「$a」から「$」をとった部分を文字列として「a」として取り出せないかな。と。
こういうことを言いたかった。

で、ソースの方ですが、なるほど。
こういう感じで$(ドル)重ねちゃうんですね。こんなやり方もあったんだ。
ただ、やっぱり引数に与える文字列は手動で、ってことになっちゃうんですね・・・
それでも最初に配列を作っておけばいいから、かなりすっきりしますね。

受け取った値を表示用に整形して元の値はそのまま残しておきたいってケースが結構あるんです。
それで、元の変数に手を加えて名前をちょっとだけ変えた変数を生成ってやりたいんですよ。
>>681
いただきます
0686nobodyさん2006/03/10(金) 01:57:13ID:JMSIppfw
2日間試行錯誤してみましたがわからなかったので教えていただけると嬉しいです。
「?????」
のようなUnicode10進で書かれた文章を、
「あいうえお」
という形に変換、またはその逆を行いたいのですが、どのように行えば良いのでしょうか。
06876862006/03/10(金) 01:59:35ID:JMSIppfw
すいません。化けてしまいました。

「?????」

「&#12354;&#12356;&#12358;&#12360;&#12362;」

です。
0688nobodyさん2006/03/10(金) 03:10:33ID:???
>>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
0689nobodyさん2006/03/10(金) 03:48:26ID:???
xxxxx.xxxxx.jp

アクセスログでこういうリモートホストがあった場合に、
これが属性JPなのか汎用JPなのか判別するいい方法ありませんか。
リモートホストをドメインでグルーピングしたいんですが。
0690nobodyさん2006/03/10(金) 03:58:00ID:???
>>689
co.jp
or.jp
gr.jp
ac.jp
ed.jp
ne.jp
かどうかで判断すればいいんじゃないのかな・・
これで全部かは知らんけど
0691nobodyさん2006/03/10(金) 04:17:37ID:???
>>689
リモホをドットで区切って後ろから二つ目が2文字なら属性っていうのはどうよ
gTLDじゃないっていう前提が必要だが
06926902006/03/10(金) 04:27:21ID:???
>>689
http://www.nic.ad.jp/ja/dom/basics.html
がまとまってそうだから読んでみれば?
法則自体は難しくないから.jpだけなら比較的簡単に作れるんじゃない
0693nobodyさん2006/03/10(金) 04:40:42ID:???
>>690-692
ありがとうございます
691さんのやり方使おうと思ったんですが、地域型ドメインなんていう厄介なものもあるんですね
検討してみます
0694nobodyさん2006/03/10(金) 05:35:55ID:???
>>693
691の提示しているやり方でなんら問題ない。
http://jprs.jp/info/jp-dom/character.html
06956942006/03/10(金) 05:45:18ID:???
ああ、汎用JPドメインと属性型地域型JPドメインの区別も必要な訳か。
これの区別は難しいと思うよ。
06966942006/03/10(金) 05:48:20ID:???
×属性型地域型JPドメイン
○地域型JPドメイン
ごめん頭回ってない。もう居ぬわ。
0697nobodyさん2006/03/10(金) 06:43:32ID:+ksaxYfx
http://php.s3.to/bbs/emoji.phps

このプログラムを調べています。

$wを何もしなくても0と1の配列に別れていますが、これはどういうことですか?


この定義していないのに配列で扱うというのは、なぜですか?これを配列で定義すると、どうに分けられた答えが返ってきますか?
0698nobodyさん2006/03/10(金) 07:00:47ID:???
>>697
$w = mb_substr($str, $i, 1, "SJIS");
って行で $w が最初に出て来てるじゃん

mb_substr でググルなりしてみなされ
0699nobodyさん2006/03/10(金) 07:04:54ID:+ksaxYfx
いや、そうじゃなくてこの0と1の変数の意味がわかんないんです。。

戻り値は普通そのsubstrされた文字なのはわかるのですが、なぜ配列になっているのかがわからないです。。
0700nobodyさん2006/03/10(金) 07:37:29ID:???
>>697
このユーザ関数の説明みたいなページは無いの?
0701nobodyさん2006/03/10(金) 08:44:51ID:???
>>697
$wがマルチバイト文字(2バイト)だから
$w[0]$w[1]にわけられる
俺はこういう場合は$w{0}を使うけどね
0702nobodyさん2006/03/10(金) 08:48:48ID:???
$w = "abcde";
の文字列に
echo $w[3]; // dが表示
のように配列でアクセスできることの応用かな
ただし文字列に配列でアクセスするときは{ }が推奨されている
0703nobodyさん2006/03/10(金) 10:50:40ID:???
これ
ttp://jp2.php.net/manual/ja/language.types.string.php#language.types.string.substr

散々出ているが、レッツ!のスクリプトは古く、
かつメンテナンスされていない物が多いので
(特に初心者は)あまり参考にすべきではないと思う
0704nobodyさん2006/03/10(金) 11:40:13ID:???
目的はアク禁なら、事前にドメインを持てばおけ。
にちゃんの解除以来板でも見て候補拾えばよろし。

ソース出したくないなら、そもそもphpは向いてないよ。
mixiみたいに設定ミスで流出の危険は常に有る。
アプリケーション鯖みたいにリクエストだけ別に投げて処理するようにしないと。
0705nobodyさん2006/03/10(金) 11:52:24ID:???
波括弧って1文字しかアクセスできないの?
0706nobodyさん2006/03/10(金) 14:56:54ID:???
ttp://php.s3.to/simple/
レッツPHPのbasic認証のパス失敗したらlog残すみたいな
スクリプト配布しているところ知りません?
0707nobodyさん2006/03/10(金) 15:36:33ID: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
です。

0708nobodyさん2006/03/10(金) 15:41:13ID:???
>>706
板違い

>>707
<? の前に空白文字(改行やスペース)が入ってるだろ
07097072006/03/10(金) 15:49:35ID:OI9+vMb4
>>708
ありがとうございます、入ってませんでした。

>>707にコピペした以外1バイトたりとも余計なものはありません。。
もちろん
<?
が1行目です。
07107072006/03/10(金) 15:50:56ID:???
あああああ。
ソースを shift_jis で保存しなおしたらでけた。
なんでだ。
0711nobodyさん2006/03/10(金) 15:53:48ID:???
>>710 保存したコードと実際記述したコードが違ったんじゃまいか?
0712nobodyさん2006/03/10(金) 16:38:26ID:???
>>707
多分BOMという余分なものが
0713nobodyさん2006/03/10(金) 16:42:27ID:???
多分爆弾がらみだろうな
0714nobodyさん2006/03/10(金) 16:47:57ID:???
UTF-8N
0715nobodyさん2006/03/10(金) 16:50:04ID:???
>>710
InternalEncodingの設定じゃまいか?
07167062006/03/10(金) 17:10:07ID:???
板違いでしたか・・・どこの板で質問がいいですか?
0717nobodyさん2006/03/10(金) 17:47:46ID:???
PHPでQRコードは生成できますか?
0718nobodyさん2006/03/10(金) 17:53:34ID:???
php qr でぐぐれ一番最初に出てくる
0719nobodyさん2006/03/10(金) 17:58:20ID:???
>>716
PHP-users ML
0720nobodyさん2006/03/10(金) 18:28:51ID:???
>>719
最低だw
0721nobodyさん2006/03/10(金) 19:06:20ID:???
>717なんかの
「PHPで〜できますか?」とか言う質問は

・PHPの組み込み関数で〜
・PHPの関連ライブラリ(pear,peclなど)で〜
・PHPの(サードパーティー)ライブラリで〜
・PHPの能力のうちで〜

のどれなのかをはっきりさせて質問するべきだと思うんだが。

>>716
Web制作orダウソ
0722nobodyさん2006/03/10(金) 19:11:18ID:???
>>721
くだ質だし、この方法なら出来るよって行ってみるしかない気も
0723nobodyさん2006/03/10(金) 19:12:18ID:???
>>722
PHPに関する知識がないのは許そう。
だが、質問者としての常識がないのはいただけない。
0724nobodyさん2006/03/10(金) 19:38:55ID:Zv8Tap21
PHP4 でスタックの実装ってありますか?
push('a');
push('b');
$b = pop();
$a = pop();
echo $a.$b;
"ab"
みたいな事がしたいのですが、どの関数を使えば良いのか分かりません。
0725nobodyさん2006/03/10(金) 19:43:10ID:???
array_push
array_pop
どうぞ。
ってか、別にいらない気もするけど。
0726nobodyさん2006/03/10(金) 19:43:21ID:???
array_push()
array_pop()
0727nobodyさん2006/03/10(金) 19:44:17ID:???
>>724
マニュアルを push で検索。
0728nobodyさん2006/03/10(金) 19:51:00ID:???
>>725
>>726
>>727
ありがとうございます。m(_ _)m
0729nobodyさん2006/03/10(金) 20:01:58ID:???
>>724の人気に嫉妬
0730nobodyさん2006/03/10(金) 20:11:45ID:???
おまいら優しいな
0731nobodyさん2006/03/11(土) 02:09:03ID:???
仕事はじめて一年になります。
何本かプログラムを作ったけどいわゆる入力まわりの、
「記入」「確認」「修正(記入と同じ画面を使いたい)」「完了」
これの条件分岐に関して、getでなんとかしたり、セッションに変な変数入れたり、hiddenで変な変数投げたりといつも、ごちゃごちゃになって、未だ自分の納得出来る方法を確立してません。
特に、確認画面から修正にもどるとこ。
これに関して、定番のロジックのフローチャートみたいなものってどこかにないでしょうか?

$_POSTが無くて、何らかの入力エラーがあったら「記入」
上記をスルーしたら「確認」
修正したい時は「記入」にもどるけど、このときはgetで。
「記入」画面で「確認画面をスキップ」にチェックを入れておいたら「確認」をスルーしてメイン処理(書き込み、DB登録やメール飛ばし)、成功したら「完了」失敗したら「エラー(このエラーはほかのエラーの場合も使う)」
こんな感じでやりたいのですが、皆さんはこの辺はどんな設計にしてますか?
0732nobodyさん2006/03/11(土) 02:22:13ID:???
drupalモジュールの開発をやってみてるんですが。
すでに定義されている変数や定数を一覧表示する関数というか方法は無いでしょうか?
0733nobodyさん2006/03/11(土) 02:29:37ID:???
開発ソフトを使う。
0734nobodyさん2006/03/11(土) 02:32:42ID:???
>>731
> 定番のロジック
HTML_QuickForm_Controller
0735nobodyさん2006/03/11(土) 02:35:55ID:???
>>732
実行中なら
get_defined_vars
get_defined_constants
ソースからなら
http://oss.moongift.jp/intro/item_624.html
0736nobodyさん2006/03/11(土) 02:44:22ID:???
>>735
ありがとうございます!
リンクのツールもかなり便利そうですね。
0737nobodyさん2006/03/11(土) 03:36:09ID:???
>>735
でPHPXrefの公式に飛んでワロタ
07387352006/03/11(土) 05:36:03ID:???
>>737
735の公式サイトのリンクはクリックをカウントしてるのか自サイトですね。
たまにエラーが出るみたい
こっちが直
http://phpxref.sourceforge.net/
0739nobodyさん2006/03/11(土) 09:40:18ID:???
みなさんは、メソッドを作成するときにpublicとpublic staticを
どのように使い分けていますか?
私はインスタンスを生成するのがめんどくさいというだけの理由でほ
とんどのメソッドでstatic宣言を使用しているのですが、これだと、
向上心がないような気がするので、みなさんの意見を聞きたいです。
0740nobodyさん2006/03/11(土) 09:51:36ID:???
>>739
> インスタンスを生成するのがめんどくさい

どんな嫌なことがあったんですか?
07417392006/03/11(土) 09:58:14ID:???
…質問されて改めて考えてみると、特に嫌なことがあったわけではな
いことに気がつきました。
嫌というよりは、例えば$example->example()でできることはstaticを
宣言すればexample::example()でもできるわけで…
つまり、みなさんがどんな使い分けをしているのかを聞きたかっただけ
なんですけが。
0742nobodyさん2006/03/11(土) 10:20:33ID:???
staticじゃexampleの中に$thisが書けないっすよ
07437392006/03/11(土) 10:26:24ID:???
>>742
確かに。でもself::が書けるのでオケィです。
0744nobodyさん2006/03/11(土) 10:35:16ID:???
>>743
え?インスタンスごとの変数はどうするの?
07457432006/03/11(土) 10:46:56ID:???
>>744
あぁ、なるほど!!
インスタンスを複数生成したことがなかったから、意識していません
でしたが、たしかに、staticではインスタンスごとの変数は扱えませ
んね。
すっきりしました。ありがとうございました。
0746nobodyさん2006/03/11(土) 13:20:18ID:???
ワロス
0747nobodyさん2006/03/11(土) 15:19:01ID:???
しょぼいSPAMフィルタリングツールを作ろうと思ってるんだけど、
文字コードが大きな壁になってます。
メールの件名を判断してフィルタリングしようと思ったら
例えば日本語ならiso-2022-jpにエンコードして設定しなきゃいけない
わけですよね?
日本語だけならまだしも他の言語で色々エンコードあると
1言語ずつ対応しなきゃいけないわけで
非常にだるそうなんですが、なにか良い方法ないでしょうか?
0748nobodyさん2006/03/11(土) 15:21:09ID:???
>>747
やる気がないんだったらカエレ!
0749nobodyさん2006/03/11(土) 15:33:48ID:???
ftp_chmodってphp5からしか使えないのね、
そのユーザの権限でchmodしたいので
ftp_chmod使うつもりだったんだが。
php5入れる以外で代替法ないですかね・・・orz
0750nobodyさん2006/03/11(土) 16:01:31ID:???
PEAR::Net_FTP#execute("chmod 755 something.txt")
0751nobodyさん2006/03/11(土) 16:02:19ID:???
>>749
http://jp.php.net/manual/ja/function.ftp-chmod.php
下の投稿に代替案みたいなのが載ってる
0752nobodyさん2006/03/11(土) 17:44:19ID:???
>>747
対応が必要なんだったら、そのだるい方法しかないよ。
前以てフィルタワードを各エンコーディング毎に用意しとくてもあるけど。
0753nobodyさん2006/03/11(土) 18:09:37ID:???
>>747
日本語と英語ぐらいしか来ないんだったら、マルチバイト関数のautoである程度行けるけどね
0754nobodyさん2006/03/11(土) 18:53:48ID:???
>>751
ftp_siteを使えば言いわけね。
俺はお前に土下座するくらい感謝してる、本当にありがとうございます
0755nobodyさん2006/03/12(日) 00:18:43ID:???
>>751
セキュリティ的にはローカルのFTPにアクセスするだけなら安全なのかな
ネットワークを介すとFTPってのはちょっと怖いよね・・
0756nobodyさん2006/03/12(日) 09:25:46ID:???
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設定でもエラーが出ないようにするための対処方法も教えて
いただけると助かります。ご回答よろしくお願いします。
07577562006/03/12(日) 10:05:41ID:???
$new を clone に書き換えたらエラーはでなくなりました。
失礼いたしました。
0758nobodyさん2006/03/12(日) 10:30:23ID:???
MySQLのテーブルにPHPスクリプト内で作った配列を「そのまま」入れることって出来ますか?
大垣本で調べたけど、Postgreの関数しか見つかりませんでした。

MySQLでは配列を配列のまま格納することは出来ないんでしょうか・・・。
もしそうなら、みなさんは配列のデータをどう分解してMySQLに収めるのがベストだと思いますか?

僕が考えているのは、たとえば$hairetu[1]〜$hairetu[50]まで50個の値が入ってるとして、
順にfor文で添え字1から取り出していって、DB格納用の変数$DBに入れて「:」などの記号を挟んで
「.」で連結していき、その$DBをMySQLテーブルの「text」フィールドに入れます。

もっとスマートなやり方などはありますでしょうか?
0759nobodyさん2006/03/12(日) 10:32:15ID:???
自己レスですが、上記のやり方だと
連想配列やキーが連続した数字ではない配列では
使えない手法ですよね。
0760nobodyさん2006/03/12(日) 10:36:46ID:???
serialize()使ってる
0761nobodyさん2006/03/12(日) 10:50:11ID:???
phpの公式マニュアルに、

説明
bool isset ( mixed var [, mixed var [, ...]] )

のような表記があります。

この場合は単純なのですが、こういった表記の 「mixed var」や括弧の意味などの凡例は
どのページに明記されているのでしょうか?
07627582006/03/12(日) 10:59:21ID:???
>>760
すみません、「神」と呼んでいいですか?
0763nobodyさん2006/03/12(日) 11:05:08ID:???
>>761
ttp://www.php.net/manual/ja/about.prototypes.php
0764nobodyさん2006/03/12(日) 11:49:30ID:???
>>757
どっかのversionからnewがデフォルトで参照を返すようになったらしい
つまり & new の & が余分
0765nobodyさん2006/03/12(日) 12:20:38ID:LBgD1ivZ
PHPのセッションは
クッキーが有効ならクッキー、
有効でないなら、URLに自動的に付加されますが、
スクリプト側で、セッションにクッキーが使用されているか否かを知るには
どうすればいいですか?
07667612006/03/12(日) 12:22:42ID:???
>>763
ありがとうございます
07677652006/03/12(日) 12:28:39ID:???
あー分かりました
$_COOKIE[session_name()]の有無を調べればいいんですね。
今までセッションの挙動がいまいち分からなかったのですが
PHP側で裏でいったんリダイレクトしてたんですね。
0768nobodyさん2006/03/12(日) 13:02:06ID:???
え?リダイレクトなんてしてない筈だよ。
> URLに自動的に付加
ってことだから、use_trans_sidを使ってると思うけど、
初回のレスポンスはcookieとURL付加の両方をやって
次のアクセス時のリクエストにcookieが含まれていればcookieだけ使うって感じじゃなかったっけ?
0769nobodyさん2006/03/12(日) 13:16:51ID:???
>>768
yes
07707682006/03/12(日) 14:11:57ID:???
>>768
なるほど、最初は両方するんですね。
クッキー判定をするために裏でやっているのだと思ったのですが
そういうことでしたか。
ありがとうございました。
0771nobodyさん2006/03/12(日) 14:38:24ID:???
たとえば、us000999 のような文字列があって、
その次「us001000」を取り出したいのですが、
スマートな方法はないでしょうか?

現在は、力ずくで、文字を分解して、+1して、桁数を数えて…。
見たいな事をしています。
よろしくお願い致します。
0772nobodyさん2006/03/12(日) 14:59:59ID:???
>>771

<?php
$str = 'us000999';
echo $str, PHP_EOL;
$str++;
echo $str, PHP_EOL;
?>

結果
us000999
us001000
0773nobodyさん2006/03/12(日) 15:03:46ID:???
あ、ありがとうございました…。
なんか、苦労してたのがバカみたいです…。
PHP万歳
0774nobodyさん2006/03/12(日) 15:08:52ID:???
>>772
これはびびった。PHPスゲーな。
0775nobodyさん2006/03/12(日) 15:20:19ID:???
すごいけど
逆に怖い気もする
0776nobodyさん2006/03/12(日) 15:44:43ID:???
その辺はPerlのパクリ。
そんなに怖がることもない。
0777nobodyさん2006/03/12(日) 15:45:33ID:whEzuZdE
echo "<a href=\"hoge.html\">ほげほげ<\/a>";

このように</a>のスラッシュはエスケープした方がいいですか?
0778nobodyさん2006/03/12(日) 15:51:39ID:???
>>777
特に展開の必要がないときは、シングルで括れば?
エスケープせずにすむし。
0779nobodyさん2006/03/12(日) 15:52:00ID:???
>>758
似た様な事をやろうとして頭を悩ませてる。
serialize()でやった場合、そのデータをphpmyadminなんかでちょっといじりたいって時にそのserializeしたデータはどんな風に見えるんだろう?
「はてなブックマーク」のタグ的な仕組みを作ろうとしてるけど、こんな場合はやっぱり、区切り文字入れてフィールドに格納。
読み出したときにばらして配列に入れてごにょごにょ、っていうほうが楽そうな希ガス
0780nobodyさん2006/03/12(日) 15:53:19ID:???
>>777
/のエスケープ?何のために?
0781nobodyさん2006/03/12(日) 15:54:07ID:???
>>778
藻前ら、シングル、ダブルどっちでもいい状況のときって、どっち使いますか?
漏れはなんとなくダブル使う。
0782nobodyさん2006/03/12(日) 15:54:49ID:???
>>779
実際にserializeしたのを出力してみればいいじゃない。
区切り文字でくっつけたのと似たような感じで文字列化されてるよ。
0783nobodyさん2006/03/12(日) 15:55:33ID:???
>>781
微妙に速いのでシングルを使ってる。
0784nobodyさん2006/03/12(日) 15:56:36ID:???
>>781
シングルを使う
0785nobodyさん2006/03/12(日) 15:58:34ID:???
>>779
呼び出したときunserializeすればいいだけだが
0786nobodyさん2006/03/12(日) 16:34:26ID:???
>>772
それ、$strが'us999999'までいくと次が'us000000’になるのか。
挙動をちゃんと覚えりゃ、なかなか使えそう。
07877862006/03/12(日) 16:36:24ID:???
うわ肝心なとこ書き換えてなかった...
'us000000’→'ut000000’。戻ってどないすんねん
0788nobodyさん2006/03/12(日) 16:53:19ID:???
(´・ω・`) 知らんがな
0789nobodyさん2006/03/12(日) 16:59:52ID:???
>>772
PHP_EOLってのは環境によって適した改行を勝手に表示って事?
0790nobodyさん2006/03/12(日) 17:19:10ID:???
>>783
前に質問スレでその話題でベンチ計ったけど、エスケープや変数展開がない場合は全員ダブルの方が僅かに速かったよ。
0791nobodyさん2006/03/12(日) 17:22:50ID:???
どんなスクリプトでテストしたの?
処理量はシングルの方が少ないから
テストの方法が悪いか、その他の要因が働いたとしか思えないのだが。
0792nobodyさん2006/03/12(日) 17:45:55ID:???
>>790
とりあえず、100桁の文字(エスケープも変数も含まない)を
10000回printする、ってやつを30回くらい交互に実行させてみた。
結果としては
「不定期に一方が誤差程度に勝つだけで毎回勝敗が違う。故に両者に速度差はほぼ無いと言える」
となったよ。
>>791
なんかPHPってそこの処理はちゃんと最適化してないのかダブルがよっぽど最適化されてるのか
変数の有無で同じ関数使うようにしてるのか知らないけど、シングルだから処理少ないってことはなさげ。
07937922006/03/12(日) 17:53:12ID:???
さらにprintしないで変数に格納するだけってのと、変数にも入れないでただ評価するだけ、
ってベンチマークもやってみた。(printの方が処理コスト大きいんで誤差が把握しにくかったので)
でもいずれも結論としては同じ。どっちが速いみたいな差は全然ない。ほんとに誤差しか違わない。
0794nobodyさん2006/03/12(日) 18:39:00ID:???
('A')
0795nobodyさん2006/03/12(日) 19:02:50ID:???
フォームからPOSTした値(ラジオボタン選択値など)をスクリプトで受け取ったとき、
値に何らかの問題や未入力部分があったときにブラウザの「戻る」ボタンで戻らせたいです。

このとき、あるサーバでは、「戻る」でフォーム画面に戻ると、さきほど入力した値が残っています。
しかし別のサーバで同じスクリプトを置いてみたら、「戻る」でフォームの値がクリアされてしまっています。
これは恐らくphp.iniの設定の違いだと思うのですが、どの設定を直せばいいのでしょうか・・・??
0796nobodyさん2006/03/12(日) 19:20:07ID:???
>>795
残ってる場合 -> ブラウザのキャッシュが使われている(つまり、鯖へのアクセスも無し)
クリアされている場合 -> 鯖から新規取得されている(鯖へのアクセス有り)

てなわけで、キャッシュ周りの設定をチェック(やポリシーの決定を)すれば良いよ。
0797nobodyさん2006/03/12(日) 19:27:48ID:???
>>796
キャッシュ周りというと「session.cache_limiter」でしょうか??
戻るボタンでも入力した値が残るサーバをA、クリアされちゃうサーバをBとしますと、
AとBのphp.iniを比べてみましたが、「session.cache_limiter」など
怪しいところはみんな同じ値(nocache)なんです・・・。
いったいどの設定を直すのでしょう。
0798nobodyさん2006/03/12(日) 19:29:11ID:???
phpだけの問題じゃない気がする。
0799nobodyさん2006/03/12(日) 19:34:42ID:???
>>798
php.iniの問題だけじゃないかな。
他に何かある? ありうるとしたらApache・・・?
0800nobodyさん2006/03/12(日) 19:55:39ID:???
フォームのページで送られてくるHTTPリスポンスヘッダを比較すれば原因及び解決法が分かるんじゃないかな。
たとえばこんな感じだと、クリア(新規取得)されることになる。
Pragma: no-cache
Cache-Control: no-cache
Expires: 過去の時間

これをキャッシュさせるためには、session.cache_limiterを変更したり、直接header()で書き出したり。
HTMLのmetaにも同じのを仕込めるので、そのあたりもチェック。
見た目は同じフォームでも、PHPで出力した場合と静的なHTMLファイルの場合はその辺の値が違ったりするよ。
0801nobodyさん2006/03/12(日) 20:10:11ID:???
フォームのページで送られてくるHTTPリスポンスヘッダを比較すれば原因及び解決法が分かるんじゃないかな。
たとえばこんな感じだと、クリア(新規取得)されることになる。
Pragma: no-cache
Cache-Control: no-cache
Expires: 過去の時間

これをキャッシュさせるためには、session.cache_limiterを変更したり、直接header()で書き出したり。
HTMLのmetaにも同じのを仕込めるので、そのあたりもチェック。
見た目は同じフォームでも、PHPで出力した場合と静的なHTMLファイルの場合はその辺の値が違ったりするよ。
0802質問2006/03/12(日) 20:17:10ID:OTf6vXB0
あるフォルダの中にあるファイルのリストを、自動で作るphpを作ったんだけど
その上のディレクトリの中身もリストに出すやり方がわかりません。
説明が分かりにくくてすみません。
簡単に言うと「りすてぃんぐ」というフリーソフトと同じ機能を持つphpが作りたいんです。
(http://www.oohara.jp/ppp/listing.html)

作りかけソース貼ったほうがいいですか?
0803nobodyさん2006/03/12(日) 20:34:30ID:???
>>802
環境と、一応ソースコード
0804質問2006/03/12(日) 20:44:05ID: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>
0805質問2006/03/12(日) 20:55:13ID:OTf6vXB0
今の状態がこれで
http://ccfa.info/cgi-bin/up/src/up25666.html

理想はこれです。
http://ccfa.info/cgi-bin/up/src/up25665.html
0806質問2006/03/12(日) 21:01:03ID:OTf6vXB0
>>805の違いが分かりにくいと思いますが、
理想のほうは
一番下にスクロールするとomaというフォルダの中身もリストに表示されます。
こういうふうにしたいんです。

何度もすまんです。
0807nobodyさん2006/03/12(日) 21:06:12ID:???
opendir("Music/../")
じゃだめなん?
0808nobodyさん2006/03/12(日) 21:07:00ID:???
>>804
まずその直接埋めこんでるものを$dirが引数になる関数にする。
次にechoする前のところにディレクトリの判別を入れてディレクトリだったら
それを引数にして再帰呼出しする。

ヒントは与えた。がんばれ。
0809nobodyさん2006/03/12(日) 21:13:12ID:???
っていうか、mp3とか違法行為じゃないん?
0810質問2006/03/12(日) 21:16:47ID:OTf6vXB0
>>809自分用ですから大丈夫と思います。
0811nobodyさん2006/03/12(日) 21:16:59ID:???
>>809
自分でエンコしたものなら全然問題ないだろ
0812nobodyさん2006/03/12(日) 21:17:08ID:???
>>795
色々悩むの面倒だから、漏れはこうしてる
ブラウザの戻るで戻ろうが、こっちの用意した戻るボタンを使おうが値が読み戻されるようにしたいなら、

if($ぽすと){$せっしょん=$ぽすと}
で、$せっしょん['なまえ']でうめこんでおけばいいんじゃね?
いろいろな場面で汎用性もたせたいなら、
$はんよう=$せっしょん
にしといて$はんよう['なまえ']にしといたほうが楽。
0813nobodyさん2006/03/12(日) 21:19:08ID:???
>>808
下のディレクトリを辿っていく必要があるわけじゃなくて
1つ上のディレクトリだけやればいいだけのようだから
(そういう仕様が便利なのか知らないけど)
再帰はいらんと思う。
0814nobodyさん2006/03/12(日) 21:22:43ID:???
>>801
関連してるのかわからないけど,POST使ったページに対してブラウザで「戻る」を選択すると
「データを再送信しますか?」って出るんだけど,これを防ぐ方法あるいはデフォルトで再送信にする設定とかないですか?
0815質問2006/03/12(日) 21:30:53ID:???
>>813
その通りです。というか引数はちょっと苦手だから
一つ上のディレクトリまでだけの引数なしプログラム
を組もうと企んでいます。
しかしながら、それすらよく分からないていたらく。
本音を言うと、答えを教えてもらいたいです。
0816nobodyさん2006/03/12(日) 21:36:10ID:???
>>814
どのRFCだったか忘れたが、POSTを使ったページをreloadした時には
confirm dialogを出さなければいけないという決まりがあった希ガス。
0817nobodyさん2006/03/12(日) 22:17:54ID:???
相談に乗ってください
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に転送するように設定

ブログを見るとアクセス解析が反映されていません、何が問題だったのでしょうか教えてください
0818nobodyさん2006/03/12(日) 22:33:33ID:???
>>815
提示されたソースを読んでないから何とも言えんが、
カレントディレクトリの処理が出来てるなら
>>807に示されてるのが、回答のひとつ
0819nobodyさん2006/03/12(日) 22:38:41ID:???
>>817
<?include("./accelyzer/store.php");?>
パスは本当にこれで合ってるんだろうな
0820nobodyさん2006/03/13(月) 00:20:10ID:???
>>795
IEとfirefoxでも動作が違うよね
IEだとformのselectedの状態に戻る。
firefoxでキャッシュが効く状態だとユーザが選択した状態を保持する
だったような気がする
0821nobodyさん2006/03/13(月) 00:54:53ID:???
>>795
JavaScriptを使おう
0822nobodyさん2006/03/13(月) 01:45:02ID:???
>>821
キャッシュさせないようにして$_POST全部配列ごと$_SESSIONにぶち込むのが最強かつ手軽じゃね?
0823nobodyさん2006/03/13(月) 02:03:55ID:???
file_existでinclude pathの中身も検索させる方法ってありますか?
0824nobodyさん2006/03/13(月) 02:18:42ID:???
get_include_path()かなんかで自前でやるしかないんじゃなかろうか
0825nobodyさん2006/03/13(月) 02:33:33ID:???
$hoge['name'] = "値";//配列の一要素
$hage = "値";//普通の変数

function kansu(){
ここ
}


引数は使わずに、globals宣言も使わずに、function内の「ここ」って書いてある位置からグローバルスコープの中にいる「$hoge['name']」を参照したい時はどうしたらいいのでしょうか?
グローバルの普通の変数「$hage」を参照したい場合は「$GLOBALS['hage']」というのは解るんですが、添字付きの配列の場合はどうしたらよいのでしょうか?
0826nobodyさん2006/03/13(月) 03:01:14ID:???
>>825
GGLOBALS['hoge']['name']
08278262006/03/13(月) 03:02:06ID:???
$GLOBALSの書き間違い
0828nobodyさん2006/03/13(月) 05:16:01ID:???
>>821 携帯とかにも使うかもしれないから、なるべくJavaスクリプトに依存したくないのです。

>>822
俺もセッションを使うことを考えたけど、これがたとえば選択肢5個のラジオボタンが
計100個もあるようなフォームだったら、気が遠くなるコーディング作業になるわけで・・・。
もちろんループ文でHTMLを生成するように組むんだけど、複雑でややこしくなる・・・。
単にブラウザがキャッシュしてくれてりゃそれで簡単に済む話なのに、
どうしてあるサーバではそれが可能で、別のあるサーバではそれが不可能なんだぁ〜!!
両者のphp.iniの設定を見比べてもほとんど違いが無いように思えるし。。。
0829nobodyさん2006/03/13(月) 06:11:45ID:???
>>828
php.iniの内容じゃなくて、HTTP上で実際にどういうデータ(特にヘッダ)が
やり取りされてるか調べる。
0830nobodyさん2006/03/13(月) 07:57:28ID:???
>>828
ドコモしか知らないけど、キャッシュ効いててもリンクしたらフォームの内容は全部飛ぶ。
0831nobodyさん2006/03/13(月) 08:37:24ID:???
>>829 すいません、それのデータはどうやって取得するのでしょうか??
    そういう環境変数(?)ってありましたっけ?
で、仮にそのデータを調べたとしても、それを修正するのはphp.iniの設定なのでは??
    見当違いのこと言ってたらごめんなさい。

>>830 「リンクしたら」??? すみません、ちょっと意味が分からない…
0832nobodyさん2006/03/13(月) 08:51:54ID:???
centos4.2へphpcollab入れたんだけどフィールドへ日本語入力した際に
文字化けします。 直りますでしょうか。
0833nobodyさん2006/03/13(月) 08:59:02ID:???
>>810
>>811
自分の曲?
そうじゃなきゃダメ。
0834nobodyさん2006/03/13(月) 09:00:26ID:q2braTai
mail関数でメールを送信する際にmail関数の設定ミス等でメールを送信できない場合
処理が止まってしまうようなのでmail関数を実行する前にmail関数でメール送信できるか調べ
できない場合はエラーメッセージを出すようにしたいのですが、うまくいきません。
function_exists関数では設定ミスまでは調べてくれないようでした。
どうすればうまくいくでしょうか?
0835nobodyさん2006/03/13(月) 10:35:57ID:???
>>833
別に他人の曲だろうと何だろうと、
ローカルでPHP動かしてリスト作るのは違法じゃないだろ。
0836nobodyさん2006/03/13(月) 10:51:13ID:???
私はスーパーグローバル変数を初期化するために、何度も下のような
記述をしているのですが、かなり面倒です。
もっと簡単な方法があったらぜひ教えてください。

$_COOKIE['example'] = isset($_COOKIE['example']) ? $_COOKIE['example'] : NULL;
0837nobodyさん2006/03/13(月) 11:05:51ID:nCSNQGQc
開発環境、テスト環境、本番環境などの運用方法のノウハウに詳しいサイトなどありましたら、お教え下さい。
チームで開発してて、本番環境がすでに稼働している状態で、
新機能を開発し、テストに上げ、システム管理者やユーザにメンテナンスを連絡し本番に適用する、
という流れを詳しく知りたいです。
0838nobodyさん2006/03/13(月) 11:07:59ID:???
>>835
そうだよね
0839nobodyさん2006/03/13(月) 12:28:12ID:???
>>836
スーパーウルトラグローバルエターナル変数を使えばいい。
0840nobodyさん2006/03/13(月) 12:31:56ID:???
>>836
foreachで回すとかじゃダメ?
0841nobodyさん2006/03/13(月) 13:59:50ID:???
HTTPのレスポンスヘッダってどうやって調べるの??
0842nobodyさん2006/03/13(月) 14:03:43ID:???
>>836
if (isset($_COOKIE['example'])) $_COOKIE['example'] = $_COOKIE['example'];
if (isset($_COOKIE['hogehog'])) $_COOKIE['hogehog'] = $_COOKIE['hogehog'];
素直にこうするといいかも。
スペースで縦をそろえると結構ソース読みやすいし。

三項演算子は(〜?〜:〜);か(〜)?(〜):(〜);と括弧で括られてないと何故か不安な俺が居る。
0843nobodyさん2006/03/13(月) 14:33:50ID:19XzlIjZ
フレームワークを使用していると
URLが、クエリの連なった形になります

?module=hoge&action=fuga&id=piyo

getで投げたい場合、
formタグのaction属性にこのようなURLを書いても、
うまく投げられません。
みなさんはどうやっていますか?
0844nobodyさん2006/03/13(月) 14:41:36ID:???
>>843
method="get"

PHP5を使ってます。
正規表現で&(アンパサンド)をヒットさせたいのですが、
preg_match ("/\&/", $src, $match)や"/&&/"とやってもヒットしません。
どのようにすればヒットさせられますか?
0845nobodyさん2006/03/13(月) 14:49:29ID:???
掲示板を作ってるのですが、コメントの文字数が多い場合に2chのように(省略)などとしたリンクを作成し、その記事へジャンプさせたいと思います。
というかここまではできたんですが、これとは別に、コメント中にURLがある場合に自動的にリンクになるようになっており、
省略のリンク部分が↑のリンクタグと重なるとおかしくなってしまいます。
これをウマーく回避したいのですが、どうしたらいいでしょう?
今はコメントの文字数が多い場合にstrip_tagsしてるんですがそれだとURLの自動リンクも無しになってしまうので困ってます。
0846nobodyさん2006/03/13(月) 14:55:59ID:???
>>845
省略を先にやってそれから自動リンクを判断するとかはダメか?
0847nobodyさん2006/03/13(月) 14:58:49ID:???
>>844ですが、$srcのデータを間違えてました。
&の部分が打ち間違えで$になってました…

>846に同じく、
strip_tagsを先にやって、その後自動リンクを張るのはどう?
もしくはstrip_tagsで<a>タグを有効にするとか。
08488452006/03/13(月) 15:04:44ID:???
>>846-847
省略を先にやったら出来ました、ありがとうございます。
これを数時間も悩んでいたとはorz
0849nobodyさん2006/03/13(月) 15:08:59ID:???
>>848
いやいや、俺も打ち間違えで1時間半は時間つぶしてたから気にすんな。
かなりぐぐったけど全然情報出てこないで新手のバグ?なんて無駄な詮索してしまったよ。
0850nobodyさん2006/03/13(月) 15:12:20ID:uoSdweNm
あるページ(もしくは画像)を開いて、簡単にHTTPヘッダやソースを取得するにはどうしたら良いでしょうか。
0851nobodyさん2006/03/13(月) 15:37:20ID:???
多分PEARとか言うのがいいんじゃないかな。
0852nobodyさん2006/03/13(月) 16:14:48ID:???
>>842
それ意味ないよ
やりたいのは
if (!isset($_COOKIE['example'])) $_COOKIE['example'] = NULL;
と未定義変数を定義したいのだと思う
0853nobodyさん2006/03/13(月) 17:19:30ID:???
PHPでJSP/ServletのServletContext(スコープ:application)のようなもの
を使いたいんですが、PHPで同じ感じのやつありませんか?
0854nobodyさん2006/03/13(月) 17:32:53ID:???
>>850
ttp://www.heeha.ws/index.php?Firefox%B4%D8%B7%B8
この辺でいいんじゃね

他にも方法いっぱいあるだろうけど
0855nobodyさん2006/03/13(月) 17:38:45ID:???
あとheaderの操作はphpで出来るよ
マニュアルでheaderって検索してみれ
0856nobodyさん2006/03/13(月) 17:42:31ID:???
>>854-855
ありがとうございます。
でも、PHPで取得して出力させるにはどうしたら良いのでしょうか。
0857nobodyさん2006/03/13(月) 17:47:19ID:???
>>801,>>855
あたりで解決だし、ちょっと調べれば分かるはずだけど・・
検索しなって・・
0858質問2006/03/13(月) 18:02:01ID:???
いろいろと試行錯誤してなんとか成功しました。
みなさんのヒントは、寸分の狂い無く私の脳を活性化させ
見事プログラミングの成功という偉業を達成させて下さいました。
初めてプログラムを組んだのですが、成功したときは涙がちょちょぎれました。
本当にありがとうございました。

                                みつを
0859nobodyさん2006/03/13(月) 19:14:57ID:???
皮先ウザイ
0860nobodyさん2006/03/13(月) 20:08:04ID:???
スレが違うよ
0861nobodyさん2006/03/13(月) 22:25:52ID:???
>>574.802.804.805.806.810.815.858
限りなく皮先のにほいがする。
巣に帰れ!
0862nobodyさん2006/03/13(月) 22:48:02ID:???
>>861
おまいさんは2chブラウザを知らんにほいがする
出来たらこう書いてくれ!
>>574,802,804
08638612006/03/13(月) 23:00:17ID:???
>>862
スマソ
悪気はなかった
吊ってくるわ
0864nobodyさん2006/03/13(月) 23:08:08ID:???
>>856
いい加減うざい。
自分で調べる癖つけような、な。
0865nobodyさん2006/03/13(月) 23:39:46ID:???
>>862
自分の使ってる2chブラウザは普通にリンクになってるが?
0866nobodyさん2006/03/13(月) 23:48:41ID:???
当然、このスレの常連ならみんなp2使っているよね?
0867nobodyさん2006/03/13(月) 23:55:59ID:???
rep2では>>861のアンカーは認識されず。
0868nobodyさん2006/03/14(火) 00:09:21ID:???
JaneDOEでも認識されてないぽ
0869nobodyさん2006/03/14(火) 00:19:23ID:???
>>867
それくらい自分で改造汁
0870nobodyさん2006/03/14(火) 00:38:33ID:???
前に話題になってたけどstr_split使えない環境だったら
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
があるみたいだね。やっぱマニュアル天才。
0871nobodyさん2006/03/14(火) 01:27:19ID:???
何を今更…
0872nobodyさん2006/03/14(火) 11:40:24ID:???
フォームでの画面遷移時に「戻る」ボタンで戻ったときの
値の保持についていろいろググってみたけど、
まだ誰も根本的な解決策や原因が見つかってないみたいだね。

フォームなんてごくごく一般的に誰もが使うのに、意外な結果だ。
0873nobodyさん2006/03/14(火) 12:33:52ID:???
>>870
マルチバイトだとそれもつかえない。
おれはmb_substr()を回してやってる。
0874nobodyさん2006/03/14(火) 13:40:27ID:???
> 原因が見つかってない
?????
0875nobodyさん2006/03/14(火) 13:45:29ID:???
バカはほっとけ
0876nobodyさん2006/03/14(火) 13:49:38ID:???
PHPとはあんまし関係ないんだけどさ
PHP本家からダウンロードできる.chmのヘルプって壊れてる?
何回やってもページを表示できませんってでてしまう
08778362006/03/14(火) 13:52:31ID:???
>>839(?)
>>840
>>842
>>852
返事が遅くなってすみません。
いろいろなアイディアを教えていただいて、参考になりました。使ってみて
一番入力が楽なヤツを試してみます。
ご回答ありがとうございました。
0878nobodyさん2006/03/14(火) 14:15:15ID:???
function getSGlobal ($gname, $name) {
return (isset ($$gname[$name]))?($$gname[$name]):(NULL);
}

$_COOKIE['example'] = getSGlobal ('_COOKIE', 'example');
という方法もある。

俺も凄い気になったんだよな、もう少し楽にスーパーグローバル取得できないか。
そんで前スレかどっかで、Cのマクロ関数みたいな事ってできませんか?みたいな事聞いたら、
関数でやれって返ってきた。
0879nobodyさん2006/03/14(火) 14:15:25ID:???
>>876
キーワードが文字化けしてるが壊れてはいない
0880nobodyさん2006/03/14(火) 14:30:02ID:???
>>878ってできないんだな
ttp://php.s3.to/man/language.variables.variable.html
0881nobodyさん2006/03/14(火) 14:31:41ID:???
>>877
こんな感じになった。
<?php
// デバッグ用
// エラーは全て表示する
error_reporting(E_ALL);
function getSGlobal (&$gname, $name) {
return (isset ($gname[$name]))?($gname[$name]):(NULL);
}
$hogehoge = getSGlobal($_GET, "hogehoge");
echo $hogehoge;
?>
0882nobodyさん2006/03/14(火) 14:45:52ID:???
三項演算子 (〜?〜:〜);

ほんと便利だよね。
0883nobodyさん2006/03/14(火) 15:06:54ID:???
IDとパスワードでログインする仕組みをセッションを使って作ったのですが、
ログイン後しばらく放置しておいてからアクセス(更新など)すると、ログアウトされてしまいます。

これは放置時間が一定以上続いた場合にセッション情報が破棄されているのだろうと思いますが、
このセッション破棄までの時間は、php.iniのどこをいじればいいのでしょうか?
「session.cache_expire」が関係あるのかとも思いましたが、デフォルトの「180」のままなのに、
180分も経たないうちに(具体的には10分くらいで)ログアウトになってしまいます。
0884nobodyさん2006/03/14(火) 15:12:29ID:???
>>882
俺への何かのあてつけかと一瞬勘ぐった。
08858822006/03/14(火) 15:14:33ID:???
>>884
あてつけのつもりはないから安心汁
0886nobodyさん2006/03/14(火) 15:14:58ID:???
>>883
http://php.s3.to/man/ref.session.html
session.gc_maxlifetime integer
0887nobodyさん2006/03/14(火) 15:17:49ID:???
>>885
ってか三項演算子って言葉って知ってて当然なんかな?
(〜?〜:〜);と全部記号だから検索でヒットさせられるのが無くて困る。
Cだと#defineと併用して使うからマクロ関数とかばっかり出てくるし。
0888nobodyさん2006/03/14(火) 15:24:55ID:???
>>887
三点演算子だと思い込んでいて検索でかからなくて困ってたことが・・・。

http://www.sra.co.jp/people/t-ishii/php_new/php4_new.html

第一部 PHPをはじめよう(3360KB)

だけでもいいから読んどいた方がいいよ。
0889nobodyさん2006/03/14(火) 15:25:36ID:???
>>887
マニュアルをじっくり読めば書いてある
08908882006/03/14(火) 15:26:55ID:???
「ふざけんな、そんな初心者向けの本なんて読むかbk」と言われそうだから追記
ざっとでいいから、眺めれば「三項演算子」という言葉ぐらいは分かるって意味ね。
0891nobodyさん2006/03/14(火) 15:27:21ID:???
>>886
あいたしゅ。
0892nobodyさん2006/03/14(火) 15:48:49ID:???
sessionスタートさせて(セッション用プログラムをrequire)、
セッション値を参考にしてダウンロード場所を選択して
ファイルをダウンロードする仕組みを作ってるんですが、
どうもセッション用プログラムをrequireすると
上手くダウンロードログが表示されません。

セッション用プログラムをコメントアウトすると機能するので、
おそらくヘッダー関係あたりの問題かなと思うのですが、
何か良い解決方法は無いでしょうか。
0893nobodyさん2006/03/14(火) 16:36:12ID:???
日本語おk
08948772006/03/14(火) 17:02:51ID:???
>>878
>>881
更なるアイディアありがとうございます。
教えていただいた方法を試してみた結果、881に紹介していただいた
方法を自分好みにして、以下のようなコードで記述することにしま
した。

function getSGlobal (&$gname, $name) {
$gname[$name] = isset($gname[$name]) ? $gname[$name] : NULL;
}
getSGlobal($_GET, "hogehoge");
echo $_GET["hogehoge"];

これなら、入力が楽です。本当にありがとうございました。
0895nobodyさん2006/03/14(火) 17:06:30ID:???
〜です。本当にありがとうございました。
0896nobodyさん2006/03/14(火) 18:36:34ID:???
>>892
まず問題点を整理し、そして質問する前に国語の勉強から・・・
0897nobodyさん2006/03/14(火) 18:49:44ID:???
配列を foreach で回すときの
順番って設定した順番になりますが
これは保証されてるのでしょうか?

0898nobodyさん2006/03/14(火) 19:01:58ID:???
>>897
されてるはず。
0899nobodyさん2006/03/14(火) 19:05:12ID:???
>>897
されてる。
0900nobodyさん2006/03/14(火) 19:13:33ID:???
>>899
して
0901nobodyさん2006/03/14(火) 19:57:29ID:???
されてるっけ?
不安になってきた
0902nobodyさん2006/03/14(火) 20:45:04ID:???
>>897
保証はされていないが、設定した順番になる。
0903nobodyさん2006/03/14(火) 20:50:40ID:???
>>901
foreachで取り出される順番はリンクリストに従ってるので
「設定した順番」つうのが通常のpushしていくやりかたなら
保証されてると考えていい。明確に保証するとは書いてなかったと思うけど。
0904nobodyさん2006/03/14(火) 21:33:46ID:???
それが保障されてなかったらasort()なんて意味なくなるだろ。
PHPでの連想配列は格納順番を内部に保持していてその通りに取り出せる。
0905nobodyさん2006/03/14(火) 22:01:08ID:???
>>892
ソースコードを出すのが手っ取り早い。
09068972006/03/14(火) 23:17:06ID:???
>>898-904
みなさんありがとうございました
安心して回します
0907nobodyさん2006/03/15(水) 00:27:49ID:???
>>906
っていうかこんなとこで聞いてるヒマがあったら、
自分で実験して確かめてみりゃあいいのに。。。
ループでecho使えば分かる話だろ。
0908nobodyさん2006/03/15(水) 00:34:04ID:???
>>907
それ、偶然動いてるのか環境依存なのか言語仕様なのか、動きを見ただけでお前は分かるのか?
0909nobodyさん2006/03/15(水) 02:02:25ID:???
>>908
>907じゃないが、俺なら数十回は試すな。
知的探究心ってのは止められないね。
その中で出てきた結果から憶測を何度も繰り返す。
再度何度も試し憶測どおりだったら頭の中に入れとく。

ところでPHPで、OSが違うと処理が変わる事ってあるん?
機会に便乗して質問してみる。
0910nobodyさん2006/03/15(水) 02:19:33ID:???
>>909
数十回試して同じ結果ならそれが正しいと?
0911nobodyさん2006/03/15(水) 02:27:00ID:???
>>910
正しいって言ってるか?好奇心の話だろ?

>>909
そんな話は聞いたこと無いな。インストールはまったく違うけど
0912nobodyさん2006/03/15(水) 02:33:21ID:???
マルチバイト関数はwinでのバグなのか挙動が違うって話はあったような・・

なんか話がずれてる人同士が言い合ってて不毛そうなのでやめたら?
0913nobodyさん2006/03/15(水) 02:36:17ID:???
>>907
むしろお前が暇人
0914nobodyさん2006/03/15(水) 03:14:22ID:???
>>913
このスレでそれは禁句(爆)
0915nobodyさん2006/03/15(水) 04:09:05ID:???
>>908
2〜3回試せば十分。ヲタは何事も粘着質でキモイな。

>>913
なんで? 5分もあれば出来ることだろ。
0916nobodyさん2006/03/15(水) 04:34:09ID:A2wD7hwK
質問です。
print関数の出力先を変える関数、方法をおしえてください。
0917nobodyさん2006/03/15(水) 05:10:12ID:???
>>915
危険なプログラマハケーン
そんなハンパな知識でWebアプリ組むなよ
0918nobodyさん2006/03/15(水) 05:11:37ID:???
>>916
ob_start()、ob_get_contents()
0919nobodyさん2006/03/15(水) 05:11:44ID:???
>>916
どこに変えたいの?
0920nobodyさん2006/03/15(水) 05:13:11ID:???
>>917
お前みたいなヤツは長生きしそうだな。
0921nobodyさん2006/03/15(水) 05:16:13ID:???
ヲタ同士喧嘩してないで、一緒に秋葉原でピザでも食ってろデブ。

はい、次の質問どうぞ。
0922nobodyさん2006/03/15(水) 05:20:12ID:???
アルテマウエポンはどこで手に入りますか
0923nobodyさん2006/03/15(水) 05:35:22ID:???
>>922
まずジュノン近くの湖へ行きましょう。
ボスが居ます。
戦闘終了後(まだ倒してない)ぶアルテマウェポンがどっか飛んでくのでぶつかって何度も倒しましょう。
今度は直線に飛び始めるので、止まったら再度戦闘を仕掛けて倒しましょう。
アルテマウェポンがコスモキャニオンか古の森で止まったら最後です。
おめでとうございます、アルテマウェポンをゲットします。
0924nobodyさん2006/03/15(水) 05:36:19ID:???
ありがとうございます。これで悔いはありません。
0925nobodyさん2006/03/15(水) 07:18:48ID:???
>>922
まずおもちゃの銃を手に入れろ
少年が倉庫へ行くためのカードキーの場所まで連れて行ってくれるところでカードキーを落とす敵の奥で手に入る
8章以降でおもちゃの銃をアルテマウェポンにチューンできる。20万ギルほど必要
0926nobodyさん2006/03/15(水) 08:44:03ID:???
今からここはFF専用下らねぇ質問スレになります
0927nobodyさん2006/03/15(水) 09:12:36ID:???
>>922
まず、となり
0928nobodyさん2006/03/15(水) 09:17:17ID:???
>>907
ソース見た方がはやい
0929nobodyさん2006/03/15(水) 09:58:51ID:???
>>915
2〜3回くらいならPerlの連想配列ですら格納順でループしちゃう可能性があるけどなw
0930nobodyさん2006/03/15(水) 10:14:44ID:???
>>909
配列みたいな基本部分では多分変わんないと思うけど、
システムコールを呼んでる部分では微妙に違うとこあるね。
そういう中身を想像できる人ならあまり気にならないんじゃない?
0931nobodyさん2006/03/15(水) 10:18:36ID:???
>>912
そういや、4.4.1でallow_url_fopenがバグったのはWin版だけだったね。
0932質問2006/03/15(水) 10:38:37ID: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の状態で出力されます。
この方法は正しくないのでしょうか?
御教示お願い致します。
エラーメッセージの内容は、今家にいないので、帰ってきてから書きます。
0933nobodyさん2006/03/15(水) 10:50:35ID:???
fwrite($ToFile,$head.$body);
では。

そもそも連結しなくたって、
fwrite($ToFile,$head);
fwrite($ToFile,$body);
2回書けばいいだけでは。
09349322006/03/15(水) 11:11:38ID:F5a3ZDp1
>>933
> fwrite($ToFile,$head.$body);
> では。
そうでした。携帯からだったので書き写し間違えてました。PCのほうは正しく書いてます。

2回書けばいいんですか。帰ったら試してみます。
0935nobodyさん2006/03/15(水) 11:29:41ID:???
すいません。スクリプトの最初と最後でmicrotimeでスタンプ取得して、
その差を求めてベンチ取ってるんですが、
なぜかときどき結果がマイナスになってしまうことがあります。
なぜなんでしょう??? ありえないですよね・・・
0936nobodyさん2006/03/15(水) 11:45:42ID:???
>>935
すごい速いとか
0937nobodyさん2006/03/15(水) 11:48:18ID:???
光の速度を超えちゃったんだね
0938nobodyさん2006/03/15(水) 11:53:25ID:???
>>935
時刻あわせかな?
0939nobodyさん2006/03/15(水) 11:54:21ID:???
プログラムミスだと思うよ。
0940nobodyさん2006/03/15(水) 12:06:52ID:???
>>935
ちゃんとスペースで分割してる?
0941nobodyさん2006/03/15(水) 12:14:33ID:???
>>935
ソース出せ
0942nobodyさん2006/03/15(水) 13:06:22ID:???
つーかマニュアルにあるな。
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
0943nobodyさん2006/03/15(水) 13:16:44ID:???
>>940 スペースで分割・・・???

>>941
$start_time = microtime(); //スクリプトの先頭に置く
$end_time = microtime(); //ここから下はスクリプトの末尾に置く
$exe_time = $end_time - $start_time;
echo $exe_time;
0944nobodyさん2006/03/15(水) 13:29:54ID:???
>>943
まづ下の結果をよく見て来い。話はそれからだ。
echo microtime();
0945nobodyさん2006/03/15(水) 13:46:48ID:???
phpのfloatって倍精度保証?
0946nobodyさん2006/03/15(水) 13:52:38ID:???
>>945
標準はdouble精度

てか、また保証話かよ
0947nobodyさん2006/03/15(水) 13:54:06ID:???
実際にmicrotimeでベンチ取っても、結果にはかなりのバラつきあるよね。
10回や20回数値を取った程度じゃ、偏りのある結果を得られないかもしれない。
ましてや共有鯖みたいな環境だったら、他に影響される部分が多すぎて、
自分のスクリプトの真のベンチが取れないね。
はて、どうしたもんやら。
ローカルでベンチ・スクリプト以外は極力動かさないようにしてやるしかないか??
0948nobodyさん2006/03/15(水) 13:55:06ID:???
そこでPEARですよ。
0949nobodyさん2006/03/15(水) 13:57:47ID:???
>>947
共有鯖でベンチとろうってお前の姿勢が気に食わない
0950nobodyさん2006/03/15(水) 14:00:10ID:???
>>947
共有鯖でベンチテストなんてやらないでね
0951nobodyさん2006/03/15(水) 14:04:40ID:???
>>947
100万回ループさせて割り算しろよ。
0952nobodyさん2006/03/15(水) 14:07:56ID:???
>>949>>950>>951
ベンチって言っても、いわゆる何万回も意味のないループを
繰り返したりするような類のベンチじゃないっつーの。
キモヲタと一緒にするなっての。

ふだん運用してる自作のスクリプトの実行時間を知りたいだけ。
0953nobodyさん2006/03/15(水) 14:08:45ID:???
>>947
頼むから俺様がピーコちゃんを飼ってるサバの住人じゃありませんように
0954nobodyさん2006/03/15(水) 14:10:37ID:???
>>953
カエレ
0955nobodyさん2006/03/15(水) 14:14:57ID:???
>>952
情報小出しにしてなに優越感に浸ってるんだ?
0956nobodyさん2006/03/15(水) 14:16:22ID:???
>>952
きんもーっ☆
0957nobodyさん2006/03/15(水) 14:19:20ID:???
>>955
ハァ?? 何が小出しなんだ??? バカかお前?
これ以上何を知りたいってんだ?

>>956
キモいよお前wwwwwwwwwwwwwwwwwwwwwwwwwww
0958nobodyさん2006/03/15(水) 14:23:45ID:???
>>957
お前の全てを知りたい。
まずその穴をこっちに向けてくれ…。
0959nobodyさん2006/03/15(水) 14:23:58ID:???
>10回や20回数値を取った程度じゃ、偏りのある結果を得られないかもしれない。
>ましてや共有鯖みたいな環境だったら、他に影響される部分が多すぎて、
>自分のスクリプトの真のベンチが取れないね。
>はて、どうしたもんやら。

100万回とって平均値とれや

>ベンチって言っても、いわゆる何万回も意味のないループを
>繰り返したりするような類のベンチじゃないっつーの。

そんなの後出しされても知るか。
0960nobodyさん2006/03/15(水) 14:25:01ID:???
>>959
小出しも後出しも駄目だ。外へ出してくれ。
0961nobodyさん2006/03/15(水) 14:37:04ID:???
>ふだん運用してる自作のスクリプトの実行時間を知りたいだけ。

これがキモヲタらしくてよい。
0962nobodyさん2006/03/15(水) 14:43:22ID:???
>>952
それをベンチと呼ぶ君の無知っぷりがかわいい
0963nobodyさん2006/03/15(水) 14:45:13ID:???
>>943
それは小数点以下の部分だけで差分を出してる。
当然、タイミングによってはマイナスになるし、1秒以上の実行時間は算出できない。
0964nobodyさん2006/03/15(水) 15:12:10ID:???
>>963
え、単純に引き算しているだけで、小数点以下の部分の差分になるの?
0965nobodyさん2006/03/15(水) 15:15:36ID:???
はい、共用鯖での実験ももちろんokですよ
うるさい御老人の事は気にせずなんでもどうぞ^^
0966nobodyさん2006/03/15(水) 15:17:55ID:???
>>964
そこがphpの怖いところなんだな
文字列を算術演算で使うと数値として評価できる部分までがその数値になる
この場合は' 'より前の部分だけ

>>965
カエレ
0967nobodyさん2006/03/15(水) 15:21:11ID:???
>>964
microtimeは
"小数部"スペース"整数部"
の文字列
そのまま引き算するとスペース以降の部分は無視され小数部のみの引き算になる
09689642006/03/15(水) 15:26:35ID:???
>>966-967
なるほど。
試しに、print microtime(); をやってみたら、
「0.90277600 1142403902」みたいになってた。

phpの演算って面白いね。
普通の言語だと余計なものが入っている状態で減算したら
エラーになる気がする・・・。
09699672006/03/15(水) 15:27:05ID:???
マニュアル見直したらPHP5から
microtime(true); //floatを返します。
が使えるんだ
0970nobodyさん2006/03/15(水) 15:27:30ID:???
的確なアドバイスの>>942>>944は無視して話が進んでいるな
0971nobodyさん2006/03/15(水) 15:30:10ID:???
>>942 のコードの、型宣言floatは必要なの?

function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return $usec + $sec;
}

これで同じ結果になると思うけど。
09729712006/03/15(水) 15:34:21ID:???
あ、精度を落としているんだね。
失礼しました。
http://jp.php.net/manual/ja/language.types.float.php
09739712006/03/15(水) 15:38:02ID:???
あ、でも実験したら同じ結果になった。
宣言しない場合は、float型として加算されるのかな。

0974nobodyさん2006/03/15(水) 15:39:06ID:???
>>971
宣言は不要
何を勘違いしてるか知らんがどっちも同じだけ精度は失われてる
0975nobodyさん2006/03/15(水) 15:40:56ID:???
>>944が可愛そうだ。
むしろ可愛い
0976nobodyさん2006/03/15(水) 16:02:04ID:???
精度を気にするなら$secと$usecは足してしまう前に減算した方がいいんじゃないのか?
$secがかなりでかい数字なので、それに$usecを足した時点でかなりの精度が失われてる。
それはfloatだろうとdoubleだろうと避けられないかと。
先に$sec同士、$usec同士で減算を済ませてから最後に足せばかなり精度を維持できると思う。
0977nobodyさん2006/03/15(水) 16:03:53ID:???
>>976
君は正しい
0978nobodyさん2006/03/15(水) 16:09:07ID:???
>>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
0979nobodyさん2006/03/15(水) 16:16:40ID:???
>>978
>まぁ、更に精度を気にするなら、GMP関数を使うべきだと思う。

お前はわかってない
0980nobodyさん2006/03/15(水) 16:18:09ID:???
奴がミリ秒以下の精度を気にしなければいけないようなシステムを作っているとも思えんが
0981nobodyさん2006/03/15(水) 16:21:30ID:???
>>971
丁寧にキャストしてるのはマニュアルの親切心かなと思った。
この場合は明示しなくてもfloatとして加算される。

> list($usec, $sec) = explode(" ", microtime());

ここで var_dump($usec, $sec) 取ってみたりとか
マニュアル読みながらいろいろ試したりすると、疑問が解消すると思うよ。
http://jp.php.net/manual/ja/language.types.type-juggling.php

で。

>>ALL
引っ張ってごめんなさい。
0982nobodyさん2006/03/15(水) 17:20:10ID:???
// ●実行開始時刻の取得(スクリプトの最初に書く)
$startTime = microtime();


// ●実行時間の取得(スクリプトの最後に書く)
list($startUsec, $startSec) = explode(" ", $startTime);
list($stopUsec, $stopSec) = explode(" ", microtime());
$secure_execSec = ($stopSec + $stopUsec) - ($startSec + $startUsec);

print $secure_execSec;
0983nobodyさん2006/03/15(水) 17:32:17ID:???
いや先に引くっつー話じゃなかったのか
0984nobodyさん2006/03/15(水) 17:50:46ID:???
>>982
先にSecとUsec足しちゃうと精度が著しく落ちるだろが
0985nobodyさん2006/03/15(水) 17:59:46ID:???
うにゃ

// $secure_execSec = ($stopSec + $stopUsec) - ($startSec + $startUsec);
$secure_execSec = ($stopSec - $startSec) + ($stopUsec - $startUsec);
0986nobodyさん2006/03/15(水) 18:16:24ID:???
>>983-985
$secure_execSec = ($stopSec + $stopUsec) - ($startSec + $startUsec); だと、
Load Time: 0.13795495033264 sec.

$secure_execSec = ($stopSec - $startSec) + ($stopUsec - $startUsec); だと、
Load Time: 0.137955 sec.

になった。


予想の反対の結果だね。
精度が落ちる計算(前者)の方が、表示される桁数が多くなり、
精度が前者に比べ落ちない計算(後者)の方が、表示される桁数が少なくなる。


つまり、精度の低い数字がずらずらと表示されるわけだな。(前者の計算だと)
0987nobodyさん2006/03/15(水) 18:29:38ID:???
>>986
SecとUsecを足した時点で有効桁数が変換が入るので、
その時点で10進変換では割り切れない数字になってる可能性が高い。
0988nobodyさん2006/03/15(水) 18:31:23ID:???
>>986
試しに計算前の文字列状態のmicrotime()の戻り値も表示させてみれば?
0989nobodyさん2006/03/15(水) 18:45:18ID:???
usecは有効少数以下6桁じゃないのかね
俺のサーバは8桁表示されるが、7-8はいつもゼロ
0990nobodyさん2006/03/15(水) 18:46:42ID:GW/RIGqH
質問です
変数$aに全角ひらがな、もしくは全角カタカナが含まれるか否かを判別するにはどうすれば良いのでしょうか?
0991nobodyさん2006/03/15(水) 18:48:44ID:???
↓いやらしい声
0992nobodyさん2006/03/15(水) 19:01:13ID:???
開発やアプリには直接は関係しないベンチの話になったら
急にイキイキと書き込みが激しくなった点についてwwwwwwww

やっぱヲタは分かりやすくていいなぁ。
0993nobodyさん2006/03/15(水) 19:07:05ID:???
992=986=978だな
0994nobodyさん2006/03/15(水) 19:09:43ID:???
PHPの勉強を始めようと思うのですが、
オススメの書籍はなんでしょうか?
0995nobodyさん2006/03/15(水) 19:12:50ID:???
>>993
大外れ乙wwwwwwwwwwwww

しかしあと数回の書き込みで1000ゲトなのに、
誰もそれに気づかない(?)ほど熱中してベンチの話に
なってんのが面白いww
0996nobodyさん2006/03/15(水) 19:14:41ID:WV793DnE
質問です。
現在、テキストボックスに入力されたデータを別ページで表示させるものを作っています。(簡単に言えばメンバー表のようなもの)
今はまだ書き込み処理等、ログファイルへの書き込みは行っておらず、たんに入力されたものを出力するようにしています。
表示させるところまではうまくいったのですが、現在メールの入力欄に文字が入力されていたら自動で名前にリンク、入ってなかったら名前のみ表示。
と言うようにしようと思っているのですが、思うようにうまくいきません。
<? if ("{$_POST['mail']}" !== "") {
echo "{$_POST['name']}";
} else {
echo "<A href=\"mailto:{$_POST['mail']}\">{$_POST['name']}</a>"; } ?>
というようにしてみたのですが条件の部分のせいでエラーがでてしまいます。
条件の設定法がうまくわからないのですが教えてください。
条件としては「{$_POST['mail']}に文字がはいっていなかったら」です。
0997nobodyさん2006/03/15(水) 19:19:46ID:???
誰か>>990の質問に答えてやれよ…。

↓いやらしい声
0998nobodyさん2006/03/15(水) 19:22:10ID:???
埋めるか
0999nobodyさん2006/03/15(水) 19:23:39ID:yiOrS10N
次スレ立てました。不備があったらごめん。

【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/
1000nobodyさん2006/03/15(水) 19:24:58ID:???
<? if (${_POST['mail']} == "") {

1行目を上記のように直す。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。