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

【PHP】質問スレッドpart31【php】

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2005/11/27(日) 00:07:12ID:eBvjdczp
PHP全般の質問スレです。
【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。

過去スレ、関連リンク、FAQ等>>2-10辺り
0002nobodyさん2005/11/27(日) 00:08:30ID:eBvjdczp
前スレ
【PHP】質問スレッドpart30【php】
http://pc8.2ch.net/test/read.cgi/php/1130190606/
【php】part29【php】
http://pc8.2ch.net/test/read.cgi/php/1120611474/l50
【PHP】質問スレッドpart28【php】
http://pc8.2ch.net/test/read.cgi/php/1115281031/l50
【PHP】質問スレッドpart27【php】
http://pc8.2ch.net/test/read.cgi/php/1109857283/l50

関連リンク
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
0003nobodyさん2005/11/27(日) 00:10:26ID:eBvjdczp
関連スレ
【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/
【PHP】PEAR Part2
http://pc8.2ch.net/test/read.cgi/php/1122899232/l50
PHPでオブジェクト指向プログラミング
http://pc8.2ch.net/test/read.cgi/php/1113724557/l50
【PHP】フレームワークについて語るスレ【総合】
http://pc8.2ch.net/test/read.cgi/php/1123608068/l50
【Smarty】PHPのテンプレートエンジン【Flexy】
http://pc8.2ch.net/test/read.cgi/php/1118799352/l50
[PHP-users MLヲチ8]巣もいませんでした。
http://pc8.2ch.net/test/read.cgi/php/1132800251/
正規表現道場@2ch Part4
http://pc8.2ch.net/test/read.cgi/php/1105930285/l50

関連板
データベース(SQL、DBMSの話題はこちら)
http://pc8.2ch.net/db/
プログラム(CLI、アルゴリズム、インタプリタの話題はおそらくこちら)
http://pc8.2ch.net/tech/
Web制作(クライアントサイドの話題は問答無用でこちら)
http://pc8.2ch.net/hp/
0004nobodyさん2005/11/27(日) 00:11:47ID:eBvjdczp
【FAQ】
1. ブラウザに何も表示されないんだけど・・・
 → error_reporting、display_errors、log_errors
2. include/requireに?a=b&c=dのようなパラメータつけたい
 → できません
3. $a1,$a2,$a3...はどうしたら?
 → 可変変数・・・というかむしろ配列使え
4. echo "$arr['hoge']['fuga']"; がうまくいかない
 → {おっぱい括弧}でくくれ
5. echo?print?
 → echoはコンマ区切りで書ける。printは関数。パフォーマンスは気にするな
6. 値渡し・参照渡しのパフォーマンス
 → これまた気にするな
7. csvやtsvを扱いたい
 → まずはfgetcsv
8. ファイル入出力関数(fopen等)でリモートファイル扱う際の限界
 → fsockopenでソケット通信で解決
9. 一定時間ごとに何かしたい
 → cron、タスクスケジューラ
10. 画像処理一般 or GDの限界
 → ImageMagick
11. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください
12. クッキーの情報をユーザから隠したい
 → セッション使え、ただしクッキーとセッションは仕組みが違うから同じように扱うな
0005nobodyさん2005/11/27(日) 00:12:49ID:eBvjdczp
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。
1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
  目の前で生じている現象をそのまま具体的に書くなどもっての外。
  事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
  「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
  「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
  "どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
  「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
  示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
 絶対に避ける。
8. 情報は小出しに。

「エスパーきぼんぬ」 補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。
まちがっても「エスパーの方,回答お願いします」なんて痛い質問するな。つーかカエレ。
0006nobodyさん2005/11/27(日) 00:13:27ID:???
華麗な誘導乙!
0007nobodyさん2005/11/27(日) 00:13:59ID:???
いじょ。●もたまには役に立つな。
0008nobodyさん2005/11/27(日) 00:15:07ID:???
>>6
いや、みんなよく1000get我慢してくれた。ありがとう、ありがとう。
0009nobodyさん2005/11/27(日) 00:37:48ID:???
ナイスな展開だったな
0010nobodyさん2005/11/27(日) 00:55:01ID:???
前スレ>>969
見つけました、で終わるんじゃなくて
質問したんだったら、どう解決したのかも書け
getID3(http://www.getid3.org/)だと思うが
0011nobodyさん2005/11/27(日) 00:57:00ID:???
peclの方じゃないの?
0012nobodyさん2005/11/27(日) 01:20:11ID:???
すいません、質問です
送られてきたクエリーがASCIIかどうか判定する関数が
欲しいのですが、そういう関数って用意されているのでしょうか
あったら教えてください。
0013nobodyさん2005/11/27(日) 04:12:56ID:???
WindowsXPでphp-5.1.0-Win32.zipをダウンロードしました。
PEARをインストールしようとgo-pear.batを実行し、
なにも反応がないのでENTERを3,4回叩くと、
以下のようなエラーが出てしまいます。

Fatal error: PEAR_Installer_Role::require_once(): Failed opening required 'PEAR/Installer/Role/Php.php' (include_path='.;c:\php\includes;c:\php\pear') in phar://go-pear.phar/PEAR/Installer/Role.php on line 80

どうすればよいでしょうか?
0014nobodyさん2005/11/27(日) 04:52:09ID:???
>>12
ageてね。
ASCIIかどうかってのが言葉通りの意味なら自分で書くしかないよ。

function ctype_ascii($str) {
 for ($i = 0; $i < strlen($str); $i ++) if (ord($str{$i}) & 0x80) return false;
 return true;
}

あとは目的としているものがctype_*関数でどうにかならないかどうかもチェック。
ctype_printとかは0x80以上でもtrueになる範囲があるので注意。

>>13
ageてね。
反応があるまで待ってみたら?
0015nobodyさん2005/11/27(日) 04:57:56ID:???
待って処理しても同じだろうけどなw
0016nobodyさん2005/11/27(日) 10:46:06ID:9sz9qgK1
ファイルの拡張子を取得するため、
例えばabc.jpgのファイルであれば
$array=explode(".",$filename)
$array[1]
でできるのですが、ほかの箇所に.があった場合にうまく処理できません。
どこに.があろうと拡張子を取得するにはどうすればよいでしょうか?
4.3.11を使用しています。
0017nobodyさん2005/11/27(日) 10:51:20ID:???
arrayを逆順にしてみたら?
0018nobodyさん2005/11/27(日) 10:57:28ID:???
>16
pathinfo
0019nobodyさん2005/11/27(日) 11:11:08ID:???
PHPとCGIは別物ですか?
0020nobodyさん2005/11/27(日) 12:16:41ID:???
>>19
PHPとPerlは別物です。
0021nobodyさん2005/11/27(日) 12:25:55ID:???
仮に、意味が同じでも言葉が違うんだから別物だろ。
0022nobodyさん2005/11/27(日) 12:43:22ID:???
PHPはCGIとしても利用できる
これ以上でも以下でもない
0023nobodyさん2005/11/27(日) 12:44:04ID:???
PHPってインターフェイス仕様のことだったのか
0024nobodyさん2005/11/27(日) 12:53:08ID:???
>>19
日本語と電子メールは別物です。
0025nobodyさん2005/11/27(日) 13:04:35ID:???
つミ
https://coterie.ws/uncho.pl.html.htm.php.gz.rm.zip.lzh.txt.php9?cat=afo
0026nobodyさん2005/11/27(日) 13:47:49ID:???
コピペしすぎ
0027nobodyさん2005/11/27(日) 14:35:18ID:???
文字列に入っている文字列を改行で分割して配列に入れたいのですが
最もスマートな方法は何でしょうか。

例えば
$s = "aaa\nbbb\nccc\nddd\n";
   ↓
$arr[0] = "aaa";
$arr[1] = "bbb";
$arr[2] = "ccc";
$arr[3] = "ddd";

みたいな感じです
0028nobodyさん2005/11/27(日) 14:43:41ID:???
ツマンネ
0029nobodyさん2005/11/27(日) 15:08:05ID:???
”CGIやPHPを使ってください。”
みたいな記述を見たもので、別物なのかなと思いました。
0030nobodyさん2005/11/27(日) 15:20:14ID:???
CGIはゲートウェイインターフェイス。
PerlやPHPはそのインターフェイスの上で動作可能な言語。
0031nobodyさん2005/11/27(日) 15:25:50ID:VNuPQoCa
$arr = split("\n",$s);
0032nobodyさん2005/11/27(日) 15:45:02ID:???
$arr = explode("\n", $s); //正規表現を使わないならこっちの方が速い
0033nobodyさん2005/11/27(日) 16:45:46ID:???
>>30
CGIではなくてPHPを動作させるには?
0034nobodyさん2005/11/27(日) 16:54:45ID:???
## >> php
0035nobodyさん2005/11/27(日) 16:54:47ID:???
>>33
マニュアルぐらい読んでくれ。分からない単語はググりゃ知識が深まる。
ttp://www.php.net/manual/ja/intro-whatcando.php
ttp://www.php.net/manual/ja/install.general.php
0036nobodyさん2005/11/27(日) 17:22:22ID:???
二つ質問があります
・関数の戻り値をリファレンスで受け取りたい場合、
function &hoge() {
とするだけで良いのですか?受け取る時
$hage =& hoge();
もしなくてはいけないですか?

・SQLインジェクション対策に、入力値検査に加えて、MySQLならmysql_real_escape_stringし、%を\%にすれば、少しは大丈夫だと言えますか?
0037nobodyさん2005/11/27(日) 17:57:13ID:???
ありがとうございました。
解決しました。
0038nobodyさん2005/11/27(日) 18:03:33ID:???
どういたまして
0039nobodyさん2005/11/27(日) 18:04:13ID:???
$a[0] = array('aaa', 0);
$a[1] = array('bbb', 10);
$a[2] = array('ccc', 5);

みたいな配列を、二番目の配列の要素で降順にソートしたいのですが、
そういう関数って用意されていますか?
sortあたりで調べたんですが見つからなかったので
誰かわかる人いたらお願いします。
ちなみに上の結果は

$a[0] = array('aaa', 10);
$a[1] = array('ccc', 5);
$a[2] = array('bbb', 0);

です。
0040nobodyさん2005/11/27(日) 18:15:05ID:???
>>39
なんの結果?
0041nobodyさん2005/11/27(日) 18:16:11ID:???
自分が行いたいソートをした結果です
こういうふうになるような関数を探しています
0042nobodyさん2005/11/27(日) 18:20:37ID:???
usort()使うなりして自分で関数作る
0043nobodyさん2005/11/27(日) 18:25:19ID:???
>>36
1つ目:
本当に意味を理解していて参照渡しにする必要があるなら両方に&をつけないとだめ。
ただし基本的には>>4の6。
PHPで参照が必要なのは2つ(またはそれ以上)の変数に対して、どの実体を指すかを連動して変更する場合のみ。
パフォーマンスを上げる目的で参照渡しにするのは大抵NGだろうね。

2つ目:
mysql_real_escape_stringしたらあとはクエリの中でシングルクォートでくくりさえすれば%はエスケープしなくてもいいよ。
LIKEにユーザーからの入力つっこむとか言い出すなら別かもしれないけど。

>>39
usort
0044nobodyさん2005/11/27(日) 19:23:13ID:XoOSQ9gn
explodeで\nを分割できたんだ・・・全く気づかなかった(^^;

>>16
array_pop($array);
0045nobodyさん2005/11/27(日) 21:28:46ID:???
>>36
つーか%のエスケープって%%だよね
・・・ってスレ違いなレスでスマソ
0046nobodyさん2005/11/27(日) 22:16:18ID:???
>>39
簡単にarray_multisort()で一発
0047nobodyさん2005/11/28(月) 01:55:14ID:???
array[0]

array['0']
って、同じもの何でしょうか。

今まで違うものだと思ってたので
予想外の結果が出てとまどっています。
誰か知ってる人確認させてください。


だとしたら、ってことは
array[0]、array[1]、…
ってのも実は連想配列だったんですかね…
0048nobodyさん2005/11/28(月) 02:07:56ID:???
マニュアル読め
0049nobodyさん2005/11/28(月) 02:25:52ID:???
質問です。
このスレではどれくらいの割合で、
「マニュアル読め」というレスがありますか?
0050nobodyさん2005/11/28(月) 02:28:04ID:???
>>49
マニュアル読め
0051nobodyさん2005/11/28(月) 02:52:44ID:???
>>49
20%くらいじゃないの?
0052nobodyさん2005/11/28(月) 02:55:53ID:???
>>50までで6%
0053nobodyさん2005/11/28(月) 03:13:59ID:???
聞いといてアレなんですが、暇だったので調べてみました。
前スレを対象にマニュアルでレスを絞り、
マニュアル嫁的なレスを数えてみたところ、18のレスがありました。
およそ2%ですね。ちなみにくだ質の前スレは20のマニュアル嫁的なレスがありました。

これからも頑張ってください^^
0054nobodyさん2005/11/28(月) 04:04:34ID:???
>>47
実際にはPHPには連想配列しかないと考えていいと思う。
マニュアルには
> 配列型は1つだ けで、整数または文字列のインデックスを使用することができます。
と表現されてるけど、実際にはインデックスには文字列しか使えないと言ったほうがベター。

PHPでは整数インデックスであってもハッシュ表を検索している。
つまり暗黙の型変換は'0'→0ではなく0→'0'の方向に行われる。
メモリ上のオフセットでアクセスする本物の整数インデックスと比べると計算理論上の計算量は等しいけど、実質的にはPHPで配列へのアクセスが大量にあると普段は高速なPHPもひどく速度落ちする。
ハッシュがらみ以外に余計な計算はしていないので、速度落ちの原因はそれ以外ないと思う。

「インデックスに整数も使える」と言っているのは、「Perlで言うハッシュしか使えない」という側面を隠蔽するためのPHP側の戦略。
ここに暗黙の型変換がうまい位置で役立っている。
まあ実用上は「整数も使える」とごまかしておいたほうがわかりやすいってのはあるけど。
0055nobodyさん2005/11/28(月) 04:10:38ID:???
ほんとマニュアルの冒頭くらいよんでからレスしてください
0056nobodyさん2005/11/28(月) 04:21:31ID:???
マニュアルもいいけどたまにはソースにあたるのもいいぞ。
PHPのハッシュは単純な見た目と操作感に反して、色々と工夫が面白い。
0057nobodyさん2005/11/28(月) 04:33:09ID:???
5.0.5(5.0.4だっけ?)や5.1.0でのforeach()のチューニングとか、頑張ってるよね。
0058nobodyさん2005/11/28(月) 04:34:37ID:???
>>57
なにそれ?くわしく。
0059nobodyさん2005/11/28(月) 04:54:44ID:a54yzRbD
パフォーマンス気にするくらいならPHPなんて使ってないだろ(w
0060nobodyさん2005/11/28(月) 04:57:09ID:???
>>59
釣りはいいよ。
0061nobodyさん2005/11/28(月) 04:57:41ID:???
釣りっていうか常連馬鹿
というかこいつレス読んでたんだなw
0062nobodyさん2005/11/28(月) 06:31:41ID:???
というか、ここは質問スレなんだが・・・
0063nobodyさん2005/11/28(月) 06:38:05ID:???
今気づいたのかよ
0064nobodyさん2005/11/28(月) 07:47:10ID:???
ろっぽんぞー
0065nobodyさん2005/11/28(月) 09:19:28ID:???
>>39
aaaが0だったのが、aaaが10になるようにsort?
0066nobodyさん2005/11/28(月) 11:36:21ID:ig9+vMm1
再帰を使ったディレクトリ操作でつまづいてます。

function scan_directories($dir) {

$file_array = array();

if (is_dir($dir)) {

$dh = opendir($dir);
chdir($dir);

while (false !== ($filename = readdir($dh))) {
array_push($file_array, $filename);
}

closedir($dh);

foreach ($file_array as $file) {
if (is_dir($file) && !is_parent_or_current($file)) {
scan_directories($file);
} elseif (is_file($file)) {
//ファイルに関する処理
}
}
}

こういう関数を作ったんですが、ひとつのディレクトリを降りていくだけで、
ほかのディレクトリが無視されます。どうしたら全部のディレクトリとファイル
を見付けてくれるのでしょう?
0067662005/11/28(月) 11:37:26ID:ig9+vMm1
あれ、インデントが消えてる。読みにくくてすみません。
0068nobodyさん2005/11/28(月) 11:56:02ID:8B6mTUuj
>>67
まず、「is_parent_or_current」が何か教えてくれ(−−;
0069nobodyさん2005/11/28(月) 12:06:34ID:y2JYG8tO
>>66
$fileにディレクトリパスを含んでない
0070nobodyさん2005/11/28(月) 12:18:27ID:???
一生悩んでろ(・・;
0071nobodyさん2005/11/28(月) 12:39:49ID:???
>>70
あなたには聞いてません。文と顔文字があってないですよ(´_ゝ`)プ
0072662005/11/28(月) 13:42:01ID:ig9+vMm1
>>68
ああ、すみません。指定ディレクトリが親ディレクトリか
カレントディレクトリの場合trueを返す関数です。

>>69
そのとおりでした。ありがとうございます。

とかいってまだ動いてないんですけどね。
回答くださってありがとうございました。
0073nobodyさん2005/11/28(月) 13:51:58ID:???
>>66
再帰から返った時点でchdirで上に戻ってないからまずいんじゃないの?
0074nobodyさん2005/11/28(月) 14:23:13ID:???
>>73
それは無い
0075nobodyさん2005/11/28(月) 14:39:51ID:???
>>74
アホか。
・chdir一切せず、$fileには初期のカレントディレクトリから相対パス全体を保持
・chdirしながら$fileにはbasenameのみ保持、再帰呼び出し直後でchdir("..")
のどちらかだろ。
どーせ理解できてないんだろうがな。
0076662005/11/28(月) 15:20:50ID:ig9+vMm1
>>75 >>73
おっしゃるとおりでした。
気が付かなかった私はあほやね。

今度は動きました。m(__)m
0077nobodyさん2005/11/28(月) 16:49:17ID:???
さて。ここで質問するのがもっとも適しているかどうかはわかりませんが、
Win2000Pro + Apache + (PostgreSQL or MySQL)
にて、LAN内のみにおいて、ブラウザベースでの簡易なデータベース操作(データ登録、削除、表示)を行いたいと思います。
当方、PHPはだいたい使え、SQLも問題ありません。(と思う)

ここで問題となるのが、ブラウザで表示した表の印刷に関してです。
通常テーブルタグにて適宜データを列挙するのがブラウザベースのやり方だと思いますが、
A3やA4縦などの所定の用紙に印刷するために、みなさんはどのような方法を取っていますか?
0078nobodyさん2005/11/28(月) 17:08:50ID:???
帳票出力と言うことならExcelに出力してるよ
COMでね
0079nobodyさん2005/11/28(月) 17:14:54ID:???
>>77
PDF
0080nobodyさん2005/11/28(月) 17:31:48ID:???
>>77
まあPHPのPDF関数がどこまでできるのか知らんけど、PHP+SQLで普通のWebページ作るのに慣れてるんだったらCSSでなんとかするのも一つの方法ではないかと。
たしかCSSって元々は出版関係とかにも使えるような仕様だったと思うからそこそこ使える希ガス。
widthとかmarginとかはパーセントでもセンチでも指定できるし、page-break-*とか組み合わせればけっこういけると思う。
スレ違いだけど。
0081nobodyさん2005/11/28(月) 17:36:42ID:???
>>80
http://msugai.fc2web.com/web/CSS/media.html
0082nobodyさん2005/11/28(月) 17:42:21ID:???
一昔前だが、PDF関連のライブラリが有償のしかみつけられなかったから全部自前で用意した記憶が。
その辺りのコスト考えるとCSSの方が手っ取り早いと思う。

無償のPDFライブラリがあるなら是非俺も知りたい。
0083802005/11/28(月) 17:42:59ID:???
>>81
なるへそ。一つかしこくなったかも。
ありがとん。
0084nobodyさん2005/11/28(月) 17:47:24ID:???
>>82
http://fpdf.japansite.net/
0085822005/11/28(月) 18:10:34ID:???
>>84
おほ
商用利用もフリーなのか
ちょっくら調べてみますありがd
0086772005/11/28(月) 19:15:10ID:???
お返事ありがとう^^
スタイルシートが手軽そうですが、PDFだとカコイイですね。
とりあえずPDF関連は知識がないので、
CSSで作成後、随時PDFにチャレンジしていこうかとおもいます。
0087nobodyさん2005/11/29(火) 07:03:16ID:???
アップロードしたファイルにidを持たせ『aのファイルはid=1を持っているのでtest.php?id=1でダウソ』できるようにしたいのですがMysqlでidは書き込んだ順に1づつ上がるようにしたんですがファイルにとなるとわかりません。
どうかご教授ください。
お願いします。
0088nobodyさん2005/11/29(火) 07:05:16ID:???
>>87
最大値を保持するテキストファイルでも作れば?
0089nobodyさん2005/11/29(火) 07:48:29ID:gl3Jq/2L
>>88
MySQLでやれよ(w
MySQLあるのにテキストファイルって。。。
0090nobodyさん2005/11/29(火) 08:00:13ID:???
>>87
MySQLで発行したidをファイルに付けるだけのことなんじゃ・・・
0091nobodyさん2005/11/29(火) 08:42:59ID:???
要はシーケンスの使い方がわからないってことじゃ?
MySQLは使ったことないけど、確かautoとかをカラム名の前に
つけるんじゃなかったっけ?
0092nobodyさん2005/11/29(火) 08:43:37ID:???
>>89
たったそれだけのことにMySQLを稼動させるのもw
0093nobodyさん2005/11/29(火) 08:46:50ID:???
一応、テキストファイルを使った最適な方法をば。

flock 後、ファイルを上書きモードで開き、
格納されてる数値を読み取った後、先頭にseekしてインクリメントした数値を書き入れる。
0094nobodyさん2005/11/29(火) 08:49:05ID:???
工工エエエエ(゚д゚;)エエエエ工工
0095nobodyさん2005/11/29(火) 08:59:09ID:???
>>94
ゑ?
0096nobodyさん2005/11/29(火) 09:03:09ID:gl3Jq/2L
>>92
テキストファイル読む方が遅いだろう。
SQL発行する方が速いし。

>>93
flockしたまま終了しちゃってるとか、seekできなかったとか、書けなかったとか、例外処理がいろいろ面倒だけどね。
0097nobodyさん2005/11/29(火) 09:14:19ID:???
ファイルのパス、ファイル名をレコードに持っておけばいいだけのような

番号をテキストファイルで管理するのは、シングルクライアントだと言い切れるならいいかもしれんが...
0098nobodyさん2005/11/29(火) 09:16:00ID:???
常識人はお呼びでないよ
0099nobodyさん2005/11/29(火) 09:30:46ID:???
>>87
ディレクトリの中のファイル一覧を作成して、その中で最大数となるファイル名(数字)に
+1して行くしかないよ。仮にMySQLで発行されるIDと関連付けるならmysql_insert_id();
で新規追加されたIDを拾得してそれをファイル名に使えばOK。
0100nobodyさん2005/11/29(火) 09:38:42ID:???
同時アクセスがあったときにインクリメントだけでファイルの名前付けやってると
同名ファイルでかち合ったりしないかと危惧しているのですよ

ファイルのまんまバイナリでDB放り込むってのもアリではないですかと
0101nobodyさん2005/11/29(火) 10:37:45ID:???
>>100
そこまで読むかww
0102nobodyさん2005/11/29(火) 11:07:17ID:???
そこまで考えるなら、ロック用ファイルを最初から最後までロック。
0103nobodyさん2005/11/29(火) 11:18:43ID:???
>>96
flockはプロセス終了で自動的に解除じゃないっけ?

>>100
flockだけの単純な構造でも、同時アクセスでもかちあったりはしないよ。
連続でflockを囲んで1000回ファイルをアクセスを繰り返すスクリプトを、複数ブラウザから同時に起動させても、
ちゃんとカウントは ブラウザ枚数×1000 になる。
0104nobodyさん2005/11/29(火) 11:23:27ID:???
ていうか、うpろだを作るなら、ページ読み込みごとにフォルダ内検索でもあるまいし、
うpされているファイルのレコードを作成しておくのが自然だから、
(うptime, REMOTE_ADDR、オリジナルファイル名、ファイルサイズ、ファイル種別、等)
それでもって極めて普通に1レコード作ればいいんじゃ。
IDはシーケンス。
01051042005/11/29(火) 11:39:40ID:???
スマソ質問の意味を勘違いしていた。

とりあえず、UNIQ_IDでファイル名を保存しておいて、MySQLにインサートした後IDを取り出し、
それでもってファイル名を変更する。
でいいんじゃないかな?
0106nobodyさん2005/11/29(火) 12:11:28ID:???
キーフィールドを「auto_increment」にして、
ファイル名をuniqidで振りなおしてから管理しとけばいいんじゃねぇの?
0107nobodyさん2005/11/29(火) 12:14:13ID:???
PHPの質問マダァ?
0108nobodyさん2005/11/29(火) 14:38:43ID:???
んでは期待に沿ってPHPのちつもんです。

わたくし、PHP3国際化版にて日本語文字対応の掲示板を作成したことがあります。
さて、季節もうつろい、現在は国際化PHPというのではなく、JSTRINGというので日本語を対応していると聞きます。
ただ、JSTRINGという名詞しか知らないので、これからやろうとする私に、
よくわかるようにおしえていただけませんか?
0109nobodyさん2005/11/29(火) 15:05:44ID:???
膣門
0110nobodyさん2005/11/29(火) 15:18:42ID:oXQKlnSf
ファイルの先頭に追記したいんですがどうしたらいいですか?
一度ファイルの内容を退避して、新データ+退避データを全部書き込まなければいけないんでしょうか?
それだと時間かかるし、ファイルの最後に追記すると、出力するときにデータを最後まで読まなければいけないんで、
なんかいい方法plz!
0111nobodyさん2005/11/29(火) 15:19:39ID:???
これもFAQに入れといたほうがいいんじゃねーの
0112nobodyさん2005/11/29(火) 15:20:34ID:???
>>110
ファイルアクセスってそういうもんだよ
うまい方法なんてないよ
データベースでも使えよ
0113nobodyさん2005/11/29(火) 15:35:51ID:???
>>110
> 時間かかるし

実際、時間掛かったんでしょうか?
0114nobodyさん2005/11/29(火) 15:36:05ID:???
>>108
PHP4+でmbstring使ってください。

>>110
ファイルの先頭に挿入するには全体を書き換えるしかない
あ、末尾に追加する方で最後のデータの位置(ftellの返り値)だけ別のとこに保存しとく手もあるか。
サイトの規模や内容をよく吟味して決めてくれ。(読み込みが多いか書き込みが多いかとか)
多くの場合>>112の言うようにDB使えば無問題だけどね。

>>111
たしかにそうかも。
0115nobodyさん2005/11/29(火) 16:14:09ID:???
>>110
安全のため、別ファイルを新規作成しそれに書き込み、完了後前ファイルを消すなりRenameしてばくあっぷとるなりして、
新たに作成されたファイルをRename。

ここまで、最初にファイルを開く前からロックファイルを使うなりしておく。
0116nobodyさん2005/11/29(火) 17:04:57ID:???
fseekでファイルポインタを末尾(もしくは末尾付近)に移動してから読み込む
0117nobodyさん2005/11/29(火) 18:29:12ID:???
Pukiwikiみたいに/?○みたいな引数を受け取るにはどうすればいいですか?
0118nobodyさん2005/11/29(火) 18:31:11ID:???
くえりーすとりんぐ♥
0119nobodyさん2005/11/29(火) 20:06:04ID:???
ぱすいんふぉちゃうんかと
0120nobodyさん2005/11/29(火) 20:48:39ID:???
げっと
0121nobodyさん2005/11/30(水) 04:53:39ID:???
ちょっと>>110さんの質問と似ていますが・・
ファイルの途中一行だけを書き換える場合も同じ方法になるんですよね?
ttp://ns1.php.gr.jp/pipermail/php-users/2004-February/020845.html
ここの
>修正対象行以外に用はないので、1行読み込んだらすぐに書き出し、
>修正対象行は修正後に書き出すようにすれば、バッファは 1行分で済みます。
って、どういうことなんでしょうか?
色々考えたんですが、さっぱり・・・
0122nobodyさん2005/11/30(水) 05:40:48ID:???
>>121
file()とかfile_get_contents()で全部一気に読まず、fgets()とかで一行ずつ読んですぐ書き出せってことでしょ。
その時に元のファイル(読み用)と書き出し先ファイルの名前をどちらか一時的に変えて、全てが終わったら一時ファイルを削除って形にしなきゃいかんわな。
まあfile()のほうが楽だし、よほど重大な問題(ファイルがデカすぎ→メモリ使いすぎ、とか)を引き起こさない限りは丸ごと読み込んだって大したことないと思うけどね。
さらに言えば、file()じゃまずいほどのデータを扱う規模ならDB使うべきだと思うし。
0123nobodyさん2005/11/30(水) 07:10:29ID:???
レン鯖だとDB使えない、もしくは、一つしか作成出来ないとか言う弊害あったりするから、まぁ仕方ないよ。うん。
01241212005/11/30(水) 10:09:06ID:???
レスありがとうございました。
何か気持ち悪いけど、file()で行きます。
0125nobodyさん2005/11/30(水) 11:28:35ID:???
file()関数で共有ロックとかしてくれりゃーいいのにな。
0126nobodyさん2005/11/30(水) 12:14:52ID:???
>>125
複数ファイルの整合性のためにも、file()より大きな枠でflockがあるから役立つ。
0127nobodyさん2005/11/30(水) 12:30:28ID:???
>>125
file()単独でロックしてもしょうがないじゃん
0128nobodyさん2005/11/30(水) 20:33:11ID:LTeKbaFs
あげ
0129nobodyさん2005/12/01(木) 09:52:22ID:r3P18a2X
requireしてるファイルとかの関係をツリー上に表示できたり
するツールってあったら教えてもらえませんか?

あと、みなさん、開発時に便利だと思ってるツールがあれば
教えてください。<m(_)m>
テキストエディタだけで開発してますが、なんかいいのがあったら
使ってみたいのでー
0130nobodyさん2005/12/01(木) 09:55:14ID:???
おれはデザインもしてるからDreamWeaver必須だな
0131nobodyさん2005/12/01(木) 10:03:37ID:???
vim。
マウス不要で手が疲れにくい。マジ最強!
0132nobodyさん2005/12/01(木) 10:10:21ID:???
>>130
デザ上がり?
0133nobodyさん2005/12/01(木) 10:20:05ID:???
vimとかemacsとかって使いこなせるようになるまでが大変そうだね。
おれはEclipse。
0134nobodyさん2005/12/01(木) 10:23:56ID:???
edlin
0135nobodyさん2005/12/01(木) 10:26:05ID:???
>>129
phpDocumentorじゃ力不足かな?
requireだと引数に変数渡せたり、include_pathがまちまちだったり、PHP5だと__autoloadとかあるからちと厳しそうだね。
引数が変数でないもの限定とかならCLIでささっと書けるんじゃないかな。
あとgrepでも(ツリー上にはできないけど)ある程度抽出できると思う。
0136nobodyさん2005/12/01(木) 10:46:56ID:???
>>132
んにゃ
ネットワークエンジニア→webPG→鯖管&ヘルプデスク→windowsappPG→webデザイン→何でも屋(泣

こうして何でも屋さんのできあがり
01371292005/12/01(木) 12:21:46ID:dlWTNPt6
>>135
あ、ちょっとよさそうすね。
人のプログラムおっかけるのに、苦労してて、ツリー上に表示できるのが
あると便利だなーと思いまして。
Eclipseとかでできると楽なんですけどね。
0138nobodyさん2005/12/01(木) 13:17:38ID:???
php4とphp5が共存している環境で、明示的にphp5を使用する方法は無いのでしょうか?
0139nobodyさん2005/12/01(木) 13:26:30ID:???
#!/usr/local/bin/php5
0140nobodyさん2005/12/01(木) 13:27:18ID:???
>>138
明示的にphp5を使用する方法が無い場合は、共存してるって言わないと思うよ。
その共存環境を作った人に聞いてみ。
0141nobodyさん2005/12/01(木) 13:43:00ID:???
>>138
拡張子かスクリプトを置くディレクトリでキックするPHPを分ける。
CGI版の最初の1行目パスで切り替えてもいいけどね。
0142nobodyさん2005/12/01(木) 13:44:20ID:???
あ、あとWebサーバ分けて別ポートで運用して
リクエストするポートで切り替える手もあるな。
運用テストに良く使う
0143nobodyさん2005/12/01(木) 13:49:26ID:???
>>138
拡張子だね。
私は昔、php3なら国際化PHP3、phpならphp4となるようにしてた。
たしか、Apacheのhttpd.confで設定したかもしれない。
01441382005/12/01(木) 13:54:14ID:???
みなさんどうもありがとうございます
0145nobodyさん2005/12/01(木) 15:07:47ID:iXMXSlHn
ファイルを開いて特定の文字を置き換えたいのですが、うまくいきません。

$newfile = "./somefile.html";
$ddr = fopen("$newfile", 'w');
$adr = strtr($ddr, "夏 ", "冬");
fwrite($ddr, $adr);

これを実行するとsomefile.htmlの中には Resource id #3 
という文字だけになって、元あった文字も無くなってしまいます。
特定の文字だけを置き換えて上書きするにはどうしたらよいでしょうか。
よろしくお願いします

0146nobodyさん2005/12/01(木) 15:14:30ID:???
>>145
> $adr = strtr($ddr, "夏 ", "冬");
この辺りの関数の使い方(つーより理解?)がおかしい。

スレの上の方でファイルの書き換えの話をやってるから、みてごらん。
0147nobodyさん2005/12/01(木) 15:20:15ID:???
>>145
マニュアル読んでーっ!!!!

$newfile = "./somefile.html";
$ddr = file_get_contents($newfile);
$adr = strtr($ddr, "夏 ", "冬");
file_put_contents($newfile, $adr);
01481452005/12/01(木) 16:50:50ID:???
レスありがとうございます!
>>147で試してみましたが関係のない文字が
変な風に変換されるだけでした。
(ひらがなの ”と” が ”め” になったり、”夏”が”冏”になったり)
文章を長くしたり短くしたりしても駄目でした
0149nobodyさん2005/12/01(木) 17:05:53ID:???
>>148
http://www.php.net/strtr
http://www.php.net/str_replace
http://www.php.net/preg_replace
0150nobodyさん2005/12/01(木) 17:12:23ID:???
>>149
つーか、mb_eregじゃねーのか?
0151nobodyさん2005/12/01(木) 17:12:53ID:???
>>150
あっ、mb_ereg_replaceな
0152nobodyさん2005/12/01(木) 17:18:48ID:???
まあstr_replaceかな
0153nobodyさん2005/12/01(木) 17:24:25ID:???
>>148
つ[マルチバイト関数]
01541452005/12/01(木) 18:44:46ID:???
<?php
$newfile = "somefile.html";
$ddr = file_get_contents($newfile);
$adr = mb_ereg_replace("秋", "冬", $ddr);
file_put_contents($newfile, $adr);
?>
strtr,str_replace,も試してみたのですが、
英語⇔英語は置き換えできても、
日本語⇔英語、日本語⇔日本語はできませんでした。
環境からまた見直してみます。皆さんありがとうございました。
0155nobodyさん2005/12/01(木) 18:48:33ID:???
>>154
mb関係の設定はどうなっているんだ?
サーバーの文字コードとファイルの文字コードとかは?
01561452005/12/01(木) 19:05:41ID:???
>>155
文字コードでできました!
EUC-JPで保存してたつもりがUTF-8でした・・・
超凡ミス・・・・
皆さんのおかげでできました!本当にありがとうございました!
0157nobodyさん2005/12/01(木) 19:27:18ID:???
>>154
一応排他処理しないと
0158nobodyさん2005/12/01(木) 19:58:27ID:???
file_put_contentsって5からだったと思うから使う環境の事も考えないとダメだよ
0159nobodyさん2005/12/01(木) 20:10:02ID:mUwPwikL
CURL関数を使いたいのですが、上手くいきません。

$host = "http://www.hogehoge.com";
$ch = curl_init( $host );

curl_setopt( $ch, CURLOPT_HEADER, 1 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 0 );
curl_setopt( $ch, CURLOPT_FAILONERROR, 1 );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $this->m_timout );
curl_setopt( $ch, CURLOPT_HTTPHEADER, $head );

$result = curl_exex($ch);
$err = curl_error($ch);

で、$resultには何も返ってきません。
$err には「Couldn't resolve host 'www.hogehoge.com''」 というメッセージが返ってきます。
しかし、コンソールで
curl -I http://www.hogehoge.com
を実行した場合には正常に名前解決もでき、正常な結果も返ってきます。

PHPのCURL関数を使用した場合だけ名前解決ができていないようなのですが、
どうすればいいのか途方にくれています。
よろしくお願いします。
0160nobodyさん2005/12/01(木) 20:12:28ID:???
追記です。

$this->m_timout の値は120を指定しています。
0161nobodyさん2005/12/01(木) 21:27:37ID:???
突然の質問ですいません。。。。
http://fooos.com/のようなメールのcgiを知りませんか?
0162nobodyさん2005/12/01(木) 21:46:55ID:cg4HP1lw
質問です
pyaというサイトをにもありますが、
良い 悪い を評価するボタンを設置するにはどうすればいいですか?
0163nobodyさん2005/12/01(木) 21:54:56ID:???
みんな、日本語は正しく使おうね。
01641622005/12/01(木) 22:01:12ID:???
>pyaというサイトをにもありますが、
正しくは
>pyaというサイトにもありますが、
でした。。
0165nobodyさん2005/12/01(木) 22:03:43ID:???
>>164
そういうスクリプトを探すなり、自分で書くなりすればいいだけですよ。
そのpyaとやらのサイトもそうやって作られたものです。
0166nobodyさん2005/12/02(金) 00:06:46ID:???
IPv6の設定がらみで取れんことがあったな...
PHPでcheckdnsrr()とかgethostbyname()で引いたときにIPが取れる?

01671662005/12/02(金) 00:07:26ID:???
>>159

0168nobodyさん2005/12/02(金) 04:43:38ID:FIP91xbi
xampp/windowsのphp5を、5.1.1にリプレースしたところ、
browscap.iniが読めないと言われました。
初耳だったので検索したところ、
ブラウザ情報の設定ファイルとのことなので、
http://jp.php.net/manual/ja/faq.obtaining.php#faq.obtaining.browscap
ここにかかれたURLからダウンロードして設置しましたが、
360行でパースエラーが出ます。
どうすれば解決できますか?
0169nobodyさん2005/12/02(金) 08:49:34ID:???
mailtoのアンカーを押すと同時に、
違うページに飛ぶには、
どうしたらよいでしょうか?
0170nobodyさん2005/12/02(金) 08:56:15ID:???
>>169
JavaScript を使うがいいさ
0171nobodyさん2005/12/02(金) 08:57:09ID:rQNTnY5j
>>168
エラーをコピペ汁!
漏れの所では問題ない。

>>169
ブラウザ依存。PHPでmailtoの挙動なんて指定できないよ。
01721692005/12/02(金) 08:57:48ID:???
>>170
ありがとうございます。

携帯電話でも、使えるようにしたいため、
Javascriptは使えません。

よろしくお願いします。
0173nobodyさん2005/12/02(金) 08:58:52ID:???
>>169
onclick('document.href=スレ違い')
0174nobodyさん2005/12/02(金) 09:04:47ID:???
>>172
メール送信フォームでも使っとけ。
嫌ならスレ違いだ、どっかいけ
01751692005/12/02(金) 09:27:40ID:???
>>173 >>174
ありがとうございます。
どうも、無理みたいですね。
0176nobodyさん2005/12/02(金) 09:44:04ID:???
mailtoじゃなくて普通のアンカーでページ飛んじゃだめなのか?
0177nobodyさん2005/12/02(金) 10:25:34ID:???
5.1.1出るの早過ぎw
0178nobodyさん2005/12/02(金) 10:32:29ID:???
>>169
そもそもボウヤは、「何を実現したいのか」を書いた方がいい。
0179nobodyさん2005/12/02(金) 10:38:11ID:???
>>178

夢を実現したいんです!!
0180nobodyさん2005/12/02(金) 10:39:20ID:???
>>179
それならスレ違い、いや板違いかw
01811692005/12/02(金) 11:35:20ID:???
メーラーにmailtoで、to と subjectを
送った時点で、
ありがとうございました。等を
表示させたいんです。
携帯電話で利用したいので、
Javascriptは使えないんです。
0182nobodyさん2005/12/02(金) 11:43:22ID:???
>>181
立ち上げたメーラーが、実際メールを送ったかどうかを判断できないのでそもそも仕様から不可能。
(メール送らずにメーラー閉じたりする場合もあるから)
0183nobodyさん2005/12/02(金) 11:44:11ID:???
>>181
俺の携帯はmailtoすると元のページにすら戻らないからどっちにしても関係ないや
01841692005/12/02(金) 11:45:10ID:???
>>182 さん
ありがとうございます。

ただ、そのリンクもしくはフォームをクリックした時点で、
切り替わってくれれば、問題ないのですが、
それも、不可能ですか?
0185nobodyさん2005/12/02(金) 11:48:25ID:???
>>181
JavaScript使えないんじゃ無理っぽいね。
つかmailto使わずに、自分でメール用のフォーム作ってPHP側でメール送信するようにすれば目的としていることはできると思うよ。
01861692005/12/02(金) 11:52:22ID:???
PHPで、sendmail等を使う場合、送信メールアドレスの
確認がとれないですよね。
0187nobodyさん2005/12/02(金) 11:56:20ID:???
掲示板にしておけ
0188nobodyさん2005/12/02(金) 12:01:52ID:???
そもそも、いったいなんのためにメールを使いたいのか。
なんか糞仕様を考えているような気がする。;
0189nobodyさん2005/12/02(金) 12:04:40ID:???
>>186
確認してどうすんの?
後々返信とかしたいなら、ユーザにメルアドを入力するかどうかを任意で選ばせるべきだと思うけど。
(返信されたくないユーザだっているでしょ)
メーラーを使わせる仕様にしたっていくらでも偽装できるしね。
01901692005/12/02(金) 12:10:14ID:???
いろいろご意見ありがとうございました。
違う方法で考えてみます。
0191nobodyさん2005/12/02(金) 18:35:21ID:???
phpじゃ無理だけど自前でsmtpで受けて表示するかだね。
そんな事するなら直接受け取れるフォームにするけど(w

エロサイトの課金チェックとかそういうのが遣りたいのかねえ?
0192nobodyさん2005/12/02(金) 19:02:39ID:???
>>190
サイトつくったらここで宣伝しろよ。
穴見つけにいくからw
0193nobodyさん2005/12/03(土) 19:43:03ID:???
>>192
index.php?cat=%5Cetc%5Cpasswd
とかできると便利だね。
0194nobodyさん2005/12/04(日) 08:33:32ID:???
PHP5 セッションについて質問

あるクラスが配列で別のクラスのインスタンスを複数持つような、
複雑な階層構造を持つクラスはセッションに保存できないんでしょうか?

具体的な症状としては、複雑な階層構造を持つクラスをserializeし、
後にunserializeするときに Node no longer exists という警告がでます
0195nobodyさん2005/12/04(日) 08:38:48ID:???
>>194
session_start()する前にクラス定義がないとだめだよ。
http://www.php.net/manual/ja/ref.session.php
0196nobodyさん2005/12/04(日) 12:30:55ID:???
>>195
ありがとうございます。ご助言を頼りに、なんとか無事にunserializeできました!

シリアライズされたデータをvar_dumpしたところ、
SimpleXML型のデータとしてシリアライズされていたということが分かりました。
(XMLから読み込んだユーザデータをシリアル化しようとしていた)
これを読み込み時にString型にキャストすることで無事事なきを得ました。
0197nobodyさん2005/12/04(日) 19:21:04ID:PbAtq7vQ
めっちゃ下がっとるやん
0198nobodyさん2005/12/04(日) 19:33:56ID:???
下でこそこそやるのが好きなんだよ…。
01991452005/12/04(日) 19:58:24ID:???
1 <html>
2 <head></head>
3 <body>
4 <p>あああああああああ
5 <p>いいいいいいいいい
6 <p>うううううううううううう
7 </body>
8 </html>

というファイルの、5行目から下(6,7,8,)を削除して
上書きさせたいのですがどうしたらよいでしょうか。
よろしくお願いし舞う
0200nobodyさん2005/12/04(日) 20:00:09ID:f2NWnh3L
名前が入ってしまいましたすいません
0201nobodyさん2005/12/04(日) 20:11:12ID:???
行という捉え方をしてる時点でもう負け組なわけよ。
単なる改行コードという、言い換えればaやbと同じような記号が入ってるだけなんよ。
そういう一つの長い文字列から特定部分を取り除こうとしたら、どうしたらいいと思う?
そう、改行コードを最初から数えていって、狙った個数になったところでチョン切って、
またまた削除したい分の改行コードの個数を数えて行ってチョン切って、
それを繋ぎあわせるつー事になるわけよ。

まぁ、改行コードの部分で自動的にぶった切ってくれる関数を使ってもいいけどな。
0202nobodyさん2005/12/04(日) 21:05:43ID:???
>201
お前www
思いっきり負け組みじゃんw
0203nobodyさん2005/12/04(日) 21:10:45ID:???
>>199
"5"行目まで残して、以下は削除、でいいんだな?

$path = "hoge.html";
$a = file($path);
$fp = fopen($path, "w");
foreach ($a as $line)
fprintf($fp, $line);
fclose($fp);
0204nobodyさん2005/12/04(日) 21:12:38ID:???
>>203
中途半端なまま送っちまった

$path = "hoge.html";
$a = array_slice(file($path), 0, 5);
$fp = fopen($path, "w");
foreach ($a as $line)
fprintf($fp, $line);
fclose($fp);
0205nobodyさん2005/12/04(日) 21:13:30ID:???
>>203
う〜む…
02062012005/12/04(日) 21:14:26ID:???
>204
行という捉え方をしてる時点でもう負け組なわけよ。
02071992005/12/04(日) 21:48:49ID:???
>>204
ありがとうございます!できました!
5行目以前を取得する、んですね。
5行目以降を削除する事だけしか考えてなかったので、
自分では絶対無理でした^^ほんとにありがとうございます
>>201
substr_count($htmlfile, "<p>") <= 2){
みたいな感じで部分を指定して取得してやるんでしょうか?
そっちのやり方も勉強してみます。もの凄くヒントになりました。
ありがとうございました
0208nobodyさん2005/12/04(日) 21:51:40ID:???
くだらねえ質問だな
0209nobodyさん2005/12/04(日) 22:05:51ID:???
私なら5行目までのファイルを別に作っておくけどな
0210nobodyさん2005/12/04(日) 22:06:40ID:???
ああ




0211nobodyさん2005/12/04(日) 22:08:04ID:???
6行ありますが?w
0212nobodyさん2005/12/04(日) 23:10:09ID:???
特定の情報で括って結果を出力する場合、URLが↓のようになりますが、

search.php?name=テスト

このようにURLに漢字が入るとブラウザによっては表示できませんよね?
getの時のようなURLにするにはどうすればいいのでしょうか?
0213nobodyさん2005/12/04(日) 23:12:53ID:???
スレ違い
0214nobodyさん2005/12/05(月) 00:10:36ID:???
>>212
>URLに漢字が入る
がオカシイ。まあ海外厨避けに生sjisで
ゴニョゴニョすることも無いわけではないが、
まともなやり方じゃないしね。
0215nobodyさん2005/12/05(月) 00:15:50ID:???
MySQLのFORMAT_DATE関数のように、特定フォーマットの日付を色々変換できる関数って存在しますか?
たとえば、 2005-12-15 -> December 15 とかに変更したいのです。
strtotime()で一旦タイムスタンプに戻して、date()でやっているのですが、他に方法あるでしょうか。
0216nobodyさん2005/12/05(月) 01:02:07ID:???
>>212
http://jp.php.net/manual/ja/function.urlencode.php
0217nobodyさん2005/12/05(月) 01:40:51ID:???
>search.php?name=テスト
>
>このようにURLに漢字が入ると

>search.php?name=テスト
>
>このようにURLに漢字が入ると

>search.php?name=テスト
>
>このようにURLに漢字が入ると

>search.php?name=テスト
>
>このようにURLに漢字が入ると

>search.php?name=テスト
>
>このようにURLに漢字が入ると

>search.php?name=テスト
>
>このようにURLに漢字が入ると

0218nobodyさん2005/12/05(月) 05:07:22ID:???
どうでもいいがコピペ長すぎ。せめて3つまでに汁。
0219nobodyさん2005/12/05(月) 09:34:45ID:???
>>215
ない
0220nobodyさん2005/12/05(月) 13:59:59ID:mqRTUQ8g
>>212はスレ違ってないだろ
urlencode()
0221nobodyさん2005/12/05(月) 14:04:55ID:???
よくみたら既出かorz
GETの時のようなというよりGETそのものなんだな。
0222nobodyさん2005/12/05(月) 17:33:48ID:???
「URLエンコード」って名称を知らないプログラマが多いようで、全く同じ質問が時々出るな
名称を知ってりゃ検索であっさり見つかるんだが・・・
FAQに加えないか?
0223nobodyさん2005/12/05(月) 17:58:56ID:zZ7taK0k
いいんじゃないの
本来はPHPと関係ないから他でやってほしいけどね
0224nobodyさん2005/12/05(月) 18:03:00ID:???
くだスレが適当です。ちびっこの諸君はくだスレで僕と握手!
0225nobodyさん2005/12/05(月) 18:22:55ID:???
俺は初めて見たけど。なんというかテンプレ文にし辛そうだな。
GETやPOSTで日本語を送信するには、とか?
0226nobodyさん2005/12/05(月) 20:28:59ID:???
??. "%xx%xx"形式に変換したい、URLに全角文字を含ませたい
 → urlencode()
でいいんじゃないの?
0227nobodyさん2005/12/05(月) 21:05:29ID:???
HTTPについての知識が無い
 →くだ質スレ
PHPのマニュアルを読んだことが無い
 →くだ質スレ
リア厨・リア高だ
 →くだ質スレ
ニートだ
 →くだ質スレ
0228nobodyさん2005/12/05(月) 21:06:39ID:???
>>227
 →くだ質スレ
0229nobodyさん2005/12/05(月) 21:58:13ID:???
>>227
HTTPがわからんのはWebprog初心者の質問が適当
0230nobodyさん2005/12/06(火) 14:32:19ID:???
>>229
ただ、初心者はどこで質問するのが適当かわからない。
0231nobodyさん2005/12/06(火) 15:22:41ID:???
排他制御で、ディレクトリをフラグとしてロックをかけようと思うのですが
15ページほどのサイトで全てのページに
同じディレクトリをフラグとしてロックをかけたら、
アクセスが増えるとすぐに破綻しますか?

どのページでも同じファイルにアクセスしているので
こういう事をしなければならなくなってしまったのですが。
0232nobodyさん2005/12/06(火) 16:22:55ID:???
>231
>1-5
>1-5
>1-5
>1-5
>1-5
>1-5
0233nobodyさん2005/12/06(火) 16:34:20ID:???
>>231
ディレクトリのはおすすめできない
0234nobodyさん2005/12/06(火) 16:58:36ID:???
>231
そうそう破綻しない。
いまのマシンはスペックが昔と段違いなので大丈夫。
心配しすぎです。
0235nobodyさん2005/12/06(火) 17:02:03ID:???
>>233
flockよりよくねーか?
0236nobodyさん2005/12/06(火) 17:02:41ID:???
どうしても心配なら rename を使った排他制御の手法の方が速いのでそちらを使うのがよい
0237nobodyさん2005/12/06(火) 17:20:18ID:???
ケントのスクリプトを改造マジオススメ!
0238nobodyさん2005/12/06(火) 18:28:29ID:???
すいません、質問です。

$numには数字が入ってるとして

$function = "f_$num";
$function($arg);

を1行で実行する事ってできませんか?
$functionの引数はいくつとるかわからないと仮定してます。
0239nobodyさん2005/12/06(火) 18:29:11ID:???
ちなみに

"f_$num"($arg);

はいけそうな気もしましたがパーサーエラーになりました。
0240nobodyさん2005/12/06(火) 18:39:46ID:???
参照返さなくていいなら出来るよ
0241nobodyさん2005/12/06(火) 18:40:38ID:???
教えてください
02422332005/12/06(火) 19:02:24ID:???
>>236
私も rename 推奨者です。
0243nobodyさん2005/12/06(火) 19:22:36ID:???
>>239
evalじゃなくて?
0244nobodyさん2005/12/06(火) 19:32:33ID:???
http://php.net/manual/ja/ref.funchand.php
0245nobodyさん2005/12/07(水) 00:55:03ID:???
プログラム中で終了しそうな場面って、
returnとexit()以外に何かありますか?
0246nobodyさん2005/12/07(水) 01:05:31ID:???
Fatal Errorを出すようなものも終了しちゃうね。requireとか。
質問の意図がよく分かんないけど、
想定していない場所で終了しちゃってその場所を特定したいしたいってことなら、
エラー処理や関数の返り値をチェックをきちんとしたり、デバッガーを通すとかしたほうがよいかと。
0247nobodyさん2005/12/07(水) 01:13:43ID:???
die
0248nobodyさん2005/12/07(水) 01:14:27ID:sd3DaoFD
`halt -p`
0249nobodyさん2005/12/07(水) 01:35:55ID:???
phpファイルのHTML記述部分に<? ... ?> と書きたい場合
どうすればいいんでしょうか。
0250nobodyさん2005/12/07(水) 01:37:33ID:???
>>249
xml宣言なら
<? echo "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>" ?>
とか
0251nobodyさん2005/12/07(水) 01:44:25ID:???
PI風のショートオープンタグをオフって、jaspタグを使うとか
0252nobodyさん2005/12/07(水) 02:32:31ID:pljJCe1f
>>249
実体参照
0253nobodyさん2005/12/07(水) 03:03:18ID:???
>>252
表示されちゃうじゃん
0254nobodyさん2005/12/07(水) 03:08:57ID:???
session_start ( );
if ($_SESSION['name'] == '') {
$_SESSION['name'] = 'hoge';
} else {
echo $_SESSION['name'];
}

のようなコードを書いて実行したところ、
PCからは上手くセッションが実行できましたが、
携帯からは実行できませんでした。
何がいけないんでしょうか。
0255nobodyさん2005/12/07(水) 03:09:27ID:???
ググれ
0256nobodyさん2005/12/07(水) 03:13:17ID:???
マニュアルのセッションのページ見ろよおおお
0257nobodyさん2005/12/07(水) 03:16:11ID:???
>>254
PHPのセッションの実装には、cookieとURL書き換えの2つがある。
0258nobodyさん2005/12/07(水) 03:28:12ID:???
http://www.php.net/manual/ja/ref.session.php

セッションの説明のどこにありますか?
長すぎるのでヒントだけでも教えてください
0259nobodyさん2005/12/07(水) 03:46:25ID:???
知っておく必要があることばかりだから、全部読んで理解しましょう。
02602542005/12/07(水) 05:25:40ID:???
読んできました。
クッキーを使う方法とURLを使う方法があると書いてありました。
URLを使う方法はセッションIDをURLに埋め込んで渡すと書いてありました。

たぶん254のコードは、携帯がクッキーを扱えないことが
原因となっていたのだと考えました。


が、違うサーバで上のコードを実行したら
見事意図したとおりに動きました。
もちろんURLに埋め込みなんてしていません。

これはどういうことでしょうか。
0261nobodyさん2005/12/07(水) 05:56:48ID:???
>>260
session.use_trans_sid じゃないの?

0262nobodyさん2005/12/07(水) 06:05:53ID:???
session.use_trans_sid あたりかねぇ。
02632622005/12/07(水) 06:11:42ID:???
あー。>>261さま、おはようございます。。。
こんな時間に起きてるヤツいないべ、と思ってリロードしなかったワタクシめを土ブタと泥ガメと罵りくださいませ・・・
0264nobodyさん2005/12/07(水) 06:23:43ID:???
>>262
土ブタ、泥ガメ、ぬるぽ
0265nobodyさん2005/12/07(水) 07:14:30ID:???
>>260
自分でURL埋め込まなくてもPHPが勝手につけてくれる設定になっているサーバ
0266nobodyさん2005/12/07(水) 11:09:11ID:???
txtファイルの上から5行をページ1で読み込みページ2で続きの6〜7をみたいな感じで読み込んで行くにはどうゆう記述をすればできるのでしょうか?
0267nobodyさん2005/12/07(水) 11:22:30ID:???
>>266
むしろ書き出す時にページ分けする。
0268nobodyさん2005/12/07(水) 11:37:22ID:???
>>266
ex) hoge.php?page=2
$path = "hoge.txt";
$count = 5; // $_GET['count']
$offset = ($_GET['page'] - 1) * $count;
foreach (array_slice(file($path), $offset, $count) as $line)
 echo $line;
0269nobodyさん2005/12/07(水) 12:32:01ID:???
ちょっと私用で試すことができないので金曜日に試してみるので試したら報告しにきます。
ありがとうございました。
0270nobodyさん2005/12/07(水) 12:37:29ID:???
>>269
ちなみに、268はそのままじゃうごかんぞ。
ま、みりゃ分かるだろうけど。
0271nobodyさん2005/12/07(水) 13:25:57ID:???
>>270
どゆこと?
0272nobodyさん2005/12/07(水) 13:28:18ID:???
まずPHPでラーメン作れるようになってみろ
話はそれからだ
0273nobodyさん2005/12/07(水) 13:33:12ID:???
そんな感じのスレあったけどすげー糞スレだったじゃん
0274nobodyさん2005/12/07(水) 13:42:04ID:???
質問です。
携帯用サイトで動画ファイルのダウンロード数を計上したいのですが、
どのタイミングで変数をインクリメントしたらよいのか分かりません。
現状では単に動画ファイルへのリンクを張っていて、ダウンロードはできるのですが
「ユーザがそのリンクを押したかどうか」を捕捉してなんらかの処理をさせるということができていません。
携帯用のサイトなのでjavascriptは使えません。
ファイルがダウンロードされたかどうか知るための方法といったものは用意されていないのでしょうか。

よろしくお願いします。
0275nobodyさん2005/12/07(水) 13:47:36ID:???
>>274
簡単な話がPHPでファイルの中身を出力したらいい。

download.php
<?php
 // ここらへんでカウント
 header("Content-type: 〜");
 readfile($_GET["filename"]; // すげーテキトーだけどまあ雰囲気だけ
?>

で動画へのリンクはdownload.php?filename=hoge.mpgみたいな感じ。
0276nobodyさん2005/12/07(水) 14:31:04ID:???
>>274-275
auだと分割ダウンロードしようとするから、
rangeとかの処理を書いてやるか、
PEAR Downloadを使わないとだめよ。
0277nobodyさん2005/12/07(水) 16:06:56ID:Umsh9cPc
phpでアカウント発行させる方法で悩んでいます。

海外だと、ユーザ認証させてから閲覧・投稿等の権限レベル毎にページを生成するフォーラムサイトとか多いですよね。

ユーザにアカウントを申請させ〜仮発行メール送信〜そのメールに記載したURLをクリックして本登録〜認証〜投稿、
みたいにしてるのってよくあると思うのですが、あれと同程度のセキュリティを備えた物をSendmailが使えないレンタルサーバで実現させるには、どうやったらいいでしょうか。

既に作成されている掲示板に本機能を盛り込みたい為、phpBB等の改造以外の方法を探しています。

・phpのライブラリか何かでSendmail的にデータを送る事ができるものってありまでしょうか?(おそらく扱えるプロトコルが違う為普通はできないと思うのですが。)
・メールのやりとり以外で同程度のセキュリティを持つアカウント発行をする仕組みで、オーソドックスな方法というのはあるのでしょうか。
・仮発行メールの様な物は、何かハッシュ値を計算した物をユーザ側に送付していたと思うのですが、あの仕組みが分かる様なサンプルスクリプトや解説サイトなどありますでしょうか。

定番物をご存じの方、こうすればいいよ的なアイデアをお持ちの方、是非お教え頂ければと思います。よろしくお願いします。
0278nobodyさん2005/12/07(水) 16:16:36ID:???
>>277
仮発行メールはメールアドレスの正当性を確認するために行うのでメールアドレス登録しないなら必要ない。
ハッシュはuniqid()でも使えばいいんじゃない。
0279nobodyさん2005/12/07(水) 16:43:41ID:???
レスありがとうございます。

一人の人が何個もアカウントを取れない様、メールアカウント(無料メルアカは弾き)で登録させるのが良いのかなと思っていまして、
また、仮メールを送る方法であれば、なりすましを防げる為、できればメールやりとりで自動登録させたいと思います。
0280nobodyさん2005/12/07(水) 16:52:01ID:???
>>271
どゆことって?
268はそのまま動かないって言葉通りだが。
0281nobodyさん2005/12/07(水) 17:28:25ID:OA204cci
Win環境でphpからメールを送るとfromが
sendmail_from
で指定した値になってしまいますが、これを
自由に変更する方法ってないでしょうか?
0282nobodyさん2005/12/07(水) 17:33:33ID:???
>>277
sendmailが何をするもの(ソフト)か
もちっと基本的な事を勉強汁。
自分のやりたいことと方法は明確なようだから
こつこつとやれば大丈夫。

1.メールを送るだけならSMTPが話せりゃいいので
SMTPがどういうものかは理解したうえで、
pearのとかphpmailerとか好きなライブラリを使えば?
勉強用に作っても良いけど。

2.ない。

3.特に難しいものではない。
ユニーク性があって、他人に容易に類推できるものでなければ良い値なだけ。
連番や時間、発行先メールアドレス等はユニーク性はあるが、
容易に類推可能なので、それらを元に組み合わせたもののハッシュを取ってる。
0283nobodyさん2005/12/07(水) 17:36:05ID:???
>>281
釣りか?自由にsendmail_fromを変更すればいい。

ini_set('sendmail_from', 'hoge@example.com');
mb_send_mail(...
0284nobodyさん2005/12/07(水) 17:36:15ID:???
phpだけで、画像掲示板等で全く同じ画像のアップロードを防ぐ事は出来ますか?
あったらその方法を教えてください。
0285nobodyさん2005/12/07(水) 17:39:59ID:???
>>284
テキストの時と同じように、バイナリで比較すればいいじゃん。
0286nobodyさん2005/12/07(水) 17:41:54ID:???
どうやるのが効率的かわからんけど、アップロードされた画像はDBにバイナリで
入れておいて、新しく画像がアップロードされたらfread()で読んでDB内を検索、とか?
ファイルで持っておくと既存の画像のバイナリ全部読んでくのが大変そうな気がするんだけど、
どういう方法が一番効率的なんだろな?
0287nobodyさん2005/12/07(水) 17:50:37ID:???
>>285
その次には、それの実用性を上げるために
バイナリ→ハッシュ生成&保存→ハッシュ比較
とワンクッションいれるかね。
0288nobodyさん2005/12/07(水) 17:52:28ID:???
ま、普通はハッシュ生成だろうな。ファイル比較なんてやってたら偉いことになる。
ハッシュが面倒だったらファイルサイズでもそこそこ弾けると思われ。
02892772005/12/07(水) 17:53:49ID:???
レスサンクス!調べてみます。ありがとう。
3.は良いサンプルあると良いんですけどね。自分でやるとなると結構たいへんです。
ハッシュ値は可逆性ないものじゃないと危ないですよね。という事は、演算したハッシュ値は2〜3日限定で覚えておけばいいのかな。がんばってみるか…。
0290nobodyさん2005/12/07(水) 17:54:44ID:???
>>283
ありがとうございました<m(_)m>
0291nobodyさん2005/12/07(水) 17:56:57ID:???
>>284
md5_file( "filename")
02922812005/12/07(水) 17:58:57ID:???
すいません、もう一つ。

sendmail_from

hoge@hige.hage
とか設定してみても
@の前の部分しかfromに記載されません。
後ろの部分は出ないものなんでしょうか?
0293nobodyさん2005/12/07(水) 17:59:46ID:???
>>285-288
なるほど、わかりました。色々試してみます。ありがとうございました。
0294nobodyさん2005/12/07(水) 18:02:14ID:???
>>291
なるほど、それもいいですね。簡単そうでよさそうですね。
02952912005/12/07(水) 18:17:02ID:???
>>294
いや、それもじゃなくて>>287-288がいってることができる関数がPHPにはあると言いたかったのだが。
0296nobodyさん2005/12/07(水) 19:29:33ID:???
PHP で作られた Web メーラで、
日本語のファイルを添付して送信しても
化けないイケてる奴はどれ?
0297nobodyさん2005/12/07(水) 20:59:35ID:???
レッツPHP!さんのHTTPGET2なのですが、
そのままコピペしてアップロードしても
ソース表示など出来ません。

過去ログには

[511 のレス1] Name:いきのむし Date:2005/01/08(Sat) 16:47

もしHTTP GET2号のソースをコピーしてそのまま使ってらっしゃるなら、ほぼ100%動かないでしょう。そういうプログラムになってますので。
29行目 if(!$site || !strstr($HTTP_HOST,"php.s3.to") || !ereg("^http://";,$site)){

と、ありました。しかしよくわかりません。
どうすればソースなど表示出来るでしょうか?
宜しくお願いします。
0298nobodyさん2005/12/07(水) 21:05:41ID:???
>>297
スレ違い
【 スクリプト改造依頼スレ 】(丸投げ) part4
http://pc8.2ch.net/test/read.cgi/php/1127916965/
02992972005/12/07(水) 21:12:13ID:???
>>298
ごめんなさい。
0300nobodyさん2005/12/07(水) 21:23:05ID:???
phpでメールを送信するときのアドレス(Fromの部分)を
自分で設定したいのですが、どうすればいいのでしょうか。
0301nobodyさん2005/12/07(水) 21:30:18ID:???
ここまでどうでもよし
0302nobodyさん2005/12/07(水) 21:31:42ID:???
こっからもどうでもいいや
03032972005/12/07(水) 21:42:42ID:???
速く答えてください
0304nobodyさん2005/12/07(水) 22:17:29ID:???
嫌です
0305nobodyさん2005/12/07(水) 22:32:52ID:???
ソースを丸写しとか勉強にもならないしショウモナイネ。
糞のやることだ。
0306nobodyさん2005/12/07(水) 22:36:22ID:???
>>300
メールメッセージヘッダのFrom:フィールドに書く。

0307nobodyさん2005/12/07(水) 23:33:28ID:jWNRrWnp
クラスにあるメンバ変数をJavaとかC++みたいに直接出力することってできないの?

class Human {
 var $name;

 function getName() {
  echo $this->name;
 }
}

$human = new Human;
$human->$name = "名無しさん";

// これはだめ
echo $human->$name;

//これはOK
echo $human->getName();

みたいな感じでメソッドを通してのみやり取り可能なのかな?直接代入はできて参照はできないってなんか変な感じなのですが直接参照する方法とかあるんでしょうか?
0308nobodyさん2005/12/07(水) 23:45:14ID:???
マニュアル読め
0309nobodyさん2005/12/07(水) 23:45:29ID:???
class Human {
 var $name;
^^^^^ここを publicにすれば
echo $human->name;
このようにアクセスできますよ!
0310nobodyさん2005/12/07(水) 23:46:03ID:???
varはpublicと同義だつーのに
0311nobodyさん2005/12/07(水) 23:49:02ID:???
>>307
いや、$human->name;の$が余分なんでしょ

>>280
268のどこがそのままじゃ動かない?
0312nobodyさん2005/12/07(水) 23:56:30ID:???
別に余計なわけじゃない。

$name = "name";
echo $uma->$name;
0313nobodyさん2005/12/07(水) 23:58:21ID:???
くだスレでやれよ
03143072005/12/08(木) 00:08:25ID:???
php5へ上げたら直りました。php4で使うもんじゃないですね(-д-)
0315nobodyさん2005/12/08(木) 00:41:46ID:???
>>314
きみはじつにばかだな。
0316nobodyさん2005/12/08(木) 02:21:19ID:???
これがPHPクオリティ
0317nobodyさん2005/12/08(木) 02:52:53ID:???
$a = array('aaa', 'bbb', 'ccc', 'nullpo', 'ddd');

という配列の中に
ある要素が含まれているか判定したいのですが
foreachなどを使わずにスマートに行う方法はないでしょうか。

'bbb' => true
'gaxtu' => false

みたいな感じになればいいです。
0318nobodyさん2005/12/08(木) 02:53:34ID:???
マニュアルに書いてある
0319nobodyさん2005/12/08(木) 03:04:03ID:???
>>317 さんへ

実は私もその問題で以前悩んだことがあります。
googleで検索してもMLに投げてもぜんぜんわかりませんでした。
そこで友人のハカーに相談したところ殆どの方がご存じ無いような
のですがphpの裏マニュアルが存在するということがわかりました。
特別にお教えしますが、絶対に人には教えないで下さいね。

http://jp.php.net/manual/ja/function.in-array.php
0320nobodyさん2005/12/08(木) 03:12:55ID:???
すげー感動しました!!
絶対に誰にも教えません
0321nobodyさん2005/12/08(木) 05:45:08ID:???
print "<a href=\'"$script_php."?view=".$i."\'">a</a>\n";

この描き方でT_VARIABLEエラーが出るのですがどう直したらいいですか?
やってるうちにわけわからなくなりました。。
0322nobodyさん2005/12/08(木) 06:35:24ID:???
>>321
まずはPHPEclipseでも何でもいいから
色分けしてコード強調表示してくれるエディタを使うようにしてみな。
そうすればお前にも分かる。
0323nobodyさん2005/12/08(木) 06:38:29ID:???
>>321

print "<a href='$script_php?view=$i'>a</a>\n";
0324nobodyさん2005/12/08(木) 07:15:03ID:???
>>322
>>323
解決しました。助かりました。ありがとうございます。
0325nobodyさん2005/12/08(木) 10:30:12ID:???
>>317
array_serch,in_arrayかな

質問なのですがa.txtに
a,k,h,u,g
b,k,x,p,t
j,w,t,a,j



とある場合一行ずつ読み込んでtest[]として配列にするとしますよね。
その後list()とexpload()で、,で分割して変数にしようと思うんですがlistの中って配列でもokですか?
test2[0] => a
test2[1] => k



と出来るかという事です。
後、もし出来るならa.txtをもとに表を作りたいのですが
$filename = "a.txt";
$test2 = array();
$test = file($filename);
for($i=0;$i<$count($fp);$i++){
list($test2)=expload(",",$test[$i]);

foreach($test2 as $value);
echo $value;
}
こんな感じで出来るのでしょうか?でもこの場合二行目のxを表示させたい場合って、
どうやって配列を指定するんでしょう?
$test[1,test[2]]とかorz(適当でごめんなさい)
032622005/12/08(木) 10:33:02ID:???
後BASIC認証でlist()を使って、$idと$pwを作った場合、
この$id,$pwは認証した画面では変数として使えるようですが、他のページで使うには$_SESSIONを使うといけますか?

session_start();
$_SESSION['id'] = $id;
$_SESSION['pw'] = $_SESSION['pw'] = $pw;

で、$id="aiueo" $pw="aaa"で認証した場合は、SESSION指定後、他のページでは
$_SESSION['id'] = "aiueo"
$_SESSION['pw'] = "aaa"

$id="kaki" $pw="bbb"で認証した場合は、SESSION指定後、他のページでは
$_SESSION['id'] = "kaki"
$_SESSION['pw'] = "bbb"

となるのでしょうか?
質問ばかりで申し訳ないですが、授業中気になってしまいまして、どうぞご教授お願い致します。
0327nobodyさん2005/12/08(木) 10:34:25ID:???
>>296
誰か知らない?
0328nobodyさん2005/12/08(木) 10:41:10ID:???
頼む態度を知らん香具師が
0329nobodyさん2005/12/08(木) 10:49:59ID:???
>>325
>>4の7

>>326
$_SESSIONには$idだけ入れとけば認証済みかどうか確認できるんじゃない。

>>327
知らない。自分で作るっていう選択肢はなしなの?
0330nobodyさん2005/12/08(木) 11:58:34ID:???
>>329
即レスありがとうございます。
なるほど、配列の配列はあのように記述するのですね、勉強になりました。

$_SESSIONですが、a.txtを元に表を作り、room1,room2…と待合室のようにしたいのです。
それぞれの部屋に現在入っている人を表示し、入室ボタンをつけ、入室するとその部屋に自分の名前が表示されるというものです。
入室の際、配列に
$_SESSION['id']を追加しようと思うのですが、これだと配列の中身が$_SESSION['id']ばかりになってしまい、上手く認証された人の名前が表示されるのかと心配だったのです。
きちんと、aさん、bさんが入室した場合、
test2[0] = a
test2[1] = b
となるのでしょうか?

またもや質問になってしまいましたが、何卒よろしくお願い致します。
0331nobodyさん2005/12/08(木) 12:14:11ID:???
>>330
$_SESSION['id'][0]
ってすればいいじゃん。
0332nobodyさん2005/12/08(木) 12:17:31ID:???
>>330
aだのtestだの変数名とやりたいことの対応がわかりづらい。変数名つけなおしてくれ。
とりあえず待合室ってやつに誰が入ってるかって情報は別口にファイルとかに保存しとかないと復元できないけど。
$_SESSIONにはそのときにアクセスしているユーザーの情報しか含まれないよ。
0333nobodyさん2005/12/08(木) 12:36:30ID:???
php4.4.2っていつ頃出るの?
0334nobodyさん2005/12/08(木) 12:43:04ID:???
レン鯖がPHP5に上げてくれるみたいだからPHP4はもうイラネ
0335nobodyさん2005/12/08(木) 13:06:23ID:???
どこの鯖が?
0336nobodyさん2005/12/08(木) 13:16:30ID:???
>>331,332

レスありがとうございます。
確かに、例など分かり辛いですよねorzすみません
一度、記述して、出直して参ります。

もし、その時お時間あるようでしたら、よろしくお願い致します。
0337nobodyさん2005/12/08(木) 13:52:12ID:???
forで$iを配列分回して
list($a[$i][0],$a[$i][1],$a[$i][3]…)=explode
0338nobodyさん2005/12/08(木) 13:52:59ID:???
[2]忘れてた
0339nobodyさん2005/12/08(木) 13:56:39ID:???
ん?それは
$a[$i] = explode(…
ですみそうな気が
0340nobodyさん2005/12/08(木) 14:11:38ID:???
>>334
自分でphp5に出来無い時点でダメポ。
0341nobodyさん2005/12/08(木) 14:40:38ID:???
>>340
それは自宅サーバーで運営してない奴全員に対する挑戦か?
0342nobodyさん2005/12/08(木) 15:48:34ID:???
PDOStatement::fetchのFETCH MODEの変更ってどうやるんですか?
マニュアル通りだと
$row = $stmt->fetch(PDO_FETCH_ASSOC);
に対して、
Warning: PDOStatement::fetch() expects parameter 1 to be long, string given in /home/www/test.php on line 49
こんな警告が出てしまいます。

PDOStatement::setFetchModeを使うのかなと
$result = $stmt->setFetchMode(PDO_FETCH_ASSOC);
を追加してみたのですが
Warning: PDOStatement::setFetchMode() [function.setFetchMode]: SQLSTATE[22003]:
Numeric value out of range: unhandled mode; this is a PDO bug, please report it in /home/www/test.php on line 48
こっちはこっちでこんな警告出してきました。

PHP5.1.1です。
03433252005/12/08(木) 15:57:52ID:???
こんにちは、先程質問させて頂いた者です。
トップ画面→ルーム作成画面まで作成してみました。

http://www.uploda.org/file/uporg255946.zip.html

問題点は、
*$_SESSION['id'][$i]の表示がおかしくなってしまう。"yuji"→"y"など、一文字になってしまう。
FAQを参照し、$_SESSION{'id'}{$i} にするも結果は変わらずorz

宜しければ、ご教授願いたいと思います。
よろしくお願い致します。
03443252005/12/08(木) 15:59:23ID:???
失礼しました、パスは「php」です。
03453372005/12/08(木) 16:09:00ID:???
>>325>>337でやると、二行目のXは、$a[1][2]となる。
0346nobodyさん2005/12/08(木) 16:19:45ID:???
>>342
カイハツ段階でNoticeをオフるなよ
0347nobodyさん2005/12/08(木) 16:56:50ID:???
>>343
print_r($_SESSION);
してセッション変数がどう格納されているか確認してみな。
そういうことやらないなら、
丸投げスレに移行すべし。
03483422005/12/08(木) 17:05:47ID:???
>>346
スンマセン。
Noticeも表示されるようにしたら
Notice: Use of undefined constant PDO_FETCH_ASSOC - assumed 'PDO_FETCH_ASSOC' in /home/www/test.php on line 49
警告の他に上記が追加されました。
で、PDO_FETCH_ASSOCの部分をシングルクォートで括ってやったら警告だけが残りました。
0349nobodyさん2005/12/08(木) 17:13:45ID:???
>>348
PDO_FETCH_ASSOCが定義されてないんだから、定義しろ
0350nobodyさん2005/12/08(木) 17:18:54ID:???
>>343
grs.phpの30行目を
$_SESSION['id'] = $id;
に変えて、
create.phpの31行目を
$_SESSION['id']
に変えれ。

$_SESSION{'id'}という書き方はダメ。中カッコは文字列の中から1文字だけ参照するときにつかうもの。配列の場合は必ず角カッコ。
03513422005/12/08(木) 17:26:06ID:???
>>349
納得。
FETCH_ASSOCはPDOクラスで定義された定数だったのね。
解決した、サンクス
0352nobodyさん2005/12/08(木) 18:04:12ID:???
>>351
エラーメッセージはちゃんと読もうね。
0353nobodyさん2005/12/08(木) 23:41:20ID:2fsehRpI
作業に没頭しすぎて遅くなってしまいましたが、
>>337さん、>>347さん、>>350さん ありがとうございました。
教えて頂いた事を参考に、頭を捻りながら作業を進めた結果、
room.txtを元に、各表を作成する事までは出来ました。

しかし、参加ボタンで名前を追加という点で行き詰ってしまいましたorz
参加ボタンを押すと、$_SESSION['id']と、$_SESSION['rate']をroom.txtに追加したいのですが、難しいのです・・・。

[room.txt]
1,2,aaa,2,Dungeon,3,yuji/,1500/

となっており、
rate1700で、idがryuujiさんが参加した場合、
1,2,aaa,2,Dungeon,3,yuji/ryuuji,1500/
1700としたいのです。

http://www.uploda.org/file/uporg256297.zip.html
現在このような感じです。

出来れば、丸投げにしたくないのでアドバイスや解決策があればよろしくお願い致しますorz
予想としては、別にもう一つphpがいるのかなと思うのですが・・・。
もしかして、PHP+MySQL覚えた方が解決までの距離が短かったりでしょうか・・・。



0354nobodyさん2005/12/08(木) 23:42:03ID:???
パスはphpです。
sage忘れすみません;;
0355nobodyさん2005/12/08(木) 23:44:45ID:???
;を二個も付けたらエラーが出ちゃうぞ
0356nobodyさん2005/12/09(金) 00:07:48ID:???
>>355
・・・orzすみません
0357nobodyさん2005/12/09(金) 01:14:54ID:vSvgZQPE
2chのdatログのビューアをphpで作ろうとしています。
フォームから >>1>>2>>3-4 など、参照したい行数を$resで指定して
datから該当の行のコメント部分だけを表示しようとしていますが、
処理が悪く表示が抜けてしまう行があります。<>は実際は半角です。

$res = preg_replace("/(^|)>>/i", ",>>", $res);
$res = substr("$res",1,(strlen($res)-1));
$log_line = split( ",", $res);
$ct = count($log_line);
for($i=0; $i<$ct+1; $i++){
$st = preg_replace("/(^|)>>(\d+)-(\d+)/si","\\2", $log_line[$i]);
$to = preg_replace("/(^|)>>(\d+)-(\d+)/si","\\3", $log_line[$i]);
$on = preg_replace("/(^|)>>(\d+)/si","\\2", $log_line[$i]);
$log_file = "$ls.dat";//該当2chのdatログ
$log_viewer = file($log_file);
if(!ereg("-", $res)){
list($name,$email,$date,$com) = split( "<>", $log_viewer[$on-1]);
echo "$com<br><br>";
}
elseif($st && $to){
for($h=$st-1; $h<$to; $h++){
list($name,$email,$date,$com) = split( "<>", $log_viewer[$h]);
echo "$com<br><br>";
}
}
}

既知の問題としては、>>1>>2>>3-4で1と2が落ちて3と4しか表示されない、
(>>1>>2>>3>>4や>>1-4ではとりあえず表示されます)
<br>が最後に4つ表示される。などです。
いろいろと変数を表示させたりしてやってきましたが、ここまでで手詰まりました。
最初からコーディングの悪さはあると思いますが、どなたかご教授ください。
0358nobodyさん2005/12/09(金) 02:36:11ID:???
ざっと見た限りではなんか変そうなんだが・・・・。詳しく見るのもアレなので、
とりあえず $ct = count($log_line); の行の前あたりに

$a=array(); foreach($log_line as $b) $a[]=urlencode($b); print_r($a);

を加えて$log_lineの中身がどうなっているかチェック。
他にも怪しそうな変数があったら同様にチェック。
変数の内容を確認するのはデバッグの基本。

あと×「教授」→○「教示」
0359nobodyさん2005/12/09(金) 02:56:48ID:???
>>358さん
使えるものしか使っていないのが一番の原因だとは思いましたが
おっしゃるように$log_lineを調べて、if(!ereg("-", $res)の部分を潰して
書き替えて、なんとか表示されるようになりました。
ご教示ありがとうございました。
0360nobodyさん2005/12/09(金) 03:19:25ID:???
>>341
レン鯖借りればいいじゃん。php動かすのに安いの使ってる方がオカシイ。
0361nobodyさん2005/12/09(金) 04:39:41ID:???
>レン鯖がPHP5に上げてくれるみたいだからPHP4はもうイラネ
>自分でphp5に出来無い時点でダメポ。

この流れだと、自分でサーバーの設定弄れるって事なんじゃないの?
レン鯖でも専鯖でも無い限りそれはムリポw
0362nobodyさん2005/12/09(金) 07:55:26ID:???
>>342
PDO_FETCH_ASSOC

PDO::FETCH_ASSOC
0363nobodyさん2005/12/09(金) 09:15:36ID:???
>>362,342
http://www.php.net/README_UPGRADE_51.php#extensions2
これだな。
0364nobodyさん2005/12/09(金) 14:13:07ID:???
>>362
日本語オンラインマニュアルの更新が遅いんだよな
最新のchm版マニュアルは定数の部分がPDO::〜に変更されていた
0365nobodyさん2005/12/09(金) 14:17:30ID:???
PDO::FETCH_ASSOC

PDO_FETCH_ASSOC

PDO::FETCH_ASSOC
0366nobodyさん2005/12/09(金) 14:24:52ID:???
楽天のシステムはPHP3で書かれているらしい
0367nobodyさん2005/12/09(金) 14:26:23ID:???
工エエェェ(´д`)ェェエエ工
0368nobodyさん2005/12/09(金) 15:00:52ID:???
>>353
全然意味がわからん
0369nobodyさん2005/12/09(金) 16:50:56ID:???
>>368
同意
0370nobodyさん2005/12/09(金) 21:15:22ID:???
$referer = $_SERVER['HTTP_REFERER'];
echo $referer;
携帯用スクリプトなんですが?mode=sourceを表示した時に前のページで取得したリファラのURLのソースを表示したいんですがどうすればいいでしょうか?
どうしても?mode=sourceの前つまりスクリプト自身のソースを吐くので
0371nobodyさん2005/12/09(金) 22:04:41ID:Gto+rkho
正規表現なり何なりで、連続する同じ文字を検出することは可能ですか?
例えば、5文字以上連続して同じ文字が入力された場合、その文字を取り出す。とか。
自分なりに調べてみましたが、それらしい情報は見つからず、、、
自分でもいろいろ考えましたが、ぐるぐるループさせる方法しか浮かびません…。
0372nobodyさん2005/12/09(金) 22:39:46ID:???
>>370
意味がわからない。
0373nobodyさん2005/12/09(金) 22:42:01ID:???
>>372
同意
0374nobodyさん2005/12/09(金) 22:44:07ID:???
>373
同意


>371
>ぐるぐるループさせる方法

それでいいんじゃね
0375nobodyさん2005/12/10(土) 00:07:34ID:???
>>371
preg_match('/(.)\1{4,}/',$str,$matches);
03763712005/12/10(土) 00:24:34ID:???
>>375
ありがとうございます!
このような書き方があったんですね。勉強になりました。
0377nobodyさん2005/12/10(土) 01:13:39ID:???
phpを勉強しようと思うので、入門用の本を紹介して下さい。
プログラム経験はflashのactionscriptでショボイゲームが作れる程度です。
よろしくお願いします。
0378nobodyさん2005/12/10(土) 01:51:28ID:???
>>377
http://www.php.net/manual/ja/
いやホントに、煽りで無くマジレス。
0379nobodyさん2005/12/10(土) 04:39:54ID:???
>>377
ついでにお前はくだ質スレの存在を知れ。
03803722005/12/10(土) 04:55:08ID:???
>>370
流れは

【A】
1.ユーザが<<URL>>に存在するリンクをたどり クエリmode=source を伴って当該スクリプトにアクセスする
2.当該スクリプトはリンク元をHTTPリファラから取得する
3.当該スクリプトはリンク元のソースを表示する

【B】
1.ユーザが<<URL>>に存在するリンクをたどり クエリmode=source を伴って当該スクリプト1にアクセスする
2.当該スクリプト1はリンク元をHTTPリファラから取得する
3.当該スクリプト1はスクリプト2への遷移を提供する
4.スクリプト2は先ほど取得したリファラを何らかの形で受け継いでいて、<<URL>>のソースを表示する

どっちかだと思うけど。それが判らない。

次に、「ソース」ってのはPHPのソースコードをさすのか
それともHTML(PHPとかの出力)のソースコードをさすのか。これもわからない。

携帯ということだけどキャリアはどこ?ドコモはリファラとれないよ?
0381nobodyさん2005/12/10(土) 05:06:16ID:???
>>379
むしろ、こっちに誘導してやってよ。

PHP関連の書籍(但しPHP出版系お断り)第2版
http://pc8.2ch.net/test/read.cgi/php/1117066073/l10
0382 ◆HewaraiHpQ 2005/12/10(土) 06:16:01ID:???
>>380
後者です。
他のスクリプト(HTMLソースを表示するページ)に前のページで取得したリファラを送る方法が謎なんですよ。
機種はauです。
リファラを利用したお気に入り規制突破スクリプトを作っていてソース表示をいれようと。
0383 ◆HewaraiHpQ 2005/12/10(土) 06:23:28ID:???
>>380
すいません。
前者の方です。
test.phpで前に表示していたページのリファラを取得して表示。
次にソース(ボタン)をクリックするとmode=sourceに移動その時に取得したリファラをそのまま受け渡し。
そしてHTMLソースを表示。
どうにも受け渡しができないんですよ。
0384nobodyさん2005/12/10(土) 06:58:43ID:???
>383
なにがいいたいのかさっぱりわからん
むいてないんじゃない?
0385nobodyさん2005/12/10(土) 07:30:30ID:???
>>383
受け渡しが出来ないって渡してないから受け取れないだけだろ
?mode=source&url=$_SERVER['HTTP_REFERER']
で渡したらいいんじゃないの
0386nobodyさん2005/12/10(土) 07:42:38ID:???
preg_grepの第一引数に
/$_SERVER['USER_AGENT']/
を指定したいんですが
モデファイ?4(よく覚えてなくてすいません)
とかいうエラーが出てしまいました。正規表現(()辺り?)の間違いだと思うのですが、どうにかして回避できませんでしょうか?
0387nobodyさん2005/12/10(土) 10:43:31ID:???
>>386
UAには普通"/"や"."や"-"が含まれるから正規表現のパターンにするには無理があるだろう。
0388nobodyさん2005/12/10(土) 10:45:34ID:???
quotemeta
0389nobodyさん2005/12/10(土) 12:26:23ID:???
>>386
387のいうことももっともだが、
その前に
>モデファイ?4(よく覚えてなくてすいません)
こういうことではいつまでたってもダメじゃん。
エラーが出たらそれが何を意味するか理解するようにしようぜ。
0390nobodyさん2005/12/10(土) 12:34:48ID:???
>>387
???別に無理でもなんでもないんだが…
03913862005/12/10(土) 12:41:17ID:???
>>387-390
返事ありがとうございます。とりあえずquotemetaとエラー文でググってみます。
0392nobodyさん2005/12/10(土) 12:42:01ID:???
>>390
387はそのまま$_SERVER['USER_AGENT']を指定するのは難しいといいたいんだろう。
ま、エスケープしろってこった。
0393nobodyさん2005/12/10(土) 12:55:49ID:???
>>386
おそらくMozilla/4.0の/で正規表現パターンが終わって次の4が修飾子と判断されてエラーになった
>>390
quotemetaしてstr_replace("/", "\/",
すれば出来るけど>>386には無理
そもそも正規表現使う必要あるのか疑問
やりたいことはarray_count_valuesとかじゃないのか
0394nobodyさん2005/12/10(土) 13:04:59ID:???
preg_qoute($str, '/')
03953932005/12/10(土) 13:07:38ID:???
>>394
にゃるほど
そんな関数があったのね
0396nobodyさん2005/12/10(土) 14:10:55ID:???
これがPHPクオリティ
0397nobodyさん2005/12/10(土) 14:30:05ID:???
$w = array('あ','い','う');

foreach ($w as $t){
$_POST['abc'] = mb_ereg_replace($t,'',$_POST['abc']);
}

こういう感じでpostからの入力文字を制限しようと考えているのですが
どういう訳か$wの最後の配列の文字「う」しか削除されません。理由が
全くわからないのですがヒントを頂けないでしょうか?。
03983862005/12/10(土) 14:48:38ID:???
なるほどいろんな関数がありますね。参考になりました、ありがとうございます。
0399nobodyさん2005/12/10(土) 15:08:21ID:???
>>397
コードには問題がなさそうだからきっと凡ミス

あと、単純な置換なら正規表現関数を使う意味がないぞ
$result = mg_ereg_replace('[あ-う]','',$_POST['abc']);
0400nobodyさん2005/12/10(土) 16:00:08ID:???
>>399
print_r($w)してもecho $tしても予想通りの結果がでるしわからないんですよね。
最初は文字コードがsjisの影響なのかと思ってstr_replaceからmb_ereg_replaceに
してみたりしたのですが同じでした(^^; という残骸です。
0401nobodyさん2005/12/10(土) 16:08:33ID:???
>>400
どうせこんな感じのミスじゃない?
$input = "あいうえお";
$w = array('あ','い','う');

foreach ($w as $t){
$result = mb_ereg_replace($t,'',$input);
}
echo $result;
0402nobodyさん2005/12/10(土) 16:15:08ID:???
(゚∀´)bナイス エスパリング
0403nobodyさん2005/12/10(土) 17:18:45ID:???
>>401
それも考えたんだけどインとアウトは同じ$aなんですよ(^^;

$a = mb_ereg_replace($t,'',$a);
04043972005/12/10(土) 17:25:48ID:???
結局、$_POST['abc']を後で使っているのですから置き換わるなら全て置き換わるのが
普通だと思うのですが上手く行かない。これは人が作った物に手を加えているので
なにか癖があるのかも知れません。extractなんて使ってるスクリプトですし・・・。
ちゃんとextractを使われる前に手を加えているんですけどね(^^;。

お騒がせしました。
0405nobodyさん2005/12/10(土) 18:01:06ID:???
>>397
mb_regex_encoding は確認しましたか?
str_replace で期待通りに動かない場合は
入力データがスクリプトのエンコーディングと違うかも知れません。
04063972005/12/10(土) 19:30:32ID:???
うはっ、(/ω\)恥ずかしい

正しくは
$w = array('あ','い','う');
ではなくて $w を データファイルから拾得していたのです。
ずっとUTFばかり使っていたからsjisが\r\nなのを忘れていました。
最後だけ一致してたのは最後に改行がないからでした(^^;。

ご迷惑をおかけしました(*- -)(*_ _)ペコリ
0407nobodyさん2005/12/11(日) 03:04:54ID:???
セッションってどのくらい容量を保存できますか?
画像データも保存できるのでしょうか。
0408nobodyさん2005/12/11(日) 03:18:46ID:???
>>407
ハァ??
0409nobodyさん2005/12/11(日) 03:23:49ID:???
>>407
imageCreateとかの戻り値なら無理だね。
ファイルやDBに保存しておいて、それに関する情報(ファイル名とか)をセッションに保存したらいいんじゃない。
0410nobodyさん2005/12/11(日) 03:24:01ID:???
下らねえな
ああ下らねえよ
0411nobodyさん2005/12/11(日) 03:30:43ID:???
>>408 >>410
くだらないレスはくだしつでしてね。
0412nobodyさん2005/12/11(日) 04:24:32ID:???
レス番間違ってるぞ
0413nobodyさん2005/12/11(日) 05:00:28ID:???
>>412
誘導してやんなきゃわかんねーのかよw

【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/
0414nobodyさん2005/12/11(日) 05:36:26ID:???
なんかDATが壊れてる奴がいるな。
0415nobodyさん2005/12/11(日) 09:46:55ID:???
たしかに。荒らすだけが目的の書き込みは勘弁してほしいものだな。
0416nobodyさん2005/12/11(日) 19:18:41ID:???
質問です
下のような感じでメール送信してるのですがsubjectが文字化けしてしまいます
$subject = mb_convert_encoding($subject,"iso-2022-jp");
mb_language("Japanese");
mb_send_mail("$sendto","$subject","$message","From: $from")
なぜでしょうか?
0417nobodyさん2005/12/11(日) 19:35:55ID:XiVVGiBU
class Child extends Parent{
}
class Parent{
}
こういう風に、親クラスを後に書いてもエラーにならないけど、
class Child extends Parent{
}
class Parent implements Granpa{
}
こういう風に、親クラスにインターフェイスをインプリメントしたとたん、
親→子の順番に書かないとエラーになる。
これって仕様?
0418nobodyさん2005/12/11(日) 19:44:35ID:???
>>416
MIMEヘッダにJISとかは使えないのでBase64でエンコードする必要がある。
mb_encode_mimeheader使ってみ。
0419nobodyさん2005/12/11(日) 19:51:06ID:???
>>417
仕様だと思う。ParseKitを使えば理由がわかると思うよ。
たしかimplementsがついてるとearly bindingが起こらなかった。・・・のは遠い記憶かもしれない。
0420nobodyさん2005/12/11(日) 20:06:56ID:???
>>417
class A {}
class C extends B {}
class B extends A {}
なら大丈夫だけど
class C extends B {}
class B extends A {}
class A {}
だとダメなところを見ると、たぶん2重に先読みはしてくれないってことだと思われ。
むしろ1クラス1ファイルで__autoload使って管理すれば無問題なんだけどね。
0421nobodyさん2005/12/11(日) 20:48:17ID:???
PHPは多重継承は出来ないはずだけど
0422nobodyさん2005/12/11(日) 21:06:51ID:???
>>421
だけど・・・?
逆接の接続詞だから、「実はできるんだ」とかくるのかな?
0423nobodyさん2005/12/11(日) 21:13:58ID:???
いや。
マニュアルには出来ないって書いてあるから
class A {}
class B extends A {}
class C extends B {}
こういう継承は出来ないと思っていた。出来るんだ。
0424nobodyさん2005/12/11(日) 21:22:14ID:???
はい多重継承の意味100回ググれーここ試験に出るぞー
0425nobodyさん2005/12/11(日) 21:31:14ID:???
>>423
親クラスを同時に2つ継承することはできないよ。
C++とかだと extends A,B ってな感じにやるやつね。
親・子・孫 ってな形はOKよん。

>>424
ググってみれば分かるけど、多重継承って言葉の使われ方の混乱スゴス。
親子孫形式を多段継承とかに統一されていればここまで酷くなかったのかなぁ。
0426nobodyさん2005/12/11(日) 23:49:23ID:WymzfT31
JAVAとの連携を詳しく扱ったサイトとか無いでしょうか?
マニュアルは設定しか載ってなくてもっとサンプルが見たいのですが。
0427nobodyさん2005/12/12(月) 05:24:04ID:???
>>426
マニュアルのサンプルで十分じゃない。
それ以降はJava自体の話だし。
0428nobodyさん2005/12/12(月) 09:51:03ID:mg3yvGfR
質問があります。
今使ってるさくらサーバーでPHPのブログを導入しようと思っているのですが
FTPでファイルを転送して、初期設定をしたのですが
エラーメッセージが表示されて実行ができません。
何が悪いのでしょうか?

パーミッションは705で設定しました。

さくらインターネット
http://www.sakura.ad.jp/
導入しようとしたブログ
http://www.netmania.jp/cgi/blog3/

04294282005/12/12(月) 09:51:53ID:mg3yvGfR
エラーメッセージ

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, support@sakura.ad.jp and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

0430nobodyさん2005/12/12(月) 09:58:45ID:???
>>428
Exciteで訳したよ。

内部サーバーエラー
サーバは、内部エラーかmisconfigurationに出会って、あなたの要求を終了することができませんでした。
サーバアドミニストレータ、 support@sakura.ad.jp に連絡して、誤りを引き起こしたかもしれない誤りが発生した時、およびあなたがしたかもしれないものは何のそれらでも知らせてください。

この誤りに関する詳しい情報はサーバ障害記録で利用可能であるかもしれません。
0431nobodyさん2005/12/12(月) 10:26:36ID:???
>>425
私も勘違いしていたので
非常に勉強になりました。
0432nobodyさん2005/12/12(月) 10:29:30ID:???
>>429

つ[More information about this error may be available in the server error log.]
0433nobodyさん2005/12/12(月) 12:19:35ID:???
ある固有名詞をもつ変数を10個、ひとつの配列に入れたとして
$arei=array("$var1",・・中略・・,"$var10");

これを再び10個の変数にするにはどうしたらいいんでしょう?
たとえばタブ区切りの文字列なら

list($var1,・・中略・・,$var10)=explode("\t",$arei);

でできますが、配列の中の変数をそれぞれ名前を付けて取り出す方法が
どーにも思いつかないです。
0434nobodyさん2005/12/12(月) 12:26:02ID:???
お前の目は節穴か!
04353972005/12/12(月) 12:31:57ID:???
>>433
echo $arei[0];
list($a,$b,$c.....) = $arei;
echo $a;
0436nobodyさん2005/12/12(月) 13:11:25ID:???
explodeの返値はarray
0437nobodyさん2005/12/12(月) 14:15:49ID:???
>>433
$arei=array("$var1",・・中略・・,"$var10");

この時点で、既に10個の変数として利用可能。
$arei[0] = $var1
$arei[1] = $var2
$arei[2] = $var3
$arei[3] = $var4
$arei[4] = $var5
$arei[5] = $var6
$arei[6] = $var7
$arei[7] = $var8
$arei[8] = $var9
$arei[9] = $var10

0438nobodyさん2005/12/12(月) 14:59:05ID:???
(,,゚Д゚)∩<質問
>>433の脳の構造が知りたいです・・・
0439nobodyさん2005/12/12(月) 15:02:57ID:???
うーん、エスパーかなぁ
0440nobodyさん2005/12/12(月) 15:11:13ID:???
1.配列の概念を理解していない。
2.explodeが何を返すかよく判っていない。
3.listは変数に何かを入れる事は判るが、何をどのように入れているかは理解していない。

…かな?
04414332005/12/12(月) 16:19:08ID:???
すまん説明ミスだった。

$var1とかは配列です。配列の中の配列が、$arei[0][1]みたいに扱うのがいやで
配列から配列を全部取り出したいんです。
04424332005/12/12(月) 16:22:23ID:???
・・・ああ
>>435でいいような。スマソ、ちょっと眠い。
0443nobodyさん2005/12/12(月) 16:29:14ID:???
>>441
やっぱり、>>440の(1)だった…
0444nobodyさん2005/12/12(月) 16:34:22ID:???
>>443
いや、1-3全部
0445nobodyさん2005/12/12(月) 16:48:53ID:???
>$arei[0][1]みたいに扱うのがいやで
そんな理由かよ
0446nobodyさん2005/12/12(月) 17:04:58ID:???
>>428
取り合えず、FTPのファイル転送で文字コードを
変換してしまってないか確認してみれ。
0447nobodyさん2005/12/12(月) 23:38:20ID:???
おまいにはサクラは敷居が高い。
もっと廚でも使える鯖業者と再契約が必要。
0448nobodyさん2005/12/13(火) 00:20:06ID:???
>>447
なにそれ?難易度の高い鯖とかあんの?
0449nobodyさん2005/12/13(火) 00:22:09ID:???
自分が使っている=難易度が高い
PHP の思想だね
0450nobodyさん2005/12/13(火) 10:37:41ID:???
正直428にPHPは無理でしょ。
HTMLとか画像うpが精一杯。

PHPは業者にでも依頼しな。
0451nobodyさん2005/12/13(火) 16:11:09ID:vrSu5coJ
while ($row = mysql_fetch_array($result)) {

この文の意味がいまいちわからないのですが、
whileの()内って条件式ではないですよね?
(条件式なら $row==になるはずですよね)

$row = mysql_fetch_array($result);
while ($row) {
でもOKなんでしょうか?
0452nobodyさん2005/12/13(火) 16:21:20ID:???
>>451
if ($i=0; $i<mysql_num_rows($result); $i++){
}
ということだよ。
0453nobodyさん2005/12/13(火) 16:30:44ID:???
いや、条件式だろ。
真である限りループしろって構文なんだから。
0454nobodyさん2005/12/13(火) 16:34:46ID:???
数値の 0
空文字列
null
false

それ以外全部 真
0455nobodyさん2005/12/13(火) 16:37:39ID:???
>>451
>$row = mysql_fetch_array($result);
>while ($row) {
これだと無限ループ
0456nobodyさん2005/12/13(火) 16:44:08ID:???
>>451
「$row = 〜」の部分はそれ自体も値を持つってことを理解しましょう。
$x = ($row = 〜); ってこともできますがな(←この場合のカッコはなくても同じ)。
while ($row = 〜)ってのは「$row = mysql_fetch_array(〜)」の部分全体がmysql_fetch_arrayの戻り値になる。
戻り値はマニュアルに書いてあるよね。

>>454
他にも
array()
"0"
なんてのもあるのがPHPクオリティ。
しかも
"\0"
は真なのもPHPクオリティ。
0457nobodyさん2005/12/13(火) 17:31:10ID:???
それはPerlクオリティを引き継いだだけ
0458nobodyさん2005/12/13(火) 17:32:43ID:???
>>452
そこforだろ
0459nobodyさん2005/12/13(火) 17:35:02ID:???
>>451
$row = mysql_fetch_array($result);
while ($row) {
処理
$row = mysql_fetch_array($result);
}
ならOK
0460nobodyさん2005/12/13(火) 17:38:15ID:???
while(true) { //ずっと繰り返す
 $hoge = mysql〜(); //値を得る
 if ($hoge == FALSE) break; // $hogeが空なら繰り返しを止める
 # $hogeをごにょごにょ
}
これと同じ意味
0461nobodyさん2005/12/13(火) 17:56:36ID:???
>>451
while (A) { B }
(1) Aを評価
(2) Aが真ならBを実行後(1)に戻る、偽ならBを実行せず次のステートメントへ

おまいが勘違いしてるのは、(1)のAの評価の部分
Aは単純な変数である必要はなく、式そのものも評価対象に出来る
while ($hoge = func()){ ... } なら func() を実行して$hogeに代入された戻り値が評価対象になる
同様に、while (func()) { ... } なら func() の戻り値そのものが評価対象になる

while ($row = mysql_fetch_array($result)) { B } の場合
(1a) mysql_fetch_array($result)を実行
(1b) 戻り値が$rowに代入される
(2) $rowが真ならBを実行後(1a)に戻る、偽ならBを実行せず次のステートメントへ
0462nobodyさん2005/12/13(火) 18:36:03ID:???
while ($row = mysql_fetch_array($result))とか、ファイルもそうだけど、
>>454の言う
「数値(文字)の0」が偽になるんで、気をつけてないとヤバス。
0463nobodyさん2005/12/13(火) 18:39:16ID:???
しかし>>451はもういないらしい。
このスレ質問するだけして去っていく人多いね。
サビシス
全部釣りかな?
0464nobodyさん2005/12/13(火) 19:12:34ID:???
PHP Variable Tests (Null 0等が isset()などの関数でどういう扱いになるかの一覧表)
ttp://www.deformedweb.co.uk/php_variable_tests.php
04654282005/12/13(火) 19:45:11ID:0K/So0+j
>>447
オススメの鯖とかある?
0466nobodyさん2005/12/13(火) 20:39:57ID:l7fxNabV
>>463
のちに誰かのために役立つよ。俺は勉強させてもらってるよ。
0467nobodyさん2005/12/14(水) 04:21:42ID:???
一日位は待ってみてもいいんじゃないかと
0468nobodyさん2005/12/14(水) 05:38:47ID:cm5ebMj8
(isset($page)) ? $start = $page : $start = 0;

この一文の意味がよくわからないので
頭のイイ人おしえてください
0469nobodyさん2005/12/14(水) 05:43:41ID:???
PHPのスクリプトで503エラーが頻発するんですが、
これって相手の回線の太さも原因の1つですか?
0470nobodyさん2005/12/14(水) 06:27:01ID:???
>>468
そんな事より、その例のものは何でこの様に書かないんだろうね?
見ていて気持ち悪い。

$start = isset($page) ? $page : 0;
0471nobodyさん2005/12/14(水) 06:29:26ID:???
$pageのバリデーションはフレームワーク側でやってるんだろうか?
0472nobodyさん2005/12/14(水) 06:33:20ID:???
>>468
つ[三項演算子の解説、代入式の概念]
0473nobodyさん2005/12/14(水) 06:35:01ID:???
>>470
三項演算子をifの置き換えと思考してるからじゃない?
0474nobodyさん2005/12/14(水) 09:05:11ID:cm5ebMj8
>>470
>>472
サンクス参考になりました
0475nobodyさん2005/12/14(水) 13:17:30ID:nQISVs9q
みんな三項演算子って使ってるの?
0476nobodyさん2005/12/14(水) 13:19:26ID:???
適宜。
0477nobodyさん2005/12/14(水) 14:32:51ID:4Y8+DJWg
ある変数が同じ縦のデータを横に表示したいのですが、方法が思い浮かばず詰まっています。

while (DBからのデータ) {
$id
$name
$category
}

$categoryが同じ場合「、」で区切って$nameを横に表示したいのです。


こんな感じに表示させたい
id category name、name
id category name
0478nobodyさん2005/12/14(水) 14:35:39ID:???
>>477
DBから、category を order にしてデータを取り出し、
ループ中で前カテゴリ名を保存する変数を容易する。

っていうか、同じ category なら、idも同じなのそれって。
04794772005/12/14(水) 19:20:14ID:???
>>478
idはプライマリキーです、その方法でもやってみたんですがなんか途中で訳分かんなくなって止めました

とりあえず最初にカテゴリだけSelectしてwhile中にnameをselectって方法でいけました
0480nobodyさん2005/12/14(水) 19:53:30ID:???
>>479
賢くない方法だね。クエリがカテゴリの数だけ発行されてシマウマ。
0481nobodyさん2005/12/14(水) 20:23:26ID:???
そうなんですけど、他の処理方法が思いつかなくて・・・
0482nobodyさん2005/12/14(水) 20:47:41ID:???
>>481
DBがMySQLでバージョン4.1以降であれば、group_concatを使えばスッキリ書けるかもね。
他のDBならストアドで一時テーブルに書き出すとか。
categoryが重複した時、どのレコードのidを出力しているのか良く判らんが。。。
0483nobodyさん2005/12/14(水) 20:52:18ID:WftevBRF
fopenをftp関数経由で使用する場合どんな感じにすればよかとでしょうか?
ftp_fopenみたいな関数があればいいんですが。
0484nobodyさん2005/12/14(水) 21:22:53ID:???
ftp_fget,ftp_fput
ただしLocalファイル
0485nobodyさん2005/12/14(水) 22:17:34ID:???
セッションを使って入力フォームを作ってるのですが、
入力画面と確認画面を行ったり来たりしていると、
セッションが消えたり、古いセッション値が表示されたりします。
このような現象の対策はありますか?

バージョンはPHP 4.3.11です。
PHP 4.2.4では大丈夫でした。

■入力画面
session_start();
if ($_POST['hoge']) $SESSION['hoge'] = $_POST['hoge'];
header("Location: 確認画面");

■確認画面
session_start();
echo $_SESSION['hoge'];

0486nobodyさん2005/12/14(水) 22:24:58ID:???
header()使って確認画面にすっ飛ばす理由が分からん。
<form>のターゲットを確認画面にすればいいのに。

>セッションが消えたり、古いセッション値が表示されたりします。
$_POST[hoge']が空の時の動作がないからでしょ。
0487nobodyさん2005/12/15(木) 05:47:17ID:???
最近フォームの質問、それも同じような質問ばかりだが、同一人物か?
無理なことは無理
あ き ら め ろ
0488nobodyさん2005/12/15(木) 12:40:13ID:UeTwmalZ
>>485
ブラウザの戻るボタンで行き来してるのなら
何が起きるかわからんと思ったほうがいいかも
04894852005/12/15(木) 14:06:50ID:???
>>486
入力チェックが入るので、headerで飛ばしています。

>>487
同一人物ではありません。

>>488
戻るときはリンクで戻っています。

下記でも試してみましたが、b.phpとc.phpをリンクで行ったり来たりしていても、
「ほげ」が表示されたりしなかったりします。
どこが悪いのでしょうか?

■a.php
session_start();
$SESSION['hoge'] = "ほげ";
print $_SESSION['hoge'];

<a href="b.php">Bへ</a>

■b.php
session_start();
print $_SESSION['hoge'];

<a href="c.php">Cへ</a>

■c.php
session_start();
print $_SESSION['hoge'];

<a href="b.php">Bへ</a>
0490nobodyさん2005/12/15(木) 14:25:45ID:???
まずセッションの有効時間はデフォで1440秒
最終アクセス時間をセッションに入れといてそれから何秒たったら再パスワード入力画面に飛ばすとかしたらいいんじゃ
0491nobodyさん2005/12/15(木) 16:31:20ID:???
>>489
とりあえず

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta equiv="expires" content="0">

とか書いてる?
0492nobodyさん2005/12/15(木) 18:33:48ID:???
>490
そんなことしてんの?
0493nobodyさん2005/12/15(木) 18:42:01ID:???
--------------------------------------
■a.php
session_start();
$SESSION['hoge'] = "ほげ";
print $_SESSION['hoge'];

<a href="b.php">Bへ</a>
--------------------------------------

とりあえず.......
$SESSION['hoge'] = "ほげ";

$_SESSION['hoge'] = "ほげ";
なのだが


誰か突っ込め
0494nobodyさん2005/12/15(木) 20:26:32ID:???
>>493
そっとしといた方がいいんじゃないのか
0495nobodyさん2005/12/16(金) 20:00:21ID:FlVjXK6k
掲示板の連続投稿禁止させたいと思ってますが、
COOKIEを使った連続投稿禁止ができません。

if("hoge"==$_COOKIE['entry']){
  print("連続投稿のため、しばらくたってから投稿してください。");
  exit;
}else{
  setcookie("entry", "hoge", time()+60);
}


何卒、よろしくお願いします
0496nobodyさん2005/12/16(金) 20:03:21ID:???
ハァ!?
0497nobodyさん2005/12/16(金) 20:19:47ID:???
>>495
せめて「どうできないのか」位は書こうな
0498nobodyさん2005/12/16(金) 20:29:55ID:???
>>495
いや、どう見てもそれでできるよ
0499nobodyさん2005/12/16(金) 20:32:59ID:???
495は下質と同じ人かな
どうせクッキー蹴ってたりクッキー発行する前に何か吐いてたりするんでしょ
エラー表示を出してないだけな気ガス
0500nobodyさん2005/12/17(土) 01:27:33ID:5Cdk6RwA
execを使ってjavaコマンドを実行しようとしているのですが
戻り値にint(1)が帰ってきてエラーがおきています
このエラーの内容を知る方法ってありますか?

PHP 4.4.0
Java 1.4.2_10-b03
0501nobodyさん2005/12/17(土) 01:33:43ID:???
>>500
お願いだから、マニュアルくらい読んでくれるかな?
0502nobodyさん2005/12/17(土) 01:47:31ID:???
最初からjavaで作ればいいのに。
phpしか知らないの?
0503nobodyさん2005/12/17(土) 01:58:16ID:???
>>500
>>501-502は無視するとして、もうちょっと詳しく状況書いてみ。
0504nobodyさん2005/12/17(土) 02:05:59ID:???
>>503
おまいももうちょっと詳しくマニュアルを読んでみ。
0505nobodyさん2005/12/17(土) 02:08:52ID:???
>>504
おまいよりは読んだお^^;
0506nobodyさん2005/12/17(土) 03:06:03ID:???
>>505
回数の問題じゃねぇっ
0507nobodyさん2005/12/17(土) 05:03:10ID:???
とりあえず500は
http://jp.php.net/manual/ja/ref.exec.php
ここ読んで好きなの選べ
0508nobodyさん2005/12/17(土) 11:11:45ID:???
>>500
Internal Server Error
0509nobodyさん2005/12/17(土) 11:25:44ID:UrRJ5TVl
PHPの勉強を初めて1ヶ月ぐらい経つのですが、
初心者にお勧めのリファレンスってありますか?
0510nobodyさん2005/12/17(土) 11:36:30ID:???
>>509
1ヶ月も勉強したならば、あなたはもうルーキーFじゃなくビギナーDです。
0511nobodyさん2005/12/17(土) 12:32:40ID:???
ぱにゃ!
0512nobodyさん2005/12/17(土) 13:27:54ID:BoimMDuj
長年ブランクがあった。3年間だけど。。

以前は、経歴詐称常駐会社につとめていて、
ぼろぼろにされて、5ヶ月でやめた。Javaをやっていた。

全くのプログラム初心者なら話は別だが、他の言語を多少なりとも
やっていた人には、お奨めできるものがある。

一番、その言語に早く慣れたいなら、オライリーの一番簡単な本を読むのが
一番手っ取り早いし、安上がり。

PHPなら「始めてのPHP5」という本がある。
Perlなら「初めてのPerl」という本がある。ちなみにC++にも同シリーズは
ある。

JavaとCは知らん。。
0513nobodyさん2005/12/17(土) 13:28:51ID:???
>>512
リクエストは「リファレンス本」らしいよ
0514nobodyさん2005/12/17(土) 13:40:22ID:???
リファレンスってあんまりないよな〜。

でも、重宝するのが
http://www.amazon.co.jp/exec/obidos/ASIN/4798008850/250-0988500-3279408
だよな。やっぱ。初心者レベルから中級者くらいまでは、これが役に立つでしょ。

俺は、OracleとJavaのこのシリーズもってたけど、
かなり役立ったよ。
0515nobodyさん2005/12/17(土) 13:42:03ID:???
ちなみにページを下にスクロールすると見えると思うんだけど、
PostgreSQL&MySQLリファレンス。

MySQLとPostgreSQLの最初の設定とかはネットで調べるなり
本を買うなりしないとダメだけど、その後役に立つよ。

0516nobodyさん2005/12/17(土) 14:04:05ID:???
Perlの時は、青ラクダを買ったなぁ。
Perlだけでなく、Webアプリのための一般的なプログラミング知識も得られた。

PHP版もあるの?
0517php4(sax)でのxmlの処理2005/12/17(土) 14:06:49ID:???
ブラウザから入力されたデータを、
決まった形式のxmlに変換して保存しようと思っています。

htmlタグが入力されたとき、
1:タグをエスケープしてxmlに変換
して保存してる訳ですが、そのログをxmlパーサで読むとき、
2:エスケープされたタグ文字が解釈されて"<"とかに戻る
ので、
3:タグ文字をエスケープし直してブラウザに出力

3回も変換処理が入っていて、なんだかものすごく無駄なことしてる気がするんですが、
うまい方法ないですかね。
cdata使うと、終端文字が入力できないし……
0518nobodyさん2005/12/17(土) 14:08:49ID:???
なにはなくとも、公式マニュアル。
どうしても本がよければ「技術評論社刊:PHPポケットリファレンス」
これでOK
0519nobodyさん2005/12/17(土) 14:32:55ID:nttpIBA6
本の話題があるんで便乗して聞きたいんですけど、
PHPでプログラムする際にセキュリティに関して詳しい本ってありますか?
0520nobodyさん2005/12/17(土) 14:41:32ID:???
file関数で配列に一旦格納してから
再度配列を一つのファイルに戻したいと考えています。
何かグッドな関数や方法があったらキボンヌ
0521nobodyさん2005/12/17(土) 14:46:21ID:???
>>519
PHPじゃないけどこれ。
ttp://www.ipa.go.jp/security/awareness/vendor/programming/

同じ事をPHPでもやればいい。
0522nobodyさん2005/12/17(土) 14:48:07ID:???
>>520
改行コードで implode してファイルに書き戻せば良いのでは?
05235522005/12/17(土) 14:49:59ID:???
fileで読み込んだときに改行コードがそのままなら、何も足さずにimplodeすればいいな。
確認してね。
0524nobodyさん2005/12/17(土) 15:19:20ID:???
フォームによる入力ページで、一度POSTで違うページに行っても
ブラウザの戻るボタンで戻ると必ずフォームの値が残っているサイトが
あるような気がしますが、どのように実現してるのでしょうか

あるいは、こうしたフォームページでの入力値の
ブラウザ側での保持時間というのはこちらでコントロールできる
ものなんでしょうか
0525nobodyさん2005/12/17(土) 15:25:25ID:???
送信フォームのhtmlページでsendmail.phpファイルを
読み込ませて入力結果などを表示させるスクリプト使用なのですが
テストサイトでは何の問題もなく送信結果などが実行されていたのに
いざ先方のドメインサーバーにupしてみて試しに記入せず送信ボタン
押してみると*必須記入欄の未入力エラーとして実行されるべき
画面に以下の表示結果が出て困っています。

Warning: Invalid argument supplied for foreach() in /home1/○○○.ne.jp/WWW/sendmail.php on line 132

Fatal error: Call to undefined function: mb_convert_encoding() in /home1/○○○.ne.jp/WWW/sendmail.php on line 141



ちなみに上の方Warning: 〜とかかれた行は数字違いで同じ内容であと3っつ程ありますが略してます。
もちろんphp対応のサーバーです。
WWWというのが先方サーバーの先頭ディレクトリーなんです。


0526nobodyさん2005/12/17(土) 15:28:22ID:???
>>524
つブラウザキャッシュ
つHTMLのMETAタグ
0527nobodyさん2005/12/17(土) 15:30:30ID:Hbd/Rmjf
fopen→freadでよみこんだテンプレはeregとかで置換できるのに
includeで読み込んだファイルは置換できません。


同じ「読み込む」なのに後者だけできないのはなぜですか
0528nobodyさん2005/12/17(土) 15:43:29ID:???
>>525
くだらない。実にくだらない。
せっかくメッセージを出しているのに、なぜそれを理解しようとしないの?
0529nobodyさん2005/12/17(土) 15:45:39ID:???
下らない質問文は「ドラえも〜ん」で書き始めるとよい
0530nobodyさん2005/12/17(土) 15:50:44ID:???
>>527
テンプレって何ですか?
あと、freadとincludeは”同じ「読み込み」”ではありません。
http://jp.php.net/manual/ja/function.fread.php
http://jp.php.net/manual/ja/function.include.php
どこが違うかは、日本語が理解できる人ならばマニュアルを読めばわかります。
0531nobodyさん2005/12/17(土) 15:51:26ID:???
質問する前にテンプレくらいは見ような。
>>4とか>>5とか。

>>529
不覚にもワロタ
0532nobodyさん2005/12/17(土) 16:00:56ID:???
リンクチェッカー http://www.ai2x.com/
みたいなものをPHPでも作ることって可能ですか?
0533nobodyさん2005/12/17(土) 16:03:23ID:Hbd/Rmjf
>>530
サンクス日本人なので今から理解してきます
0534nobodyさん2005/12/17(土) 16:16:35ID:???
ドラえも〜ん。
うちのパソコンは優秀だから「どらえもん」と入力すると
「ドラえもん」とドラがカタカナの正しいドラちゃんが出てくる。
0535nobodyさん2005/12/17(土) 16:30:27ID:???
>>522
それってグッドなのか?
確かに見た目スマートでかっこよさげなコードになるけど、
普通にroopして1行ずつ書くほうが所要時間はやくね?
0536nobodyさん2005/12/17(土) 16:33:06ID:???
バッファリングやOSの実装にも影響されるが
速くなる要素はないな
0537nobodyさん2005/12/17(土) 16:51:44ID:???
>>535
パフォーマンスが気になるならベンチ取るなりして確認してくれ。
そいでその結果を公表してもらえるとありがたいな。
05385202005/12/17(土) 16:56:25ID:???
>>522
うぉーありがとう!!
このためだけに10数行のコードを書いちゃうところでした。
0539nobodyさん2005/12/17(土) 16:56:27ID:???
roopってどうやるんですか?
0540nobodyさん2005/12/17(土) 16:59:40ID:???
for
0541nobodyさん2005/12/17(土) 17:02:19ID:???
http://en.wikipedia.org/wiki/ROOP
0542nobodyさん2005/12/17(土) 17:04:23ID:???
>>539
roopは擬音か何かじゃないかな
0543nobodyさん2005/12/17(土) 17:08:35ID:???
>>54
0544nobodyさん2005/12/17(土) 17:10:13ID:???
いやみな奴らだなぁ…
05455202005/12/17(土) 17:15:20ID:???
linux上で implode("\n", $array) でやってみたら
余分に改行されてしまいます。

-------
1
2
3
-------

-------
1

2

3
-------
になってしまいました。
改行コードあたりの問題の気がしますが・・・。
0546nobodyさん2005/12/17(土) 17:15:25ID:???
>>541
オンラインの情報がまるで見つからないんだけど
0547nobodyさん2005/12/17(土) 17:16:17ID:???
>>545
>>523
05485202005/12/17(土) 17:29:30ID:???
>>547
サンクス、上手くはいったんだけど、
理由がよくワカラソ。
めんどくないひと居たら教えてクリ
05495202005/12/17(土) 17:35:48ID:???
あ、理解できただす。ありがとう
0550nobodyさん2005/12/17(土) 17:38:58ID:???
>>548
file関数は配列に読み込むとき行末の改行コードを削除しないんよ。
つttp://jp2.php.net/manual/ja/function.file.php

常にマニュアルを見て確認する癖をつけたほうが、上達早いよ。
0551nobodyさん2005/12/17(土) 17:40:08ID:???
520はそそっかしい奴だな。
0552nobodyさん2005/12/17(土) 17:45:35ID:???
ここで聞くべきなのかLinux板に行くべきなのか微妙なところですが・・・
Fedra以外のディストリビューションでPHP5が公式パッケージとして用意されているものはありますか?
0553nobodyさん2005/12/17(土) 17:51:46ID:???
>>552
つFreeBSD
0554nobodyさん2005/12/17(土) 18:35:45ID:???
>>532
作れる。ヒント:PEAR HTTP
0555nobodyさん2005/12/18(日) 00:32:43ID:???
phpである関数を1秒間に1回しか使えなくして、
仮に1秒間に複数回、関数が呼び出されたら、
1秒ごとに順に関数を実行する方法はありますか?
0556nobodyさん2005/12/18(日) 02:42:42ID:???
>>555
そのようにプログラミングすればできるんじゃね?
つシングルトン
0557nobodyさん2005/12/18(日) 05:35:07ID:???
sesseion.use_trans_sidが1に設定されているのですが、
リンクに自動でSIDが付きません。
クッキーをオフにしてやっても付きません。

これは何が原因なのでしょうか?
0558nobodyさん2005/12/18(日) 05:42:41ID:???
勘違いじゃないかねぇ。
現象が再現する短いソースを見せてちょ。
0559nobodyさん2005/12/18(日) 05:46:31ID:???
.htaccessでuse_trans_sidを設定 (phpinfoで確認済み)
同じディレクトリでindex.phpをおいて

<?php
session_start();
if (!is_set($_SESSION['count'])) $_SESSION['count'] = 0;
else $_SESSION['count']++;
?>

<html>
<body>
<?=$_SESSION['count']?><br>
<a href="index.php">link</a><br>
</body>
</html>
0560nobodyさん2005/12/18(日) 06:17:09ID:???
ついでにphpinfoの内容もコピペしとけ。
0561nobodyさん2005/12/18(日) 15:55:42ID:???
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 72000 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path no value no value
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 1 0

あとこれかな

url_rewriter.tags a=href,area=href,frame=src,form=,fieldset= a=href,area=href,frame=src,form=,fieldset=
0562nobodyさん2005/12/18(日) 17:08:07ID:???
test
0563nobodyさん2005/12/18(日) 19:38:22ID:???
解決しました。

セキュリティレベルを最高まで上げたらできました。
ドメインでクッキーをはじくように設定していたのですが
なぜか反映されてなかったのです。。
0564nobodyさん2005/12/18(日) 23:55:14ID:???
クッキーを使わずに強制的にGETクエリーにSIDを乗せたい
(クッキーを使った方法は強制的になしにする)と思って
session.use_cookies を 0 に設定してみましたが、できませんでした。

何か凡ミスでしょうか。
それとも他に設定箇所があるのでしょうか。
0565nobodyさん2005/12/19(月) 01:51:02ID:???
当たり前。
セッションIDを受け渡す方法がないから。
ヒント:マニュアル セッションの受け渡し
0566nobodyさん2005/12/19(月) 02:08:24ID:???
2種類あるのは解ってますよ

方法はなくはないでしょう。
クッキーではなくURLに直接埋め込む方式でやりたいんです。
0567nobodyさん2005/12/19(月) 02:19:55ID:???
session.use_trans_sid は Onになってる?
0568nobodyさん2005/12/19(月) 02:27:11ID:R4UOoyTG
PHPを自分のPCでテストするのって難しいですね・゚・(ノД`)・゚・。
もうかれこれ4日も導入に悪戦苦闘してます。
0569nobodyさん2005/12/19(月) 02:34:32ID:???
簡単だよー。
0570nobodyさん2005/12/19(月) 02:41:49ID:???
>>567
はい。ちゃんとなってます。
0571nobodyさん2005/12/19(月) 02:42:22ID:nsaG6AgK
>>568
どこかのサイトか本みてやればすぐ終わると思うのだが
0572nobodyさん2005/12/19(月) 02:43:20ID:???
>>568
そんなあなたに

っ XAMPP
0573nobodyさん2005/12/19(月) 02:47:56ID:???
An Httpd使っているんですが、関連付けが詳しく書いてあるサイトが
もしありましたら教えてくださいm(_ _)m
Apatchの方は読めず、扱いが難しいので断念しました・゚・(ノД`)・゚・。
0574nobodyさん2005/12/19(月) 02:50:06ID:???
>>573
ttp://homepage1.nifty.com/yito/anhttpd/faq/php.html
このくらいしか知らない。
0575nobodyさん2005/12/19(月) 02:52:45ID:???
皆さんレスありがとうございます。
早速今から試してみます。
0576nobodyさん2005/12/19(月) 02:54:21ID:???
>>564
session.use_only_cookies はOnになってたりしないよね?
0577nobodyさん2005/12/19(月) 02:56:22ID:???
>>564
あと思いつくのは、リンクが全部絶対パス指定になっちゃってる場合とか…
(URL付加は相対パスしか変換しないのがお約束なので)
05785682005/12/19(月) 03:31:13ID:???
おかげさまでPHPテスト実行できました!
本当にありがとうございました!!
ほんの30分で出来た・・・今までの4日間はなんだったんだ・゚・(ノД`)・゚・
0579nobodyさん2005/12/19(月) 05:17:53ID:???
>>576
session.use_cookies Off On
session.use_only_cookies Off Off
session.use_trans_sid 1 0

こんな感じです。

>>577
相対パスで書いてます・・・
0580nobodyさん2005/12/19(月) 05:25:38ID:???
>>579
>>559のスクリプトを実行してみてもだめなの?
0581nobodyさん2005/12/19(月) 05:37:51ID:???
>>580
はい。
やっぱり何故かURLではなくクッキー経由でセッションが渡ってしまいます。
0582nobodyさん2005/12/19(月) 05:53:22ID:???
        /つ_∧  < エッ!セッションが使えないのかと思ってた。
  /つ__∧ 〈( ´_>`)
  |( ´_ゝ`) ヽ ⊂ニ) < OK兄者。漏れもそうだ。
  ヽ__と/ ̄ ̄ ̄/ |
    ̄\/___/ ̄ ̄
0583nobodyさん2005/12/19(月) 11:02:27ID:???
>>581
はぁ?クッキー使用OFFにしてるのにクッキーで渡るの?
そりゃ単にphp.iniの設定が反映してないだけじゃないのか。

phpinfoの表示確認。できれば実行してるプログラム上でini_get()で設定値を確認してみれ。
0584nobodyさん2005/12/19(月) 11:11:48ID:???
>>579

session.use_cookies Off On
クライアント側にセッ ションIDを保存する際にクッキーを
使用するかどうかを指定します。

session.use_only_cookies Off Off
このモジュールがクライアント側へのセッションIDの保存に
Cookieのみを使用することを指定します。

session.use_trans_sid 1 0
透過的なセッション IDの付加をするかどうかを指定します。
デフォルトは、0(無効)です。

よってcookieが使われるように貴方が設定しているのが原因。
マニュアル読もうな。な!
0585nobodyさん2005/12/19(月) 12:48:44ID:???
>>584
Off On
ってOffが優先されるんじゃないの?
0586nobodyさん2005/12/19(月) 12:58:19ID:???
2つ並んでいるのは、local value/master valueじゃ無いの?
local valueが有効なはず
0587nobodyさん2005/12/19(月) 12:58:37ID:???
>>585
あれ?Local Value、Master Value の順番だっけ?
なら間違い。
わからん。すまん。
0588nobodyさん2005/12/19(月) 13:02:42ID:???
おいらもどっちだっけ?と思ってphpinfo()を確認してみたが、
local masterの順なのでcookieを使わない設定になってるはず。
0589nobodyさん2005/12/20(火) 03:06:25ID:???
phpが最新のバージョンかどうか確かめる関数って無いんですか?
0590nobodyさん2005/12/20(火) 03:31:47ID:???
>>589
今使ってるやつより新しいバージョンのPHPが
リリースされたかどうかなんてどうやって検索するねん。
0591nobodyさん2005/12/20(火) 04:17:56ID:???
>>589
ない。「最新の」って情報がどっかから確実に入手できれば可能。
0592nobodyさん2005/12/20(火) 04:33:40ID:???
>>590 >>591
ってことは信頼できるトコから情報を入手して比較するしかないんですね。
ありがとうございました。
0593nobodyさん2005/12/20(火) 07:38:21ID:???
変数が

・セットされていない
・NULL
・空文字列

の時1を返して
それ以外で0を返す関数ってありませんか?

issetは空文字列の時の処理が異なりました。
0594nobodyさん2005/12/20(火) 07:40:25ID:???
isset($var) or $var === ''
でいいのでは?
0595nobodyさん2005/12/20(火) 09:47:38ID:???
!$var
0596nobodyさん2005/12/20(火) 11:28:53ID:???
$varが0だとそれもtrueになる
0597nobodyさん2005/12/20(火) 11:40:27ID:???
http://www.workspot.jp/tech/php_tips2.html
この辺参照
05985942005/12/20(火) 12:01:11ID:???
ミスった。
! isset($var) or $var === ''
だわな。
ハズカチ
0599nobodyさん2005/12/20(火) 18:00:13ID:???
PHPセッションについて質問です。

携帯用のメールフォームにて入力フォームを複数ページに分けて、
最終ページでメール送信というものを作成しています。
ページ間では各値をセッション変数に保持しているのですが、
過去2回ほど最初の方のページで入力した内容が消えてしまっていることがあります。
(各ページでは必須入力チェックを行っています)

このような現象が確認される場合、どのような原因が考えられますでしょうか。

ちなみに、この現象が起こったキャリアはauです。

PHP Version 4.2.3

session.auto_start Off
session.cache_expire 180
session.cache_limiter nocache
session.cookie_lifetime 0
session.cookie_path /
session.cookie_secure Off
session.gc_maxlifetime 1440
session.gc_probability 1
session.name PHPSESSID
session.save_path /tmp
session.use_cookies On
session.use_trans_sid 1
0600nobodyさん2005/12/20(火) 18:41:02ID:???
session.gc_maxlifetime 1440
0601nobodyさん2005/12/20(火) 18:57:00ID:???
>600
ガベージコレクションで最初の値削除されてしまってるということでしょうか。
な、なるほど。
0602nobodyさん2005/12/20(火) 19:07:56ID:Lk6o0b9n
PHP5.0.4ってどこからDLすればよいのですか?
本家に行ってもPHP5.1.1をDLするよう推奨されてて、PHP5.0.4をDL出来ないようなのですが・・・
どなたかDL出来るサイト等をご存知でしたら教えてください。
0603nobodyさん2005/12/20(火) 19:16:52ID:???
>>602
「Older versions of PHP」に思いっきりあるわけだが
0604nobodyさん2005/12/20(火) 19:45:29ID:???
>599
mixiとマルチポスト乙
0605nobodyさん2005/12/20(火) 19:52:50ID:???
mixiに誘ってください><
0606nobodyさん2005/12/20(火) 20:05:00ID:???
>>603
なぜか見落としてましたorz
0607nobodyさん2005/12/20(火) 23:49:31ID:/3BtbpNS
PHPの記述方法について教えてください。
今触っているプログラムの中で
以下のようなコードがあるのですが
これはどういった意味なのでしょうか?
文脈から判断してif文のような気がしているのですが実際のところなんなのかわかりません。

$stockDiff = (isset($selectRow['STOCK']))? $CSVRow[STOCK] - $selectRow['STOCK']: 0;
0608nobodyさん2005/12/20(火) 23:51:54ID:???
>>607
三項演算子
0609nobodyさん2005/12/20(火) 23:54:46ID:/3BtbpNS
三項演算子!?
ありがとうございます。
グ具ってみます。(^^)
0610nobodyさん2005/12/20(火) 23:54:54ID:???
>>607
if (isset($selectRow['STOCK']))
{
$stockDiff = $CSVRow[STOCK] - $selectRow['STOCK'];
}
else
{
$stockDiff = 0;
}

こんなかんじだ。
0611nobodyさん2005/12/21(水) 00:00:16ID:/3BtbpNS
>>609
ありがとうございます。
そのまま使わせていただきます。
0612nobodyさん2005/12/21(水) 00:13:08ID:???
今ひどい自演を見たw
0613nobodyさん2005/12/21(水) 02:54:53ID:???
アンカーミスにきつい突っ込みだw
0614nobodyさん2005/12/21(水) 11:14:58ID:uiIPgpa3
eAccelerator 0.9.4-rc1を PHP 4.3.11で使用しています。
Apacheを起動すると毎回
PHP Warning: Unknown(): Unable to load dynamic library './session.so' - Cannot open "./session.so" in Unknown on line 0
PHP Warning: Unknown(): Unable to load dynamic library './mysql.so' - Cannot open "./mysql.so" in Unknown on line 0
というエラーがでています。
eaccelerator.soの入っているディレクトリに上記2ファイルがあり、eaccelerator.soのファイルは読まれているようなのですが、そのほかが読まれてないようです。
php.iniで確認したところ、extension_dirは./ EnvironmentのPWDは/uar/local/etc/となっているので
session.soとmysql.soのリンクを張ってみると、今度はmysql関係のファイルが全部読まれてないらしく10KB近くのエラーログができてしまいました。

実際eaccelerator.phpを見てみると正常に稼働しているのですが、どうも気になります。
このエラーは放置してもいいのでしょうか?できれば対処法を教えてください。。

よろしくお願いします。
0615nobodyさん2005/12/21(水) 11:20:44ID:???
>>614
eaccelerator.so は一番最後に読み込む必要があったと思う。
06166142005/12/21(水) 12:01:43ID:???
php.iniの
[eaccelerator]
zend_extension="/usr/local/lib/php/20020429/eaccelerator.so"
eaccelerator.shm_size = "20"
eaccelerator.cache_dir = "/tmp/eaccelerator"
eaccelerator.enable = "1"...
を1番下に動かしてみましたが、
PHP Warning: Unknown(): Unable to load dynamic library './session.so' - Cannot open "./session.so" in Unknown on line 0
PHP Warning: Unknown(): Unable to load dynamic library './mysql.so' - Cannot open "./mysql.so" in Unknown on line 0
PHP Warning: Unknown(): Unable to load dynamic library './session.so' - Cannot open "./session.so" in Unknown on line 0
PHP Warning: Unknown(): Unable to load dynamic library './mysql.so' - Cannot open "./mysql.so" in Unknown on line 0
[Wed Dec 21 11:56:50 2005] [notice] Apache/1.3.34 (Unix) AuthMySQL/2.20 PHP/4.3.11 configured -- resuming normal operations
[Wed Dec 21 11:56:50 2005] [notice] Accept mutex: flock (Default: flock)
とでました。。

オプティマイザーはeAcceleratorしか使ってません。
0617nobodyさん2005/12/21(水) 12:16:36ID:???
>>616
OSは何?FreeBSDじゃまいか?
06186142005/12/21(水) 12:23:30ID:uiIPgpa3
そうです。
FreeBSD 4.11を使用しています。
これがいけないんでしょうか?..

ちなみにportsからインストールしています。
0619nobodyさん2005/12/21(水) 12:49:36ID:???
>>618
FreeBSDのportsでPHPをインストールすると、
/usr/local/etc/php/extensions.ini というファイルが作られて、
session.so とか mysql.so なんかはこのファイルで追加される。
そして、Apache起動時は /usr/local/etc/php.ini を読んでから、
extensions.ini が読み込まれる。

つまり、php.ini の最後に eaccelerator.so の設定を書いても
最後に読み込まれるわけではないのよ。

よって、extensions.ini の最後に eaccelerator の設定を書くか、
extension.ini の内容を php.ini に移してファイルを消せばいい。

ただこれだと ports を更新する度に同じ作業が必要になるので、
対応策を思案中・・・
ひょっとして適当なファイル名でeacceleratorの設定だけを書いておくと
extension.ini の後に読み込まれないかなと期待してるんだけど。
06206192005/12/21(水) 13:00:16ID:???
今試したらうまくいったよ。

/usr/local/etc/php/extensions2.ini
ってファイルを作って、そこにeAcceleratorの設定を書いておくと、
php.ini → extensions.ini → extensions2.ini の順番で読み込まれた。
ファイル名のソート順でよかったもよう。
06216142005/12/21(水) 13:07:44ID:???
確かに/usr/local/etc/php/extensions.iniはありました。
一度ここのextensionを直接の場所で指定してエラーになりました。

extension.iniの最後に移してみました。
extension=session.so
extension=mysql.so
[eaccelerator]
〜〜〜〜

でやってみましたが、だめでした。。エラーの内容は変わりません。

>ひょっとして適当なファイル名でeacceleratorの設定だけを書いておくと
>extension.ini の後に読み込まれないかなと期待してるんだけど。
# これなら、phpinfo()のScan this dir for additional .ini filesの欄のフォルダに入れると起動時に読まれるっぽいです。
06226142005/12/21(水) 13:08:55ID:???
すいません、みてませんでした。。

やってみます
06236142005/12/21(水) 13:13:28ID:???
だめでした。。
# additional .ini files parsed
/usr/local/etc/php/extensions.ini, /usr/local/etc/php/zextension.ini

これで、きちんと読まれているようですがエラーの内容は変わりませんでした。。
0624nobodyさん2005/12/21(水) 13:14:48ID:???
わ、わざとリロードしなかったわけじゃないんだからね!
分かったわよっ!別ファイルに書けばいいんでしょっ!......(アリガト)
06256192005/12/21(水) 13:22:09ID:???
うーん。そうか。
力になれなくてすまんな。

ところでeAcceleratorとPHPのバージョンは確認済みだよね?

あまり意味ないかもしれんが、うちのバージョンを書いておくね。

# php -v
PHP 5.0.5 (cli) (built: Nov 25 2005 17:25:57)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.5, Copyright (c) 1998-2004 Zend Technologies
with eAccelerator v0.9.3, Copyright (c) 2004-2004 eAccelerator, by eAccelerator
06266142005/12/21(水) 13:27:39ID:???
#うちのはあつかましくエラーと共に表示されました。
#php -v
PHP Warning: Unknown(): Unable to load dynamic library './session.so' - Cannot open "./session.so" in Unknown on line 0
PHP Warning: Unknown(): Unable to load dynamic library './mysql.so' - Cannot open "./mysql.so" in Unknown on line 0
PHP 4.3.11 (cli) (built: Dec 10 2005 06:01:20)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
with eAccelerator v0.9.4-rc1, Copyright (c) 2004-2005 eAccelerator, by eAccelerator

ちなみに同じ環境(4.11と4.10の違い)の0.9.3の方はうまく動いているんです。
0.9.3に戻してやってみて、また報告します
0.9.4はまだバグが多いのかわかりませんが、eaccelerator.phpのCleanを押しても動きません。
0.9.3は正常に動作しますけどね。。
06276192005/12/21(水) 13:32:29ID:???
>>626
> #うちのはあつかましくエラーと共に表示されました。

そりゃそうでしょう。
libraryがロードできてないのはsessionとmysqlだからね。
ところで、sessionとmysql以外のモジュールはちゃんと動作してるの(php -i で確認)?
06281472005/12/21(水) 13:56:56ID:N7x21G0G
すみません
phpの配列について質問があります。

前のページで
<input type="hidden" name="20051218133001" value="1">
のhtmlタグのフォーム(POST)で飛ばし、下の記述で表示させようとしましたがエラーが出てしまいます。

if($_POST['20051218133001']){
print<<<EOM
<table>
<tr>
<td valign="top">$_POST['20051218133001']<td>
</tr>
</table>
EOM;
}

エラーは
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/***/***/***.php on line 5
と出ます。

ifの後の$_POST['20051218133001']は普通に処理しているのですが、
print<<<EOMの中の$_POST['20051218133001']が引っかかっているみたいです。
試しに後者を$_POST[20051218133001]と書くと普通にエラー無く表示されます。
次に前者も$_POST[20051218133001]とするとエラーは出ないのですが
ifの条件分岐に入ってくれません。

どなたかご指導よろしくお願いします。
06291472005/12/21(水) 13:57:27ID:N7x21G0G
ちなみに環境はレンサバ(さくらインターネットスタンダードプラン)
サーバOSはUNIX系OSのFreeBSDを使用しているそうです。
PHP のバージョンは 4.3.10 です。

よろしくお願いします。
06306142005/12/21(水) 13:57:38ID:???
動いています。

それどころか、
session

Session Support => enabled
Registered save handlers => files user eaccelerator

Directive => Local Value => Master Value
session.auto_start => Off => Off
session.bug_compat_42 => Off => Off
session.bug_compat_warn => On => On...

mysql

MySQL Support => enabled
Active Persistent Links => 0
Active Links => 0
Client API version => 4.0.26
MYSQL_MODULE_TYPE => external
MYSQL_SOCKET => /tmp/mysql.sock...

ときちんと動作もしています
0631nobodyさん2005/12/21(水) 14:03:21ID:???
>>628
なんかどっかで見かけたような。。
原因はヒアドキュメントの中でどこからどこまでが変数なのかが
PHPの中の人が判断できなくなっている、つーことだから、
{ } を使って明確にしてあげればよい。
{$_POST['20051218133001']}
06326192005/12/21(水) 14:38:45ID:???
>>630
お手上げです。

eAcceleratorの読み込みをやめて Warning が出てこなくなるなら eAcceleratorの
せいだろうし、そうじゃないなら session.so と mysql.so に問題があるんじゃないかと。
後は error_reporting = E_ALL にしたらもっと詳しいメッセージが出てこないかな?
0633nobodyさん2005/12/21(水) 14:40:00ID:ybikX0hy
movable type3.2をphp化したのですが、
phpのUTF-8を指定するには、どうすればいいですか?
htmlの場合は、
.htaccessに
AddType "text/html; charset=UTF-8" html
ですが、
phpの場合は、
AddType "text/html; charset=UTF-8" php
とするだけで良いのでしょうか?
サーバは、xreaです。
よろしくお願いします。
0634nobodyさん2005/12/21(水) 15:27:38ID:???
>>628
文字列(ヒアドキュメントを含む)の中で配列変数を書くときは
{$変数名['キー']} と書かなきゃいけないことは
マニュアルに明記されてる。
II言語リファレンス 6章「型」 参照のこと。
0635nobodyさん2005/12/21(水) 15:29:50ID:???
>>633
<?php
header("Content-type: text/html; charset=utf-8");
echo "Hello world";
?>
0636nobodyさん2005/12/21(水) 15:31:31ID:???
>>635
それは違うんでねーの。

>>633
とにかくここ嫁。
http://jp2.php.net/manual/ja/ref.mbstring.php
0637nobodyさん2005/12/21(水) 15:35:07ID:???
PHPにてデッドリンクのチェックを判定する際にはどのように判定しているのでしょうか?
タイトルに404などの文字が含まれているとかで判定するなんてことはないですよね。
0638nobodyさん2005/12/21(水) 15:35:47ID:???
Charsetを指定してヘッダーを送信したいんじゃないの?
iniのdefault_charsetがクリアされてなきゃデフォで送信されるけど
0639nobodyさん2005/12/21(水) 15:36:51ID:???
>>637
レスポンスヘッダー見ろよ
0640nobodyさん2005/12/21(水) 15:42:49ID:???
>>639
それはどのように見るのでしょうか?
0641nobodyさん2005/12/21(水) 15:47:06ID:???
>>640
レスポンスヘッダー
でぐぐれば分かるだろ。
0642nobodyさん2005/12/21(水) 15:55:24ID:???


php5なら
get_headers
0643nobodyさん2005/12/21(水) 16:02:51ID:???
>>641
>>642
ありがとうございました。
0644nobodyさん2005/12/21(水) 18:44:32ID:???
まぁまぁ
0645nobodyさん2005/12/21(水) 19:22:32ID:???
指定のフォルダ内にどのような拡張子が存在するのかを調べる場合、
どのような正規表現を書けばよいですか?

index.html
top.htm
frame.htm
top.jpeg
icon.gif
1.css
2.css

例えば↑のファイルがある場合、
↓の結果を返すようにしたいのです。
.html
.htm
.jpeg
.css
0646nobodyさん2005/12/21(水) 19:24:57ID:???
.*(\..*)
0647nobodyさん2005/12/21(水) 19:59:31ID:???
アスタリスクって。
06486142005/12/21(水) 21:34:35ID:???
報告です。
eAccerelator0.9.4-rc1 -> 0.9.3
にしたら正常通り動きました。

いろいろありがとうございました。
06496192005/12/21(水) 22:54:58ID:???
>>648
そか。良かった。
おつかれさん。ノシ
0650nobodyさん2005/12/22(木) 01:56:27ID:???
>>645
while($file = readdir($dp)) {
if(preg_match('/(\.[^.]+)$/', $file, $match)) $list[$match[1]] = '';
}
$extlist = array_keys($list);
0651nobodyさん2005/12/22(木) 08:20:36ID:???
>>645
正規表現使わなくても
$parts = pathinfo($file);
$ext = ".".$parts['extension'];

$pos = strrpos($file, ".");
$ext = ".".substr($file, -$pos);
0652nobodyさん2005/12/22(木) 09:12:08ID:???
>>651
下のやつは
$ext = strrchr($file, ".");
だと一発だね。
0653nobodyさん2005/12/22(木) 10:01:11ID:???
ファイル一覧をどう拾ってくるかにもよるけど、
「.」とか「..」とかのディレクトリ名を除外した方がいいかも。
あと、Windowsユーザには馴染みがないかもしれないが、
「.htaccess」みたいにファイル名が「.」から始まる場合は
普通はこれは拡張子とは言わない。

頭1文字目が「.」なファイル名を最初に除外しとくと
この辺が一発で解決するな。
06546282005/12/22(木) 10:08:50ID:ua9mUh2b
>>631
>>634

解決しました。どうもありがとうございました〜。
0655nobodyさん2005/12/22(木) 12:23:30ID:???
ぬるぬるぽっぽ
0656nobodyさん2005/12/22(木) 14:05:22ID:lB13zr56
webalizer以上の機能のアクセス解析作ろうと思ったら
おまえらならどれくらい時間必要?
0657nobodyさん2005/12/22(木) 14:17:50ID:???
>>656
webalizer以上の機能 つーのが何を指してるのか分からん。
0658nobodyさん2005/12/22(木) 14:23:55ID:???
萌え系のアクセス解析とかあったら
面白いけど、これはデザインの問題か
0659nobodyさん2005/12/22(木) 14:33:57ID:???
背景にでじこのエロ絵でも表示しておけ。
0660nobodyさん2005/12/22(木) 14:57:25ID:???
>>656
データマイニングとかやろうとしたら恐ろしい時間が。

>>658
萌え系って機能的には他のより劣ってるよな。

>>659
でじこは萌えない。
0661nobodyさん2005/12/22(木) 15:03:10ID:???
>>660
朝倉音夢
0662nobodyさん2005/12/22(木) 15:30:25ID:???
>萌え系のアクセス解析とかあったら

世界的に需要はあるだろうな。
ただゲームと同じで、日本では萌え=漫画、エロからはみ出せないから、
韓国人が先にやりそう
0663nobodyさん2005/12/22(木) 15:59:47ID:???
<ヽ`∀´>萌え業界はウリが完全征服するニダ
0664nobodyさん2005/12/22(木) 18:53:21ID:8W5z4hv+
C言語のatexitの様に、終了すると実行される関数を用意することは出来ますか?
ignore_user_abort(0) で終了されたときに、実行したい処理があるんです。
0665nobodyさん2005/12/22(木) 19:00:27ID:???
>>664
C言語に詳しくないのだけど、デストラクタのこと?

つ ttp://www.php.net/manual/ja/language.oop5.decon.php
0666nobodyさん2005/12/22(木) 19:01:34ID:???
register_shutdown_function
0667nobodyさん2005/12/22(木) 19:04:59ID:???
おお、はじめてみた。
面白そうな関数だな。
06686642005/12/22(木) 19:16:33ID:???
有り難う御座います!
解決しそうです。
0669nobodyさん2005/12/22(木) 19:34:14ID:???
質問です。

<html>
<?php
if ( ) {
echo "テスト1<br>";
} else {
echo "テスト2<br>";
exit;
}
echo "テスト3<br>";
?>
</html>

上記のような場合 if が真のときは期待通りの出力をしてくれるのですが、
偽のときは exit; 以降が出力されません。(当たり前だと思いますが)
<?php ?> から抜け出し、</html>まで出力させるにはどうすれば良いでしょうか?

Googleなどで検索しまくったけど分かりませんでした。お願いします。
0670nobodyさん2005/12/22(木) 19:37:10ID:???
exitを無くす
06716692005/12/22(木) 19:49:24ID:fg4VrG6a
>>670
exit; なくしたらテスト3も出力されますよね?
関数のように return; でも駄目だろうし(元々用途が違うと思うけど)


真の時
<html>
テスト1<br>テスト3<br>
</html>

偽の時
<html>
テスト2<br>


これを</html>(正確には ?> 以降)まで出力させるにはどうすれば。
0672nobodyさん2005/12/22(木) 19:57:44ID:???
>>671
テスト3が if()条件に左右されるものなら、
テスト1と同じ if() { } の中に含めるか、
テスト3の部分で 再度if() すればいいのでは?
0673nobodyさん2005/12/22(木) 19:59:08ID:???
>>671
<html>
<?php
if ( ) {
echo "テスト1<br>";
echo "テスト3<br>";
} else {
echo "テスト2<br>";
exit;
}
?>
</html>
0674nobodyさん2005/12/22(木) 19:59:17ID:wNhRz1jC
テスト3を真の方で処理
0675nobodyさん2005/12/22(木) 19:59:31ID:lB13zr56
$var = "私の苗字は山田、名前は太郎です\n私の苗字は山田、名前は次郎です";

ここから山田と太郎や
山田と次郎を抜き取って変数に入れるグッドなアイデア(または関数)を
教えてください。
0676nobodyさん2005/12/22(木) 19:59:45ID:???
>>673
あ,exit消し忘れ
0677nobodyさん2005/12/22(木) 20:00:21ID:???
>>675
マルチバイト関数
0678nobodyさん2005/12/22(木) 20:13:39ID:???
つmb_ereg系
0679nobodyさん2005/12/22(木) 20:18:13ID:01Hk6ZHq
もしくは性器表現
06806692005/12/22(木) 20:21:23ID:fg4VrG6a
すんません。沢山レスもらいましたが言葉足らずだったようで・・・


実際には条件式が多数にあり、その中のいろんな場所でexit;を使用しています。
主にエラーの時にエラー文を出力して exit; させていまして
フォームに入力されたデータが全て正しいとき(テスト3の場所に該当する)
MySQL接続して処理などをしています。


エラー文を function error() {} 等でまとめて処理する方法も考えましたが
error処理の最後で exit; させると結局同じだし・・・
0681nobodyさん2005/12/22(木) 21:04:46ID:???
>>680
出力させないだけで、処理自体は走って良いのなら。
<html>
<?php
if ( ) {
echo "テスト1<br>";
} else {
echo "テスト2<br>";
$ob = ob_start();
}
echo "テスト3<br>";
if($ob) ob_end_clean()
?>
</html>
0682nobodyさん2005/12/22(木) 21:06:21ID:???
>>680
で、処理そのものが走っちゃダメなら。
<html>
<?php
if ( ) {
echo "テスト1<br>";
} else {
echo "テスト2<br>";
$err = 1;
}
if(! $err) {
echo "テスト3<br>";
}
?>
</html>
0683nobodyさん2005/12/23(金) 11:19:05ID:???
>>669
処理部分丸ごと関数にしてreturn;でいいんじゃないか?

<?php
hoge();
function hoge() {
if($error) {
return;
} else {
echo "fubafuba";
}
}
?>
</html>
0684nobodyさん2005/12/23(金) 11:29:20ID:???
>>682のようにフラグ($err)を立てる事が多いんじゃないかねぇ。
PHP5だと 例外をthrowするのがおしゃれらしいけど。
0685nobodyさん2005/12/23(金) 11:45:06ID:???
HTMLにドメインロジックなんかが入ってる時点でおしゃれとかそういう次元じゃなくなってるよ
0686nobodyさん2005/12/23(金) 14:40:52ID:???
だね。HTML出力の中で処理分岐なんてさせんなよ。
主コードとデザインは分けろ。
デザインの中に入れていいロジックはデザイン切り替えのための判定だけだ。
0687nobodyさん2005/12/23(金) 14:45:09ID:???
ま、でも元質問者の意図は、HTML出力は関係なくて、

入力処理1
入力処理2
入力処理3
入力処理4
全ての入力処理がTRUEで実行する処理
入力処理の結果に関わらず実行する処理

という構成をシンプルに書く方法の模索だと思うけどね。
それを下手にHTMLやechoで例を書いたから叩かれる。
0688nobodyさん2005/12/23(金) 16:01:50ID:???
$var = "ab.0 cd.a bb.2 abc0";

$varから「ab.数字」という文字列を取ってくるにはどうすればいいでしょうか?
(この場合、ab.0です)
正規表現で preg_grep("ab.[0-9]", $var);
としたいところですが、.が正規表現として認識されてしまい、
abc0まで取得してしまいますよね?
正規表現にもエスケープとかあるのでしょうか?
0689nobodyさん2005/12/23(金) 16:06:51ID:???
"/ab¥.[0-9]/"でしょ
0690nobodyさん2005/12/23(金) 16:09:31ID:???
>>688
正規表現なのは"/ab[0-9]/"側であって、$var側は関係ない。
正規表現のエスケープ方法もあるが、この質問はそれ以前に理解が足りてない。
06916902005/12/23(金) 16:12:23ID:???
ごめん。「.」が見えてなかった。勘違い。>>689で正解。
あと「ab.」の部分が可変で何が入ってくるか分からない、みたいな場合は、
preg_match("/".preg_quote($str)."[0-9]/", $var)
とすることで自動エスケープさせられる。
0692nobodyさん2005/12/23(金) 16:16:35ID:???
>>688
どうでもいいが、preg_grepは配列からの抜き出ししかできないぞ
0693nobodyさん2005/12/23(金) 17:56:59ID:???
そろそろ正規表現スレに逝けや。
PHPの話じゃないし。
0694nobodyさん2005/12/23(金) 18:02:44ID:???
>>686
{if $var}○{else}×{/if}
とかやる場合は、どうするの?
設定ファイルに
v1 = '○'
v2 = '×'
とかやっておいて、PHP側で代入しておけばいいの?
ループ処理はどうするの?
パーツごとにテンプレートを分離して処理するの?
分岐とループはHTMLテンプレートには入っても仕方ないと思うけどねえ。演算なんかは予め処理しておくべきだろうけど。
0695nobodyさん2005/12/23(金) 18:22:25ID:???
>>694
> {if $var}○{else}×{/if}
> とかやる場合は、どうするの?
それが表示の切り替えに必要ならあっていいし、逆に表示のためのロジックが
主プログラム側に入り込んでるのも間違ってると思うな。
当然、表示のためのifやループはデザイン側に入ってて然るべきかと。
「表示」と「処理」の役割分担が分かってればレイヤー分けに迷わないんじゃ?

>>680はHTML表示の途中でDB接続の有無を切り替えてたりするのがおかしい。
0696nobodyさん2005/12/24(土) 15:28:41ID:???
PHPを導入するにあたり、Verについて悩んでおります。

私は、環境構築サイドの人間なのですが、
セキュリティ担当の部署から環境をなるべく
変更をされるのを好ましく思われないので
大きな脆弱性がでない限り環境を変更しない(UPDATEをしない)
環境が必要となっております。

PHP4とPHP5とPEARの導入等も考慮した場合
WebProgの方々から見た場合Verはいくつが妥当でしょか?
0697nobodyさん2005/12/24(土) 15:47:08ID:???
>>696
それはバージョンとは関係ないような...

セキュリティ担当が言うのはちまちましたセキュリティパッチなんて
当てたくねーよってこと? それとも、バージョンのメジャー番号が
変わるようなアップデートは運用ポリシー上望ましくないってこと?

前者ならそんな会社ヤヴァイし、後者ならセキュリティパッチを
ちゃんと後方互換性とか考えて作るベンダを選ぶ方が大事なのでは。
0698nobodyさん2005/12/24(土) 16:33:13ID:???
>>696
PHPなら最新版以外選択の余地ないでしょ。
0699nobodyさん2005/12/24(土) 16:45:45ID:???
>>696
好ましく思わないのが開発担当ならまだ分かるがセキュリティ担当?
だったらPHPの脆弱性なんてマイナーバージョンが3つも上がれば山ほど出てくるから、
ほとんど毎回アップデートしないと意味ないと思うが。
PHPを大雑把にアップデートしないってのは、WindowsUpdateをこまめにかけずに
SPが出てくるまで待ってるのに等しい。
ユーザ側ならともかくセキュリティ担当がそれじゃダメだろ。
0700nobodyさん2005/12/24(土) 20:21:14ID:???
で、バージョンアップすると派手に動かなくなるんだよねえ。
アパッチのバージョンアップどころの騒ぎじゃない。
0701nobodyさん2005/12/24(土) 20:26:04ID:???
昔のprintfの一件以来、バージョンアップは1ヶ月くらい様子を見てからにしてるなあ
PHPはまだ枯れていないから、心配ならperlとかにするしか無いな
0702nobodyさん2005/12/24(土) 20:39:48ID:???
>>700
そーそー。だから、普通はセキュリティ担当はアップデートしたがり、
開発担当は待ってくれと止める、というパターンになるんだよね。
セキュリティ担当もアップデートするつもりがないなら
いっそ4.3.4くらいのバージョンでも全然問題ないのでは。
現行の4.4.1とか、mb_send_mail()にバグあるしさー
0703nobodyさん2005/12/24(土) 20:43:17ID:???
ま、とりあえず現状で最大級の脆弱性が塞がってるのは
4も5もそれぞれ最新版1個しかないんだから、選択の余地は無いよね。
>>696って、今のセキュリティ状態を確認した上でこの質問してんのかね?
0704nobodyさん2005/12/24(土) 20:49:31ID:???
>>702
>現行の4.4.1とか、mb_send_mail()にバグあるし
ちなみにどういうバグ?
0705nobodyさん2005/12/24(土) 21:03:59ID:???
文字化けするケースあり
0706nobodyさん2005/12/24(土) 21:04:56ID:???
あと、第4パラメータが完全に無視されてるとか。
0707nobodyさん2005/12/24(土) 21:05:22ID:???
あぁ、なんだやっぱりPHPのバグだったのか
以前実際に起こってちょっと参った…
0708nobodyさん2005/12/24(土) 21:05:56ID:???
思い切ってPHP3を使おうと思う
0709nobodyさん2005/12/24(土) 21:38:44ID:???
>>708
閉じた世界ならいいんじゃね?
0710nobodyさん2005/12/25(日) 00:31:00ID:???
華麗に進入
0711nobodyさん2005/12/25(日) 14:45:31ID:Tho8NAOl
PHP + MySQL で複数人使用可なスケジューラーを作成していたのですが、
ログイン時に、データベースのテーブルに登録済みのIDとPWにマッチすれば認証OKで
その後、自分のスケジュールやプロフィール変更が可能という感じに作りました。

ここで問題点だと思うことを見つけたのですが、
ローカルテストのみだったので、全てのMySQL接続に root@localhost を使用していました。

前までは Perl でテキストにIDとPW保存とかしてたレベルなので気付かなかったのですが、
MySQL接続自体に各個人のID・PWを使用して管理するほうが良いのでしょうか?
0712nobodyさん2005/12/25(日) 15:00:55ID:???
>>711
デフォルト管理ユーザのrootを普通に使ってちゃまずいだろ。
(権限変えてるなら別だが)
PHPアプリからの接続用に適当な権限を設定した
専用ユーザ作って、それ使え。
0713nobodyさん2005/12/25(日) 15:05:51ID:???
>>709
地球上で閉じてます
ならいいですね
07147112005/12/25(日) 15:13:50ID:???
管理人側で予めユーザ登録しておき、POSTされたID・PWでMySQL接続する場合


$login_id = $HTTP_POST_VARS["login_id"];
$login_pass = $HTTP_POST_VARS["login_pass"];
$db_connect = mysql_connect("localhost", $login_id, $login_pass);
if ($db_connect == False) {
print ("認証失敗");
exit;
}
認証後の処理


こんな感じだと思いますが、
結局各個人のスケジュールやプロフィール編集などする場合、
その該当レコードを検索する必要があって、そこにはIDとかが必要だろうし…
ユーザごとにテーブル作成するのはありえないだろうし、


って書いてたら>>712さんキター
分かりました。予め通常のデータ操作のみ可能なユーザを作成し
ログインした人全員が、そのMySQLユーザで接続して書き込みすればいいのですか
ありがとうございました。
0715nobodyさん2005/12/25(日) 16:41:24ID:???
>>714
勿論アプリケーシンにもユーザという概念があるのだから
アプリケーションの部分でユーザアカウント処理と
その為にデータベース(ファイルでも良いけど)に
アカウント管理用のテーブルを設けるのだけどね。
0716nobodyさん2005/12/25(日) 20:13:40ID:WvivzG1I
さくらでcron登録したスクリプトがちゃんと動いてない
みたいなんだけど、何で?

PEARのXML_RSSオブジェクト->parseがダメなみたいっす。
ブラウザからスクリプトにアクセスすればちゃんと動くのに。
0717nobodyさん2005/12/25(日) 20:49:11ID:???
さくらの環境が分からないのでありがちなケースだと、
実行時のカレントディレクトリが違うんで相対パスがこけてるとか。
0718nobodyさん2005/12/25(日) 21:41:54ID:hD4Vkj0e
はじめまして。

自分は現在
<?php echo "
〜〜〜
"; ?>

で、phpでホームページを作っているのですが、そのホームページの中に
ttp://php.s3.to/simple/#short

ここの「−ショートメッセージ−」という物を取り込みたいのですが、どうすればよいのでしょうか。
普通に取り込んでも
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
とエラーが出てしまい、取り込めません。
0719nobodyさん2005/12/25(日) 21:48:35ID:???
>>718
普通に取り込んだってのがどういう取り込み方をしたのか分からんのだが。
0720nobodyさん2005/12/25(日) 21:55:47ID:hD4Vkj0e
>>719

とりあえず「"; ?>」から下に、そのHPにかいてる

「<?
$lines = file($logfile);//ファイルを配列に読み込む
 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
echo $lines[$i];
?>」

をかいて、メッセージボードを設置したい場所に

<td>

<form method=\"post\" action=\"<? echo $_SERVER['PHP_SELF']; ?>\">
<font face="Arial"><b>-ShortMessage- 自由に書き込んで下さい</b> <small>b,i,s,uタグ可</small></font><br>
<b>N:</b><input name=\"name\" type=\"text\" size=\"10\"
maxlength=\"10\" value=\"<? echo $_POST['name']; ?>\">
<b> : </b><input name=\"message\" type=\"text\" size=\"40\" maxlength=\"60\">
<input name=\"submit\" type=\"submit\" value=\" Send \"><br>
</form>

</td>

としてみたところ、エラーがでました。
0721nobodyさん2005/12/25(日) 22:03:35ID:???
>>720
全然普通じゃないじゃん。

> <form method=\"post\" action=\"
この辺のエスケープから察するに、フォームのHTMLをprintか何かで出力してるのか?
だったら
> <? echo $_SERVER['PHP_SELF']; ?>
これをそのまま書いてたらダメだろ。
0722nobodyさん2005/12/25(日) 22:19:28ID:hD4Vkj0e
>>721
すみません、ttp://php.s3.to/simple/#shortにはそう書いてありましたのでそうしてしまいました。

たしかに<? echo $_SERVER['PHP_SELF']; ?> の行でエラーがでます。
どのようにすれば改善できるのでしょうか。
0723nobodyさん2005/12/25(日) 22:25:03ID:???
PHP内でPHPの宣言しなきゃいいだけ
0724nobodyさん2005/12/25(日) 22:36:53ID:hD4Vkj0e
>>723
なるほど、ありがとうございます。
じゃあttp://php.s3.to/simple/#shortに書いてある方法と同じですね。

そのページにかいてある方法では、

使用するページの拡張子を.phpにして、<?include("short.php");?>を挿入します。

と書いてありますが、 「<?php echo "」内に「<?include("short.php");?>」を書くとエラーが起きてしまいますが、
0725nobodyさん2005/12/25(日) 22:44:11ID:???
>>724
何故echo内に書く?
0726nobodyさん2005/12/25(日) 22:49:49ID:hD4Vkj0e
>>725
http://php.s3.to/tt/tt2.php

このページの真ん中にかいてある、
「<?php echo "<html><body text=\"#ffffee\" vlink=\"#ddaa55\">"; ?>」〜〜〜

を参考にしました。「<?php echo」内にHTMLを書いています。

それで、ttp://php.s3.to/simple/#shortには、「<?include("short.php");?>を挿入します。 」
と書いていたからです。
0727nobodyさん2005/12/25(日) 22:56:42ID:???
<?php 〜 ?>内に書かれているHTMLと
(<?php 〜 ?>外の)HTML内にある<?php 〜 ?>では意味が違う。
この辺の基本的な事を理解していないから変な事を書いているのでは?

そもそも元のページは<?php echo"〜"; ?>しか無いのか?
それで何でわざわざPHPで実行する?
0728nobodyさん2005/12/25(日) 23:06:53ID:WvivzG1I
>>717

あ、cronに限らず、telnetでコマンドラインから実行してもダメでした。
$xmlrss->parse();とするとxml_rss objectが生成されている(print_rで確認)ので、
PEARのRSS.phpは読み込めてると思うんですが。。ただ、

[_error_class] => XML_Parser_Error

という値が入ってるのを発見。しかもRSSファイルに入ってる
データは全く取得できてないし。なんじゃこら。

コマンドラインから実行すると、外部サーバーのファイルに
アクセスできないとか?
0729nobodyさん2005/12/25(日) 23:12:14ID:hD4Vkj0e
>>727
ページはindex.phpです。
そこに<?php echo"〜"; ?>を最初と最後にかいて、「〜」にHTMLを記述しています。
0730nobodyさん2005/12/25(日) 23:15:36ID:???
>>729
だから「echoの中のHTML」に<?php 〜 ?>は置けないんだってば。
ちょっと初心者用のphp本買ってきて最初から勉強しなさいな。
0731nobodyさん2005/12/25(日) 23:20:15ID:hD4Vkj0e
>>730
すみません、連休明けの休日にマジメに本買います。

では、「<?php 〜 ?>」が置ける「HTML」の記述ができるphpの記述方法はあるのでしょうか?
0732nobodyさん2005/12/25(日) 23:21:57ID:WvivzG1I
最初と最後の<?php と ?>を取れば多分行けるんじゃない。
それより俺の質問に答えてくれ(笑)

コマンドラインは何が違うんだぁぁ
0733nobodyさん2005/12/25(日) 23:23:07ID:???
>>731
そんな記述が必要なプログラミング内容を考えろ
07347332005/12/25(日) 23:24:31ID:???
「考え直せ」の方が適切だったか。
0735nobodyさん2005/12/25(日) 23:24:59ID:WvivzG1I
ああ、最初のechoも取らないとダメだから、

最初:<?php echo"
最後:"; ?>

を取る。他に問題が無ければそれでHTMLの中のPHP部分は動くはず。
0736nobodyさん2005/12/25(日) 23:30:28ID:hD4Vkj0e
>>みなさん

最初:<?php echo"
最後:"; ?>

を取ったところ、無事解決しました。ご協力ありがとうございます!メリークリスマス!11
0737nobodyさん2005/12/25(日) 23:31:09ID:???
>>732
コマンドラインっつーか、実行権限とパーミッションの関係とか言う話じゃあるまいな
0738nobodyさん2005/12/25(日) 23:32:13ID:???
>>736
遅いよw
0739nobodyさん2005/12/25(日) 23:35:18ID:???
PHPの4.3を使用してます。
関数の戻り値として クラスのインスタンスの参照を返したいのですが
可能でしたらその方法、もしくはキーワードを教えていただけませんか?

// サンプル
function GetInstanceOfFoo()
{
  static $foo;
  $foo = new Foo();
  return $foo;
}

// ↓のようなことがしたい
GetInstanceOfFoo()->SetName("山田 太郎");

以上よろしくお願いします。
0740nobodyさん2005/12/25(日) 23:38:54ID:???
そもそも配布元では、*.htmlに設置する場合のケースを書いているのに、
それを(意味のない)*.phpのページに設置しようとして、
そのまま適用しているので辻褄が合わなくなってる

(全体をechoで囲んでいるくだりを見るに)自分では応用しているつもりなのかも知れんが、
基本がなっていないのであくまでも「つもり」であって、実際は破綻している状況なのは
分かってるのかな・・・?
0741nobodyさん2005/12/25(日) 23:47:21ID:???
>>728
ちょっとコマンドラインから実行した状態でphpinfo()を出力してみた方がいいかも。
Web上で実行したときとPHPの設定がどっか違ってない?
0742nobodyさん2005/12/25(日) 23:48:48ID:???
>>739
マニュアル嫁 ボケナス
0743nobodyさん2005/12/25(日) 23:49:59ID:???
>>740
うーん。まー、*.htmlに記述する場合、って言い方も間違ってると思うけどな。
<? include() ?>は少なくとも動かないといけないんだし、PHPである必要はある。

ただ、PHPはその中にそのまんまHTMLを書けるのに、わざわざ全体を
<?php 〜 ?>で括ってPHPコード化する必要なんて無かったってだけのことなんだよな。
0744nobodyさん2005/12/25(日) 23:59:20ID:WvivzG1I
>>741

あ、PHPのバージョンは違ってますね。
PHP Version 4.4.2-devを使うように指定しているはずなんですが、
4.3.10になります。
0745nobodyさん2005/12/26(月) 00:02:49ID:???
>>744
パスの優先度が低いんだろうな。
0746nobodyさん2005/12/26(月) 00:07:50ID:Zw5jS3w7
パスの優先度。。(ポカーン) <= 素人

ちなみにパーミッションは755。
0747nobodyさん2005/12/26(月) 00:12:45ID:???
>>742
もう少し自分でがんばって見ます。
お気を悪くしたようでしたら申し訳ございません。
0748nobodyさん2005/12/26(月) 00:15:53ID:???
>>746
クライアントじゃどうしようもないとオモ。

PHP4.4.2-devの絶対パスが分かるならそれで起動してみれ
0749nobodyさん2005/12/26(月) 00:18:35ID:???
>>745
#!でphpをフルパス指定してるんじゃないのか?優先度が絡みそうなのはPEARくらいかと。
その4.4.2-devと4.3.10って自分でインストールしたやつ?それともサーバー管理者?
2種類入ってる意図と、その使い分けがどうなってるのかが気になる…。
4.4.2側のCLI版phpを#!のとこで指定できれば解決できそうな気もするんだが。
他にphp.iniの内容が違ってないのなら、という条件は付くかもしれないけど。
0750nobodyさん2005/12/26(月) 00:24:41ID:Zw5jS3w7
*PHP 4.4.2-dev(開発版) 提供のお知らせ*
http://www.sakura.ne.jp/news/archives/20051118-003.news

との事なので、4.4.2-devの絶対パスは分からないっす。
と言うか、これはバージョンの問題?って、そうか、fopenとかの設定?
ちょっと見てみる。
0751nobodyさん2005/12/26(月) 00:31:09ID:???
逆にこれ、Web版を4.3.10で動かしてみれば?って感じだな。
それで動くなら、Web版は.htaccessで設定をローカル変更してると見たが。
0752nobodyさん2005/12/26(月) 00:39:09ID:Zw5jS3w7
>>751

Web版を4.3.10で試す => 実行成功

もしや振り出し?
つーか、phpinfo()って、戻り値1なんだけど(笑)。
これの出力をトラップしてファイルに落とすのはどうしたら
良いのか分からず、今phpinfoチェックできず中。。
0753nobodyさん2005/12/26(月) 00:42:50ID:Zw5jS3w7

疲れた。
カフェオレ飲んで一息つくぞチクショー!
0754nobodyさん2005/12/26(月) 00:50:09ID:???
リダイレクトすりゃいいだけの話だと思うのだが
0755nobodyさん2005/12/26(月) 00:57:19ID:???
>>739
結論から言うと出来ない。
常に一端何らかの変数に入れてからアクセスしれ。
0756nobodyさん2005/12/26(月) 01:12:09ID:???
リモートホストからドメイン部分だけ抜き出すいい方法おしえてください
正規表現だけですべてに対応っていうのは厳しいですかね
0757nobodyさん2005/12/26(月) 01:17:58ID:???
>>756
いや、http://の後に「/」が出てくるまでの文字列抜き出せば良いだけの話だと思うが。
正規表現スレ行けば即効で答え返ってくると思われ。
0758nobodyさん2005/12/26(月) 01:22:27ID:???
漏れならとりあえずparse_url()を試すかな
0759nobodyさん2005/12/26(月) 01:24:02ID:???
>>754

スクリプトはブラウザから指定できない
場所に置いておきたいので、リダイレクトは微妙。

0760nobodyさん2005/12/26(月) 01:29:46ID:???
>>759
phpinfoの結果を知りたいんじゃないの?
だったらリダイレクトしてFTPで引っ張ってくれば良いじゃない。何が微妙なんだ。
0761nobodyさん2005/12/26(月) 01:40:05ID:Zw5jS3w7
あ、cronでウェブ版にリダイレクトしろって事かと。
phpinfoをリダイレクトするってどういう事っすか?
0762nobodyさん2005/12/26(月) 01:43:06ID:???
>>761
シェルで「>」付きで叩くか、ob_関数使えば?
何か変なところで無知だな。
0763nobodyさん2005/12/26(月) 01:47:20ID:???
>>761
cronに書くときに
スクリプト > 出力ファイル名
って書いときゃいいかと
0764nobodyさん2005/12/26(月) 01:48:05ID:Zw5jS3w7
>>762

>シェルで「>」付きで叩くか、ob_関数使えば?
>何か変なところで無知だな。

独学なんで、良く言われる。
そっかシェル使えば簡単だ。PHPでやろうと思ってた。

お陰様でphpinfo()は取得できたので(有難う)、
次は設定内容をチェックしてみる。
0765nobodyさん2005/12/26(月) 01:59:00ID:???
allow_url_fopenはONだし、他の設定もphp.ini通り。
phpのバージョンが古い以外は同じみたいっす。

何か長引いてしまってるけど、付き合ってくれてる人有難う。
0766nobodyさん2005/12/26(月) 02:08:45ID:???
>>763

いや、cronからphpinfo()は見ないっす(笑)。
0767nobodyさん2005/12/26(月) 02:10:49ID:???
ひとまずPEAR使わないで、fopen辺りでどっかのサイトの中身を拾えるか試してみるってのは?
0768nobodyさん2005/12/26(月) 02:21:35ID:???
携帯サイトを作っています

クッキーの使えない携帯のためにセッションを
URLに埋め込む方式を取っているのですが
マニュアルに書いてある通りこれは危険なので
(SIDを埋め込んだURLを他人に教えてしまった時など)
これとは別にDBにSIDとIPの対応表を作って
セキュリティを確保しようとしました。

これは良さそうだと思ったのですが、実装してみて
問題に気づきました。
なんと携帯はアクセスごとにIPが変わってしまうのです。
なのでアクセスごとに同じ人か判別する事が不可能になってしまいました。

セッションを使う際にこれを解決する方法って何かありませんでしょうか。
おねがいします。
0769nobodyさん2005/12/26(月) 02:45:49ID:???
>>767

これだと、google.comは表示されないです。
ただ、ブラウザから実行しても表示されないので・・
何かやっちゃってます?深夜でボーっとしてきた。

<?php

$file = 'http://www.google.com/';
$f = fopen($file, "r") or die("openエラー");
$string = fread($f, filesize($file));
echo "fopen_check<br>".$string;
fclose($f);

?>

0770nobodyさん2005/12/26(月) 02:49:19ID:???
>>769
やっちゃってるな
0771nobodyさん2005/12/26(月) 02:51:20ID:???
やっちゃってますか。
0772nobodyさん2005/12/26(月) 02:58:03ID:???
filesize()がURL相手に使えるのはPHP5だけええぇぇぇぇぇ!!
0773nobodyさん2005/12/26(月) 02:59:23ID:???
>>768
au/vodafonは無条件で固体識別文字列を送ってくるこれをつかえ。
DoCoMoは公式サイトなら固体識別文字列をとれる。勝手サイトだと確認アリでとることが出来る。
0774nobodyさん2005/12/26(月) 08:53:25ID:???
>>773
正確さに欠ける
75点
0775nobodyさん2005/12/26(月) 09:31:53ID:???
>>704
亀レスだけどココにまとまっている。

最近の mbstring 関係のバグのまとめ
http://d.hatena.ne.jp/t_komura/20051105#1131202088
0776nobodyさん2005/12/26(月) 09:32:33ID:???
>>773
vには送らない機種もある。
0777nobodyさん2005/12/26(月) 10:24:49ID:IgYuuYFO
ここでいいのかわかりませんが
今jpgraphを使っているのですがy軸のタイトルに日本語を使用したら
きちんと表示はされるのですが後ろの文字から上になってしまいます。
なにか対処法等あるのでしょうか?
ちなみにwindows phpは4.4.1です。
0778nobodyさん2005/12/26(月) 10:34:09ID:???
>きちんと表示はされるのですが後ろの文字から上になってしまいます。

ここの意味がわからん。もう少し具体的に。
0779nobodyさん2005/12/26(月) 11:16:43ID:IgYuuYFO
>>778
あぁ、すみません。

テ      ト
ス   →  ス
ト      テ

っていう感じになってしまうのです。
07807792005/12/26(月) 11:17:41ID:IgYuuYFO
↑ すいません、横のズレは関係ないです^^;
0781nobodyさん2005/12/26(月) 11:47:09ID:???
>>777
文字列を逆順にすればいいんじゃね?>対処法
07827772005/12/26(月) 11:51:06ID:IgYuuYFO
>>781
ま、まぁそうなんですけど・・。
ありがとうございました。
0783nobodyさん2005/12/26(月) 11:54:10ID:???
>>782
http://ns1.php.gr.jp/pipermail/php-users/2005-November/028129.html
07847772005/12/26(月) 13:14:15ID:IgYuuYFO
>>783
色々すいません、ありがとうございます。
0785nobodyさん2005/12/26(月) 13:43:42ID:nKfhQ7EH
モジュール版でのインストールや動作は、今まで問題なくやってきたのですが、
今回CGI版で動作させたいと思って、PHPのインストールからやり直してます。

./configure with-apx2=/usr/local/sbin/apxs \
--enable-cgi \
--enable-force-cgi-redirect \
〜〜〜あといくつかオプション〜〜〜

make install clean

こんな感じでインストールした後、httpd.confに
Action php-script /cgi-bin/php
Addhandler php-script .cgi .php
と追記し、apacheを再起動しました。

そして、
#!/usr/local/bin/php
<? echo "hello!"; ?>
とだけ書いた test.phpというファイルを作成してブラウザでアクセスすると、
#!/usr/local/bin/php hello!
という具合に、#!/usr/local/bin/php から表示されてしまいます。
ファイルの拡張子を.cgiにすると、そのようには表示されません。

拡張子が.phpの場合、インタプリタ言語として認識される前に、
先にモジュール版のPHPとして処理されているからだと思うのですが、
これは回避しようがないのでしょうか?

OSはFreeBSD5.4R Apache2.05で動作させています。
07867852005/12/26(月) 13:46:00ID:nKfhQ7EH
書き忘れで追記です。

モジュール版とCGI版の両方を使えるようにし、
どちらも拡張子はphpで動作させたくて、
ファイルの1行目にバイナリへのパスがある場合は、CGI版として動作させたいということです。
0787nobodyさん2005/12/26(月) 14:03:39ID:???
>>786
おいおい同じ拡張子でできるわけないだろ
0788nobodyさん2005/12/26(月) 14:06:14ID:???
>>786
ディレクトリ単位で切り替えるか、バーチャルホスト単位で切り替えるか。
0789nobodyさん2005/12/26(月) 14:11:19ID:???
>>787
やっぱりできなくて当たり前なんですね・・・
それが当たり前なのかどうかが分からなくて(死)
すみません。

>>788
その手がありますね。
cgi-binとか作って、そこだけで動作とかですね。
ヒントありがとうございます。
0790nobodyさん2005/12/26(月) 14:41:09ID:???
重たい処理をさせたかったのでsystem関数をしようして
処理用のPHPをバックグラウンドで動かし引数を与えたいのですが
どのように引数を渡し・受け取ればいいのでしょうか?
0791nobodyさん2005/12/26(月) 15:04:39ID:???
>>790
PHPのマニュアルのエロイとこはUserNotesという形で有用なコメントがあることだぬ
その話も載ってるよ。
ttp://jp2.php.net/manual/ja/function.system.php
0792nobodyさん2005/12/26(月) 15:33:28ID:???
>>791
ありがとうございます
エロイ人がとっても参考になりました
0793nobodyさん2005/12/26(月) 18:24:27ID:D+i6TPIN
関数から帰ってきたArrayの要素に直接(変数代入なしで)アクセスする方法ってないですか?

$array = ReturnArray();
$array[1]
と同じことを、イメージ的には
ReturnArray()->[1]
って感じでやりたいのでつが。
0794nobodyさん2005/12/26(月) 18:35:02ID:???
>>793
要はReturnArray()[1]ってやりたいんでしょ。
PHPはそういうのできないんだよね。
method()->propertyができるようになったのもPHP5出てからだし。
現時点では配列の要素へのアクセスは2行に分けて書くしかないかな。
配列の要素を一気に代入するなら
list(, $hoge) = ReturnArray();
でいけるけど。
0795nobodyさん2005/12/26(月) 18:59:57ID:???
>>793
方法はないんじゃないかね。頭と尻だけなら
array_shift()とarray_pop()で取れるけど。
どうしても欲しいならユーザ関数の方を
添え字付きでアクセスするようにするか。
0796nobodyさん2005/12/26(月) 19:41:32ID:???
PHP5ならSPLのArrayObjectを継承して使うのがいいんじゃないかな。
0797nobodyさん2005/12/26(月) 21:37:15ID:???
$a[0] = 1;
$a[1] = 3;
$a[3] = 1;
$a[5] = 1;
$a[6] = 8;
$a[7] = 9;

とある時に、定義されてない$a[2]、$a[4]に空の値("")を入れて、並びもキー順にしたいのですが、今のやり方はまずforeachで回してチェックして定義されてなければ""を入れ
$a[0] = 1;
$a[1] = 3;
$a[3] = 1;
$a[5] = 1;
$a[6] = 8;
$a[7] = 9;
$a[2] = "";
$a[4] = "";
あとからキー順に並びかえてます。
$a[0] = 1;
$a[1] = 3;
$a[2] = "";
$a[3] = 1;
$a[4] = "";
$a[5] = 1;
$a[6] = 8;
$a[7] = 9;
どのキーが定義されてないか、というのと定義済みキーの値は変動します。
どなたかうまいやり方があればご教示願います。
0798nobodyさん2005/12/26(月) 22:03:45ID:???
>>797
キーの抜けチェックはforeachで回すしかないんじゃなかろうか。
そのforeachの書き方自体は何種類かありそうだけど。
キー順並び替えは ksort($a); で一発では?
0799nobodyさん2005/12/26(月) 22:07:36ID:???
foreachで回すのなら最後の並び替えは不要なんじゃないか?
0800nobodyさん2005/12/26(月) 22:13:54ID:???
>>798
そうですかー、並び替えもそれでやってます。一発でぽんとやってくれる関数とか無いかなーと探してまして。

>>799
並びかえないと>>797の二番目の順番のままなのであとの処理に影響が出てしまうので…
0801nobodyさん2005/12/26(月) 22:19:36ID:???
>>797
$max = max(array_keys($a));
for($i = 0; $i <= $max; $i ++) $a0[$i] = (isset($a[$i]))? $a[$i]: "";
$a = $a0;
0802nobodyさん2005/12/26(月) 22:32:25ID:D+i6TPIN
>>794-796
dくす
Objectにする程でもないので2行で我慢します
行数より無駄に変数割り当てるのに抵抗あるんだが
Perl出身ですまそ
0803nobodyさん2005/12/26(月) 22:39:43ID:???
>>801
ありがとうございます。
一回別の配列に入れて整えるわけですね。やってみます。
どうやら一発でぽんとは無理っぽいですね。ユーザ関数にして使うことにします。
0804nobodyさん2005/12/27(火) 01:08:06ID:???
スレ違いになるかもしれませんが質問させてください。
質問の内容はパフォーマンスです。当方で「ionCube PHP Accelerator」の環境が無いので
そのパフォーマンスをJAVA(jsp)と比べた値を得たいのです。
PHPのソースは以下の通り5000までの素数を得るものです。


0805nobodyさん2005/12/27(火) 01:09:17ID:???
<?php
// 処理開始時間を取得して表示する
list($sec1, $sec2) = explode(" ", microtime());
$start = $sec1 + $sec2;
echo 'start = '.$start.'<br>';

// 5000までの素数を算出して表示する
for($i = 2; $i <= 5000; $i++) {
$divisor = 0;
for($j = 1; $j <= $i; $j++) {
if($i % $j == 0) {
$divisor++;
}
}
if($divisor == 2) {
echo $i.'<br>';
}
}

// 処理終了時間を取得して表示する
list($sec1, $sec2) = explode(" ", microtime());
$end = $sec1 + $sec2;
echo 'end = '.$end.'<br>';

// 処理時間を算出して表示する
$elapse = $end - $start;
echo 'elapse = '.$elapse.'秒';
?>
0806nobodyさん2005/12/27(火) 01:10:30ID:???
一方、jspのソースは以下の通りです。
<%@ page contentType="text/html;charset=Shift_JIS" %>
<%@ page import="java.util.*" %>
<%
long start = new Date().getTime();
%>
start = <%=start%><br>
<!-- 5000までの素数を算出して表示する -->
<%
int divisor;
for(int i = 2; i <= 5000; i++) {
divisor = 0;
for(int j = 1; j <= i; j++) {
if(i % j == 0) {
divisor++;
}
}
if(divisor == 2) {
%>
<%=i%><br>
<%
}
}
// 処理終了時間を取得して表示する
long end = new Date().getTime();
%>
end = <%=end%><br>
<!-- 処理時間を算出して表示する -->
elapse = <%=(float)(end - start) / 1000%>秒

0807nobodyさん2005/12/27(火) 01:12:05ID:???
当方の環境(Pen4 3GHz 1GRAM)ではPHPの方は10秒くらいで、jspは0.3秒くらいです。
単純に考えて、演算パフォーマンスを見ればJAVA(バイトコードをキャッシュするから当然と言えば当然)なのですが、PHPの開発効率も捨て難いです。
そこで、アクセラレータの機能を実感してみたいのですが、手元に10台あったPCが全部取り押さえされて
しまって無くなってしまいました。唯一あるのがこのWinXPなのです。どなたかFreeBSDでのアクセラレータの
速度を計ってもらえないでしょうか?WinXPにはionCube PHP Acceleratorが無いのです。
長くなってしまいましたがよろしくお願い致します。
ちなみに上記素数演算のソースはWEBからパクッてきたものです。
0808nobodyさん2005/12/27(火) 01:23:40ID:???
>10台あったPCが全部取り押さえされて

何があったんだw
08098072005/12/27(火) 01:29:27ID:???
>>808
その辺はつっこまないでください。。
あぁ無事に年を越せるかどうか。。
0810nobodyさん2005/12/27(火) 01:39:49ID:???
>>807
そのWinXPにFreeBSD入れりゃいいじゃん。
俺らがどっちが速いっつっても参考になるまい。
08118072005/12/27(火) 01:43:41ID:???
>>810
あ、そっか!!その手があったか。。灯台元暗し。。
いまからパーテション切ります。
0812nobodyさん2005/12/27(火) 01:50:52ID:???
危険なアネハ
08138072005/12/27(火) 01:50:57ID:???
HDの物理ディスク量がのこり120MBしか無い。。。。
0814nobodyさん2005/12/27(火) 02:02:31ID:???
さすがにそれはロジックがダメすぎまいか...
<?php
$start = microtime(true);
$pn = array(2);
for ($i = 3; $i < 5000; $i +=2) {
foreach ($pn as $n) {
if ($i % $n == 0) {
continue 2;
}
}
$pn[] = $i;
}
$end = microtime(true);
echo implode("\n", $pn), "\n";
printf("%d prime numbers found.\n", count($pn));
printf("%0.6fsec.\n", $end - $start);
?>
microtime(true) は PHP5 限定な。
08158072005/12/27(火) 02:18:44ID:???
>>814
WEBから何も考えずパクッただけだったので申し訳ない。
>>814のロジックにしたらPHPでも0.4秒まで短縮できた。
あぁ情けない俺。ロジックで躓くなんて。。
0816nobodyさん2005/12/27(火) 02:36:56ID:???
>>807が追い込まれた理由がわかる気がする
08178072005/12/27(火) 02:41:09ID:???
>>816
俺も薄々自分で気付いてきた気がする。
0818nobodyさん2005/12/27(火) 10:50:07ID:hzIZknsD
レンタルサーバーを借りてPHPのプログラムを作ってるんですが
利用しているサーバーはGDライブラリでJPEGをサポートしていないようです。
gd
GD Support enabled
GD Version bundled (2.0.28 compatible)
GIF Read Support enabled
GIF Create Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
これをJPEGも使えるように自分でGDライブラリをインストールする事は出来ますか?
やはりサーバー管理者にお願いするしかないのでしょうか
0819nobodyさん2005/12/27(火) 10:51:34ID:???
>>818
できるかどうかそのレン鯖にきいたほうがはやいだろ
0820nobodyさん2005/12/27(火) 10:53:36ID:???
>>818
http://sugachan.dip.jp/

これ使え
0821nobodyさん2005/12/27(火) 12:39:05ID:???
jpegってライセンスが必要じゃなかったけ? gifだったかな?
0822nobodyさん2005/12/27(火) 12:45:05ID:???
>>821
gifは特許切れた
その後GIF Createが追加された
08238182005/12/27(火) 13:44:39ID:???
レン鯖から回答が来ました。
ダメみたいですね。対応検討中とか言われた。
お騒がせしまして申し訳ありませんでした。
0824nobodyさん2005/12/27(火) 18:52:39ID:???
レン鯖がGDライブラリサポートしない理由が分からん。
利点しかないだろうに
0825nobodyさん2005/12/27(火) 18:53:45ID:???
>>824
やたら主記憶を食うから。
0826nobodyさん2005/12/27(火) 19:45:26ID:???
>>824
無節操にCPUパワー食うスクリプトを入れるバカがいるから
0827nobodyさん2005/12/28(水) 00:08:12ID:???
jpgって圧縮を伴うからね。
あと訴訟対策も有るんじゃね?
0828nobodyさん2005/12/28(水) 00:34:59ID:???
ねーよ
0829nobodyさん2005/12/28(水) 00:53:05ID:???
最近PHPをやり始めたものです。
PHPでタグのセレクトボックスから選んだものを変数に格納して
それを使用したいのですが,選択した瞬間,そのセレクトボックスのフレームを読み込んで
してしまい,選んだものを初期化してしまいます。
選択したものの値を保持したいのですがどうしたらいいでしょうか?
ヒントなり頂ければ幸いです。
0830nobodyさん2005/12/28(水) 00:56:01ID:???
>>829
???
セレクトボックスのプルダウンから何か選んだ瞬間に読み込みが起きる?
HTMLの書き方そのものが間違ってない?
0831nobodyさん2005/12/28(水) 02:15:39ID:???
>>829
とりあえずヒント
<?
$no = $_REQUEST["selbox"];
?>
<html><body>
<form action="<?=$_SERVER["PHP_SELF"]?>">
<select name="selbox">
<option value="1"<?=($no==1)?" selected":""?>>1</option>
<option value="2"<?=($no==2)?" selected":""?>>2</option>
<option value="3"<?=($no==3)?" selected":""?>>3</option>
</select>
<input type=submit value="送信">
</form>
</body></html>
0832nobodyさん2005/12/28(水) 07:26:24ID:???
同じ質問ばっかり。HTMLだがテンプレに入れとけ。
08338292005/12/28(水) 08:26:53ID:???
レスありがとうございます。
曖昧で小出しな聞き方でスマソ。
PHPからのHTMLタグでセレクトボックスの中身を指定しているのでおっしゃるとうりだと思います。
やってみます。
0834nobodyさん2005/12/28(水) 09:50:13ID:OPhVlmGD
http://lowlife.jp/yasusii/stories/8.html#sample%20autodiscovery
のdiscover_tbのように対象urlからtrackback:pingを抜き出す関数を
提供しているライブラリをご存知の方いらっしゃいませんか?
blog提供側の問題で
変な方言や提供方法がありそうで在りものが在れば使いたいのですが・・・
0835nobodyさん2005/12/28(水) 09:54:29ID:???
変な方言や提供方法があるの? どこのblogよ?
0836nobodyさん2005/12/28(水) 10:21:40ID:OPhVlmGD
文がわかりにくくてすんません「ありそうで」です。無いなら無いで
どっちでも良いんですが(て自分で作るならどっちでもよくないか・・・)
0837nobodyさん2005/12/28(水) 11:54:31ID:???
>>833
君の質問は小出しなんじゃなくWebプログラムの基本を理解して無いだけ。
文章からしておかしい。
0838nobodyさん2005/12/28(水) 11:57:02ID:???
>>834
そのまま移植すればいいじゃん
0839nobodyさん2005/12/28(水) 12:59:29ID:???
ttp://jp2.php.net/ftp
FTP経由でファイルを削除したいのですが、
グッドなアイデアはないでしょうか?
ftp_exec()使うしかないですかね・・・
0840nobodyさん2005/12/28(水) 13:00:55ID:???
>>814
continue 2;
はどういう意味ですか?
08418392005/12/28(水) 13:01:02ID:???
間違えますた、削除→作成でした
0842nobodyさん2005/12/28(水) 13:12:03ID:???
>>840
実行してみ。
0843nobodyさん2005/12/28(水) 13:13:06ID:???
>>840
つ [ マニュアル ]
08448402005/12/28(水) 13:13:30ID:???
マニュアルに書いてありました、ごめんなさいorz
0845nobodyさん2005/12/28(水) 14:02:22ID:???
>>839
http://jp2.php.net/manual/ja/function.ftp-fput.php
で不満なのか?
0846nobodyさん2005/12/28(水) 18:10:36ID:jQi1GXdb
HTML_QuickFormのaddElementのコードを
HTMLから生成するスクリプトとかってないですか?
0847nobodyさん2005/12/28(水) 18:17:03ID:???
CGI化してsuexec、以外で指定したユーザ権限でコマンドを
実行させるグッドアイデアないでしょうか?
0848nobodyさん2005/12/28(水) 18:23:45ID:???
>>847
suexecって確かディレクトリ指定してあるはずだから、それ以外の場所におけば良いのでは?。
0849nobodyさん2005/12/28(水) 18:31:13ID:???
>>848
質問の意図を勘違いしてる希ガス
suexec使えば指定ユーザ権限でのコマンド実行ができるのは分かってるが、
それ以外の方法で同様の状態にする方法は無いのか?と問うてるんじゃないの?
08508472005/12/28(水) 18:34:04ID:???
>>849
そのとおりです
>>848
説明不足ですまんです
0851nobodyさん2005/12/28(水) 18:44:28ID:???
外部に公開しないhttpdをユーザ権限で動かしてリバースプロキシかますとか?
0852nobodyさん2005/12/28(水) 20:35:15ID:???
>>847
無い。あってたまるか。
0853nobodyさん2005/12/28(水) 20:51:30ID:???
safe_mode_gidとかどうなんだろう?
0854nobodyさん2005/12/28(水) 20:54:59ID:???
>>853
safe_modeはあくまでapache権限でどこまでやるかの話だからな
0855nobodyさん2005/12/28(水) 22:22:40ID:???
>>852
setuidされたラッパを用意すればもちろんできるんじゃない?
ま、グッドアイデアではないが。
0856nobodyさん2005/12/29(木) 00:21:52ID:???
どっかにユーザ権限でPHP実行させるapache拡張みたきがする
0857nobodyさん2005/12/29(木) 02:10:23ID:???
そこまでして穴あけたくないしなぁ
0858nobodyさん2005/12/29(木) 09:09:32ID:???
apache2.1にはなんか実装されるんじゃなかった?
0859nobodyさん2005/12/29(木) 10:04:20ID:???
>>858
PHP 側でその apache2 の機能の利用はまだオススメできないって
話だったはず。

諦めて cgi にして fastcgi とか使ったらいいんじゃねーのと思うけど、
自分で試したことない。
0860nobodyさん2005/12/29(木) 11:35:54ID:???
cgiにすると負荷が(w
0861nobodyさん2005/12/29(木) 12:18:37ID:???
>>859
ユーザの数だけphpのfastcgiインスタンスを走らせておくというのも
なんだかかっこわるいなぁ。

しかもsetuidされたラッパプログラムを自前で用意する羽目になるし、
なんかやだ。
0862nobodyさん2005/12/29(木) 12:53:42ID:???
CGIで動かすのが嫌ならmod_php+safe_modeでも問題ないように作るしかないっしょ。
0863nobodyさん2005/12/29(木) 18:08:20ID:???
それならJava常時起動にするね。php捨てに成る。
apacheは独自modでスルーさせるだけ。
0864nobodyさん2005/12/29(木) 19:20:49ID:???
jsp使えるレンタルサーバーって多いの?
0865nobodyさん2005/12/29(木) 19:23:06ID:???
最近はVPS多いし、自分で入れるべ
0866nobodyさん2005/12/29(木) 19:32:53ID:???
みんなそんなに鯖に金使ってるとは思えない
0867nobodyさん2005/12/29(木) 21:49:56ID:???
みんなって言われてもなぁ・・・。
必要なやつは金使ってるってだけの話じゃないのか?
0868nobodyさん2005/12/29(木) 21:59:06ID:???
早い話が軽くてユーザー権限で動くものないかって話なんじゃ?
私も前にそれ考えた事あるし
0869nobodyさん2005/12/29(木) 23:11:14ID:???
個人レベルでmod_phpをユーザー権限で動かす必要ってそう無いと思うのだけど
0870nobodyさん2005/12/29(木) 23:15:25ID:???
関係ないけど、たまに出てくるPHPやるならJavaやるっていうのは
個人で使うのみってこと?仕事では使用しないって事なのかね。
仕事だったら、小中規模案件だと圧倒的にPHP、Perlが占めるけど、Java案件以外の中規模案件なんか受注しないポリシーとか?
Java覚えられるなら、PHPなんか結構すぐに覚えられると思うけど、わざわざ捨てる理由が見つからない。
0871nobodyさん2005/12/29(木) 23:26:04ID:???
>>870
わざわざ捨ててるって言うか、java使って満足な人が
他の言語に手を出す理由が無いってだけの話でしょ。
逆もそうだし。
0872nobodyさん2005/12/29(木) 23:45:46ID:???
そもそも共有レン鯖って静的ファイルを置く所だし。
動的にページ生成したければ、占有鯖か自前鯖で弄りたい放題でしょ。
0873nobodyさん2005/12/30(金) 01:20:29ID:???
>>872
なんだその決め付け
0874nobodyさん2005/12/30(金) 01:21:34ID:???
>>871
ただphpで満足しちゃうと他に移行する時に辛いんだよなー
0875nobodyさん2005/12/30(金) 04:45:27ID:???
バージョンアップの度に動作の問題出るのに、phpに満足ってめでたいなあ。
0876nobodyさん2005/12/30(金) 05:08:43ID:???
PHPに満足してるのは長く仕事をするプロの開発者ではなく、
毛が生えた素人を大量に安く使い潰せる依頼主だから。
0877nobodyさん2005/12/30(金) 05:13:54ID:???
PHPだろうがJavaだろうが一つの言語で満足するような奴はプロとは言えん罠
0878nobodyさん2005/12/30(金) 10:33:25ID:???
Javaは満足出来るよ。新バージョンのインスコも簡単だし。OSとかCPUとか関係ない。
0879nobodyさん2005/12/30(金) 10:44:59ID:???
PHPもそのレベルじゃ大差ねーし
0880nobodyさん2005/12/30(金) 11:19:27ID:???
うざい
0881nobodyさん2005/12/30(金) 11:52:00ID:???
>>875
バージョンアップの度ってそりゃ問題出すぎだろw
どんなコーディングしてんだ
0882nobodyさん2005/12/30(金) 11:55:09ID:???
ここ最近のアップデートに限定して言えば、毎回おかしくなるmb系のバグは確かに酷かったな
0883nobodyさん2005/12/30(金) 13:24:42ID:0FfWwbS6
PHPでセレクトボックスから入力した日付で、今日より前(過去)はエラーにしたいです。
一応希望通りの動作はしてますが、かなり変ですよね?(;´Д`)
こうしろよみたいなのありましたらご教示よろしくお願いします。



$today = getdate();

if ( $today[year] > $input_year ) { error(); } // 過去はエラー
elseif ( $today[year] < $input_year ) {} // 未来はOK
// 以下同年
elseif ( $today[mon] > $input_month ) { error(); } // 過去はエラー
elseif ( $today[mon] < $input_month ) {} // 未来はOK
// 以下同月
elseif ( $today[mday] > $input_day ) { error(); } // 過去はエラー

// 存在しない日はエラー
if ( !checkdate($input_month, $input_day, $input_year) ) { error(); }
0884nobodyさん2005/12/30(金) 13:51:27ID:???
>>883
epoc値(1970/1/1からの秒数)に直して比較すれば一発。
その前に書式はチェックしないといけないけど。
0885nobodyさん2005/12/30(金) 13:57:28ID:???
>>883
年/月/日ごとに異なるエラーを出すのでないなら、
まとめてタイムスタンプの大小で現在より過去を判定した方が良いんじゃないか。
タイムスタンプの性質とmktimeの動作を確認して、自分の仕様に適うかどうかだな。

0886nobodyさん2005/12/30(金) 16:58:33ID:???
date("U")ね。
あと関係ないが連想配列[]内はクォーテーションで囲みましょう。["hoge"]
0887nobodyさん2005/12/30(金) 18:12:49ID:???
「ユーザー権限で動く」にこだわる理由はなんだろう?
それ以外の方法でもあれこれ組み合わせれば結構セキュア
(他の人のスクリプトやデータに干渉しないよう)に
できると思うんだが。
0888nobodyさん2005/12/30(金) 18:52:17ID:???
ユーザー権限なんてレン鯖以外関係ないし
0889nobodyさん2005/12/30(金) 20:53:24ID:5CV6IiV6
yahooメールのページをfopenかなんかで取得したいのですが
認証部分はどうすればよいのでしょうか?

googleで5時間探したけどわかんね。。
0890nobodyさん2005/12/30(金) 20:59:33ID:???
>>883
別に難しく考える必要はなし。
if(date("Ymd") < "{$input_year}{$input_month}{$input_day}"){
   echo 'Error!';
   exit();
}
※$input_yearは4桁西暦、$input_month $input_dayはあらかじめ2桁に整形済みのこと
0891nobodyさん2005/12/30(金) 21:05:51ID:???
こっちのがスマートやないか
$input_year.$input_month.$input_day){
0892nobodyさん2005/12/30(金) 21:13:33ID:???
>>889
どんなやり取りをしてるのかパケットスキャナ等で見ればいいんでね?
0893nobodyさん2005/12/30(金) 21:47:34ID:???
>>890-891
$input_monthや$input_dayが一桁だった場合におかしなことになるからsprintf("%04d%02d%02d",ってやらないとまずくない?

>>889
ページってことはHTTPってこと?だったらfsockopenでクッキーとかも送ってやればいいだけ。
HTTPSに関してはOpenSSLを導入する方法があったようななかったような。
あとPearにもHTTPクライアントあるし。もしくはcurl使うとか。
つーかメールだったらIMAP系の関数使ったほうが早いかもね。
0894nobodyさん2005/12/30(金) 21:50:05ID:???
>>886
なにその顔。
08958932005/12/30(金) 21:54:30ID:???
>>890
すまん。ここ読んでなかった。
> ※$input_yearは4桁西暦、$input_month $input_dayはあらかじめ2桁に整形済みのこと
0896nobodyさん2005/12/30(金) 21:54:46ID:???
>>890-891
「あらかじめ整形しておく」などの事前前提は意外とバグを産み易い。
速度的にシビアな場面じゃないのなら安全策を取った方が不慮の事故を防げるかと。
if(date("Ymd") < sprintf("%04d%02d%02d", $input_year, $input_month, $input_day)){
0897nobodyさん2005/12/30(金) 21:55:17ID:???
あら。かぶった。
0898nobodyさん2005/12/31(土) 00:25:14ID:NCoXT252
Win2k Apache2+PHP Ver4.4.1 の自宅鯖でPHPのブログ
ttp://www.netmania.jp/cgi/blog/ の#001 を動かそうと思い入れたんですけど
PHPがERRORばかり吐いて動きません。
試しに、無料のレンタル鯖にうpして動かしてみるとすんなり動きました。
鯖の設定がだめなのかPHPのスクリプトがおかしいのか・・・
宜しくお願いします。
レンタル鯖に設置したやつ[未改造]
ttp://freshgreens.jp.land.to/blog/index.php
自鯖のやつ[多少弄った]
ttp://aozoraxp.dip.jp/blog/index.php
PHPのinfo
ttp://aozoraxp.dip.jp/phpinfo.php
0899nobodyさん2005/12/31(土) 00:33:08ID:???
>>898
レン鯖においてOKならおまいのローカル環境がおかしいとしか思えないが、
エラー見るに根本的に何かが間違ってるっぽいし改造って何したのとか
わからんから何とも言いようがありません。
0900nobodyさん2005/12/31(土) 00:36:57ID:???
>>898
php.iniのerror_reportingの値がでかすぎるかも。
E_NOTICEまで有効にされちゃってる気がする。
09018982005/12/31(土) 00:38:53ID:???
改造って言うかエラー出たところを自分なりに直してみたりです。
例えばif ($_SERVER[REQUEST_METHOD] == 'POST') だとエラーでるので
’’を付け加えてif ($_SERVER['REQUEST_METHOD'] == 'POST')にしたとかです。
それ以外は特になにもしてません
09029002005/12/31(土) 00:39:58ID:???
今の値が2047だからE_ALL設定になってるね。
一般的なデフォルト値はE_ALL & ~E_NOTICEのはずなのでこれで設定してみて。
09039002005/12/31(土) 00:41:23ID:???
>>901
それはこのblogの作者が悪いわ。
09048982005/12/31(土) 00:44:58ID:???
今php.iniの設定を少し変えてみました。
error_reporting = E_ALL; display all errors, warnings and notices
この行をコメントアウト(;)してみました。
するとだいぶblogらしくなってきました。
コメントアウトじゃまずいですかね?
ほかにphp.iniの設定方法あったらご教授ください
0905nobodyさん2005/12/31(土) 00:48:01ID:???
test
09068982005/12/31(土) 00:48:37ID:???
>>902 さんの言うとおりにphp.iniの
error_reporting = E_ALL & ~E_NOTICE の;を外しておきました。
これで一般的なデフォルト値になりましたでしょうか?
09079002005/12/31(土) 00:54:41ID:???
>>906
2039になったからいーんじゃないのかな。
Windows用のphp.iniってE_ALLがデフォルトなんだろうか。
それとも4.4.0以降はE_ALLに変更されたとか?

あとなんか上に1個出てるエラーは設定項目不足みたいね。
csslistの設定が入ってないとエラーになるようだ。
なんかエラーチェックがいいかげんなプログラムだなぁ。
09088982005/12/31(土) 00:57:56ID:???
>>907
まだひとつだけエラーでちゃいますね。
csslistの設定ですか・・・
ちなみにmain.phpの206行目は
// CSSリスト生成
$num = 0;
foreach($conf[csslist] as $list){  ←この行です
$csslist .= "<option value=\"$num\">".$list[1]."</option>";
$num++;
}
なにか対処方法ってありますかね?
0909nobodyさん2005/12/31(土) 01:04:57ID:???
>>908
csslistを設定してやるっつーのはダメなの?
blog/conf.phpの116行目
// CSSリスト - 別に設定しなくてもいいような気もします。CSSジャンキー向け。
$conf[csslist] = array(
array("./style.css","基本スタイル"),
array("./style2.css","黒スタイル")
);
の部分でしょ。

ま、「設定しなくてもいいような」と書いといて、設定しなかったらエラーになるのは
そのプログラムがヘタレなせいだと思うけどね。
09108982005/12/31(土) 01:11:36ID:???
>>909
たぶん俺が元々foreach($conf_csslist as $list)ってなっていたやつを
foreach($conf[csslist] as $list)に変えたからだと思いますw
今conf.phpの116行目
// CSSリスト - 別に設定しなくてもいいような気もします。CSSジャンキー向け。
$conf_csslist = array( これを
$conf[csslist] = array( このように[]に変更してやったら
エラーがとれて正常に動作するようになりました。
どうもありがとうございました。
0911nobodyさん2005/12/31(土) 17:38:32ID:+rnbwxav
http://ameblo.jp/takuya/entry-10007539342.html

この人がPHP5のオブジェクトは参照渡しではないと言っているのですが
本当でしょうか?
0912nobodyさん2005/12/31(土) 17:44:44ID:???
つーか、2003年4月のβ仕様に今更突っ込むバカはどこのどいつですか
0913nobodyさん2005/12/31(土) 18:07:13ID:???
cloneとかあの辺はβから正式リリースまでにかなり仕様が変わったからね。
なんせ、本家Zendのサンプルコードですら修正されてなくて間違ったままになってるくらいw
赤マンモス本でも初版では旧仕様のコードで説明されてたりした。

PHP5でのオブジェクト代入の動きの説明に関してはここなんてどう?
ttp://www.shigeweb.jp/php/project_p/?section=php5oop&page=substitution
> 「$agent_hodenasu = $hodenasu;」の結果、「変数$agent_hodenasu」が、
> PHP4では代入元のオブジェクトのクローン(コピー)になっていたのに、
> PHP5ではリファレンスの様な、でも違う代理人の様なものになったなぁという事を理解できたと思います。
> でも実際はリファレンスです(え?)。「変数$agent_hodenasu」は「変数$hodenasu」のリファレンスですが、
> 完全なリファレンスではないのです。
0914nobodyさん2005/12/31(土) 18:09:35ID:???
元記事の先頭に書いてある注意書きをスルーしてまで指摘ですか。
(正月にはまだ早いけど)おめでたいですね。
>なお今回紹介する内容は、2003年4月22日時点でCVSに登録されているバージョンに基づいていることをお断りしておく。
>正式リリースまでの間に、言語仕様が若干変更される可能性もないわけではない。
0915nobodyさん2005/12/31(土) 18:13:15ID:???
>>911
まあPHPのマニュアルでは「リファレンス」という言葉を一貫して&による参照の意味(=エイリアス)で使っているから、その限りでは「オブジェクトの参照渡しではない」という言い方もできるかもね。
ただ、よく言われるPHP5のオブジェクトの参照渡しってのは、一般に言う値渡しとの対比としての参照渡し(=コピーせずに同じオブジェクトを参照させる)のことでしょ。
0916nobodyさん2005/12/31(土) 18:13:21ID:???
腐敗してるのはこいつの脳みそw
0917nobodyさん2005/12/31(土) 18:18:16ID:???
β仕様の話をするとnamespaceの話題で荒れるのでやめて(><)
0918nobodyさん2005/12/31(土) 18:23:52ID:???
おまいが持ち出さなければ荒れなかったのに
0919nobodyさん2005/12/31(土) 18:57:27ID:???
>>914
それより、そんな古い記事を今更になって読んでることの方が痛いよね。
0920nobodyさん2005/12/31(土) 19:49:17ID:???
ググる先生に「php5」でお伺いをたてると、そのatmarkitの記事が一番最初にヒットするんだよね。
おいらもphp4からphp5に移行する時に、「php4の知識があれば、本とか買わなくてもいけるべ」と、
検索にヒットするページを片っ端から読んでた時に見た記憶があるよ。
まぁ、「嘘を嘘と見抜けないようでは(ry」って感じだね。
0921nobodyさん2005/12/31(土) 20:52:30ID:???
つーか911のページは釣だろ
釣サイトに釣ページがあっても・・・え?
0922nobodyさん2005/12/31(土) 23:32:43ID:???
検索で上位にヒットするページを書き捨てるなと。
雑な仕事してんじゃねーよということだな。
0923nobodyさん2005/12/31(土) 23:35:25ID:???
こいつ小山さんの名前も見たことなかったんだろうな。
0924nobodyさん2006/01/01(日) 02:31:41ID:???
だれだそりゃw
0925nobodyさん2006/01/01(日) 02:44:21ID:???
PHP4用青マンモス本の著者の1人。
PHPカンファレンスとかでよく公演してる。
WEB+DBプレス他、技術雑誌の記事でもよく見かけるよ。
0926nobodyさん2006/01/01(日) 03:09:44ID:???
>>913
後から他の型を代入することも出来る、一時的なリファレンスなんだ。
まあ後から役割を変えることなんてあんまりないから
リファレンスと考えておいてほとんど問題はないね。
0927nobodyさん2006/01/01(日) 11:46:21ID:???
>>922
ブログの中の人乙
0928nobodyさん2006/01/01(日) 13:34:01ID:???
漏れも小山なんて香具師はシラネ。誰それ? おいしいの?
0929nobodyさん2006/01/01(日) 14:24:18ID:???
まあ別に人の名前なんか知らなくても良いんじゃね。
PHP関係の情報収集レベルの指標にはなるけど。
0930nobodyさん2006/01/01(日) 14:34:52ID:???
誰がPHPを作ったのかなんて覚えてないよ ... orz
0931nobodyさん2006/01/01(日) 15:04:24ID:???
俺だよ、俺。
0932nobodyさん2006/01/01(日) 15:18:45ID:???
でもアンテナの感度が低いのにいいコード書けるやつってまずいないべ。
0933 【1720円】 【大凶】 2006/01/01(日) 23:10:39ID:???
検索上位にくるページが書き捨てられていたんじゃなくて
書き捨てられたページが検索上位にきただけ。時間関係が逆
とはいえ、先を見越して注意書きが入っているのに
それを無視する人の方がよっぽど雑な事をしている気がするけど
0934nobodyさん2006/01/01(日) 23:26:36ID:???
まぁPHP5に関するページが少ない、或いは検索で見つけにくい、つー事もあるからなぁ。
PHP5の新機能を一足先に(つまりβ仕様)紹介、ってページがヒットしすぎ。
それらを見た人は夢を抱^h^h^h勘違いしちゃうよね。
>>913のリンク先は比較的よく纏まってる方だね。
0935nobodyさん2006/01/02(月) 01:30:00ID:???
>>934
正式リリース以降にまとめページを作ってる人があまりいない
(まだ時期尚早な面もあるしね)って状況のせいで、
βの頃の紹介記事の方が被リンク率が高くなっちゃってるんだよね。
それでいつまでもgoogleの検索で上位に留まってしまってる。
しかしそれを書き捨てとか言われても困るよなぁ。他が無いだけじゃん。

むしろ2年半も前の記事にマジ感想でクレーム書いて
> マニュアルだけはしっかりしたものを選ばないとダメだと実感する・・・
とかアホなこと言ってるのは思いっきり書き捨て以外の何物でもないと思うけど。
まずそのマニュアルの出自を確認しれと。
まともに記事の判別もできないやつが選択の必要性を語るなと。
0936nobodyさん2006/01/02(月) 01:34:47ID:???
で、今日見たらまたそのページ ttp://ameblo.jp/takuya/entry-10007539342.html 見たら
なんか
> 追記------------------------
とかいうの増えてるのな。

> うちの環境はPHP4でした。PHP5では参照渡しだそうです。参照渡しは不便だヽ(`Д´)ノウワーン
・・・・・・・ただのバカ?PHP4とPHP5の区別もつかない人?

> PHPマニュアルより抜粋
> 例 19-3. オブジェクトの代入
(ry
> 一方でITMediaの記事。
> リスト1 参照渡しによるオブジェクトの代入
(ry
> はっきりしてくれ!!どこをどう参照してるのだ???
こんだけ何度も複数の記事を細かく見比べてて、
未だに元記事が2年半前のβ仕様紹介ということに気付いてないらしい。

> 実験するか。。。。。
> よく考えたらうちの実験環境はPHP4でしたヽ(`Д´)ノウワーン
いやもう・・・おまえPHP触るのやめた方がいいよ。
つーか誤解を世に撒き散らすのやめてくれよ、頼むから。
0937nobodyさん2006/01/02(月) 01:51:28ID:???
言い訳たらたら乙w
0938nobodyさん2006/01/02(月) 01:52:56ID:???
…逆ギレ?なにテンパってるの?この人。
0939nobodyさん2006/01/02(月) 01:59:02ID:???
元々の内容で
> 参照渡しが有り得ない。変数がスコープやクラスをまたいで存在することなる。
とか書いちゃったからな。
ありえないのはお前の脳みそw
0940nobodyさん2006/01/02(月) 02:16:35ID:???
そいつの最新記事(1/1)もなかなか香ばしいなw
ttp://ameblo.jp/takuya/entry-10007596169.html

> 注目すべきは
> var_dump(null == false) = bool(true)
> null と false の比較はtrueを返す。
当たり前だ。

> var_dump(null === false) = bool(false)
> 厳密に型を指定して比較しないとダメ。
当たり前だ。

> PHPがオブジェクト指向言語なんて書いてる本があれば捨てるべきだと思いました。
> 基本部分がオブジェクトじゃない。こんなものがオブジェクト指向言語であるわけがない。
当たり前だ。確かにそんな変な本があるなら捨ててもいいだろう。
しかし、存在しない本をでっちあげて既知の自説を力説するこいつの頭って一体w

> 付け加えるとしたら
> print( 'bool false = ');
> echo false;
> すると
> bool false =
> falseという文字列すら返しません。
> trueは文字列として返ってくる。なんででしょう?
おまえはオブジェクト指向の前にstringとintegerという
コンピュータ概論の基礎から勉強し直せ。
0941nobodyさん2006/01/02(月) 03:37:30ID:???
結論としては
うっかりさんはブログを書かないに越したことはないと。
0942nobodyさん2006/01/02(月) 04:05:17ID:???
本人ができる人のつもりになってるのがまた痛い
0943nobodyさん2006/01/02(月) 10:02:37ID:???
ここでやらんとブログにコメントつけるとか、このスレのurl貼ってあげたら?

って作者さんも2ch経由のアクセスが増えてドキドキしてるかもしれんが。
0944nobodyさん2006/01/02(月) 11:44:55ID:???
誰か突撃してくる猛者はおらんのかw
0945nobodyさん2006/01/02(月) 13:13:33ID:???
誰か知らんが乙>コメント付け
0946nobodyさん2006/01/02(月) 16:59:41ID:???
これがPHPクオリティー
0947nobodyさん2006/01/02(月) 18:11:42ID:???
逃走?
0948nobodyさん2006/01/02(月) 19:01:22ID:???
私も「2chで晒されてますよ」とコメントしたのですが、さっき
見たら記事が消されてましたね。
0949nobodyさん2006/01/02(月) 19:07:18ID:???
記事は全消しなのに顔は消さないうっかりさんだな
0950nobodyさん2006/01/02(月) 19:48:51ID:???
なんだ反論もせず全消しかよ。
随分軟弱な人だな。
0951nobodyさん2006/01/02(月) 20:10:27ID:???
何も全部消さんでもええのにな。
間違いがあったら追記するなり、その部分だけ修正したらええのに。
0952nobodyさん2006/01/02(月) 20:20:44ID:???
実にみっともないな。あれだけ妄言並べておいて全消しか。
0953nobodyさん2006/01/02(月) 22:59:11ID:???
やりとりの中でPHP5のリファレンスの特性が明らかになったのだから
無駄死にじゃないよ。
おまいらももうちょっと優しく。
0954nobodyさん2006/01/02(月) 23:25:16ID:???
せっかく明らかになっても ここでの話はdat氏にしちゃうんだよね(><)
blogの訂正ついでにリファレンス話をまとめて掲載してくれたらいい感じだったのになぁ。
blogのカテゴリメニューの傍にある写真を見るのが嫌でちゃんと見てなかったんだけど
HTML_Quickformあたりの話も書いてなかったっけ?
きちんとした内容だったのならもったいないなぁ。
2ch始めて結構経つけど、未だにグロ画像に慣れないや・・・
0955nobodyさん2006/01/02(月) 23:33:59ID:???
つまり顔写真をブログに載せること自体がリスクだと。
0956nobodyさん2006/01/03(火) 00:03:16ID:???
>>954
Janeのデフォルトモザイク機能で解決
09579112006/01/03(火) 02:43:11ID:0Izq+jiF
911で晒されてる本人です。香ばしい記事書いてすいませんでした。m(__)m

PHP5のオブジェクト指向がさっぱり理解出来ず苦しんでいました。

もともとはディープコピーで、値渡しだったものを、
パフォーマンス向上のためと、ああいう仕様になった。のではないでしょうか。

いろいろお騒がせしてすいませんでした。

オブジェクトの参照渡しについてに理解していることを書きます。
間違がありましたらご指導お願いします。m(__)m



0958nobodyさん2006/01/03(火) 02:52:06ID:???
>>597
本当に本人?
ブログにそのまんま それ を書かないと認められないです。
09599582006/01/03(火) 02:52:44ID:???
間違えた。 >>957 でした。
0960nobodyさん2006/01/03(火) 02:57:09ID:???
>>957
がんがれ。

昨日(1/2)のエントリーなんか興味深く見てたので勿体無いと思ってた。
ま、無理せずマターリ更新してよ。
09619112006/01/03(火) 11:09:29ID:0Izq+jiF
>958

本人です。ブログにそのまんま書きました。
0962nobodyさん2006/01/03(火) 13:15:51ID:???
>>961
ちょっと読んだけどさ、根本的にオブジェクト指向っつうのを理解してないと思うよ。
設計の方法論であって、ある実装を指して言う話じゃないよ。

別にJava使って、(オブジェクト指向では無い)構造化プログラミング手法でも書けるし。
C(C++じゃ無くて)で、オブジェクト指向手法で設計する事もできる。

JavaScriptと、Javaを同じオブジェクト指向言語と括るのは違和感あるけど、(動静的オブジェクト指向の違い)
PHPと、Javaなら、別に違和感無いな。

個人的にPHPとJavaの違いは、”ちゃっちゃ”とやるか、”きっちり”やるか、くらいの差だと思ってるけど。
0963nobodyさん2006/01/03(火) 13:26:06ID:???
そんな宗教論争チックな話はBlogのコメント欄でやれよ
ここで名無しで叩くようなことじゃないだろ
0964nobodyさん2006/01/03(火) 13:55:18ID:???
>>962
「オブジェクト指向かどうか」は設計の方法論かもしれんが、「オブジェクト指向言語かどうか」は処理系の仕様。
とか言ってみるとどう反論するのかな?
Javaはオブジェクト指向言語。PHPはオブジェクト指向言語ではないが、オブジェクト指向をサポートしている。
その違いに違和感うんぬんはおまいの主観だな。
なのでブログの人の
> そんな理由でJavaとほぼ同じオブジェクト指向言語だと解説してる本がチョット許せなかった。
って部分には俺は同意。
そんな本は捨てるべきだ罠。
0965nobodyさん2006/01/03(火) 13:56:27ID:???
>>957
騒いでたのは、こっちが勝手にやってたことなんで気にするな。
0966nobodyさん2006/01/03(火) 14:00:44ID:???
Javaのように最初からオブジェクト指向前提で設計された言語と、
PHPのように後漬けでオブジェクト指向風に使おうとする言語を、
比較すること自体が間違い。
0967nobodyさん2006/01/03(火) 14:03:14ID:???
なぜ?
0968nobodyさん2006/01/03(火) 14:48:27ID:GNwZD414
libmysql.dll は PHPとMySQLにあるものどちらを
使うのが吉?

Apache2+PHP5+MySQL5
09699112006/01/03(火) 14:57:39ID:0Izq+jiF
中の人です。

>962
ちゃんと読んだ?俺は
「よく考えてみると(中略)オブジェクト指向じゃなくてJavaの言語仕様ですよね。」

と書いた。つまりそういうことなので、間違ってたのは俺の方ですしすいません。

>966
私もそう思います。
オブジェクト指向だからと言っても
入門系書籍に「Javaとほぼ同等」と書かれるとたまに違和感がある。のです。
コンパイラの最適化も無いわけですし。どこまでどう同等かを書くべきかと。そんな感じ
「オブジェクト指向言語」と「オブジェクト指向サポート」の差って大きいんじゃないでしょうか?

0970nobodyさん2006/01/03(火) 15:47:07ID:???
>>911
もう二度と出てくるな。荒れるから。
0971nobodyさん2006/01/03(火) 15:48:24ID:???
別に荒れてないよ。おまいのレスが一番荒れてるようだけど。
0972nobodyさん2006/01/03(火) 15:51:02ID:???
「荒れるから」であって「荒れてるから」ではない罠
0973nobodyさん2006/01/03(火) 15:54:35ID:???
お前が二度と出てこなければ荒れない罠
0974nobodyさん2006/01/03(火) 15:56:45ID:???
>>911=>>971=>>973必死だな
0975nobodyさん2006/01/03(火) 15:57:13ID:???
いや違うけど
0976nobodyさん2006/01/03(火) 15:57:58ID:???
スルーできないやつも嵐
0977nobodyさん2006/01/03(火) 15:58:58ID:???
>>975 じゃID出してみ。できないだろうけどプ
0978nobodyさん2006/01/03(火) 15:59:11ID:???
そうだね。>>970さえいなければ。
0979nobodyさん2006/01/03(火) 16:00:15ID:gu9NWpps
>>977
しょうがねーな。暇なので遊んでやるか。
0980nobodyさん2006/01/03(火) 16:00:30ID:???
>>964
いまいちよくわからんのだが、別に争うつもりもないよ。
要は、”許せない”とか言う教条的な発想じゃ疲れるだろって思っただけで…
結局、使う人によってどうにでもなっちゃう、しちゃうって話。

>>969
うん、そこを読んだから、書いたんだよ。
オブジェクト指向ってのが”何”か、ということをきちんと理解していれば、そもそも間違えようがないから。
0981nobodyさん2006/01/03(火) 16:02:03ID:???
>>979
だから構うなっていってるんだ馬鹿。
0982nobodyさん2006/01/03(火) 16:03:04ID:???
>>979
串探し乙w
09839642006/01/03(火) 16:04:45ID:???
>>980
なんだ叩こうとしてるわけじゃなかったのか。
ただ、
> ちょっと読んだけどさ、根本的にオブジェクト指向っつうのを理解してないと思うよ。
みたいなのは叩いてるように見えてしまうよ。
ただブログの人を叩く必要はなかったんじゃないかと思っただけなので、まあそういうことなら>>980は気にしないでくれ。
09849642006/01/03(火) 16:07:08ID:???
スマン、アンカーミスったorz
× >>980は気にしないでくれ。
○ >>964は気にしないでくれ。
0985nobodyさん2006/01/03(火) 16:07:27ID:???
>>980
ここでスレ違いの議論するな
議論は>>911のブログでやれ
いい加減うざいから失せろ
0986nobodyさん2006/01/03(火) 16:09:41ID:???
>>982
今の2chで規制越えられる串見つけるほうがスゴイだろ。
0987nobodyさん2006/01/03(火) 16:11:25ID:???
既に質問板でもなんでもなくなっちゃってるな

>>986
いくらでもあるが・・・
0988nobodyさん2006/01/03(火) 16:13:15ID:???
>>983,985
別に議論というか…
質問スレだから、なんで勘違いしているのか答えたつもりなんだけどなぁ。

疑問があったから、ここでブログさらしてんじゃなかったのか。
0989nobodyさん2006/01/03(火) 16:14:47ID:???
>>988
blog晒したのは本人じゃねーべ
0990nobodyさん2006/01/03(火) 16:18:40ID:???
そろそろ次スレいってリフレッシュしますかね。
誰かお願い。
0991nobodyさん2006/01/03(火) 16:19:41ID:???
>>989
うーんと、>>957 見たんだけど。
0992nobodyさん2006/01/03(火) 16:24:57ID:???
>>991
>>911で"晒されている"本人」だから911って名前にしただけでしょ
読解力ない人だな
0993nobodyさん2006/01/03(火) 16:36:35ID:???
>>992
他人を罵倒するのも良いけど、もう一度よく読みなおした方が良いと思うよ。
0994nobodyさん2006/01/03(火) 17:04:50ID:???
>>964
どんな本だ?と思ってblog見たら「まるごとPHP vol.1」か〜なるほど。
あれは捨ててもいいぞ!w 俺が許す!ww

元々vol.1ってことで、PHPよく知らない人向けに「PHPってこんな便利なんだよ〜」って
啓蒙するための内容に偏らせたものだろ、あれ。
そりゃー、PHP3→4→5でオブジェクト指向サポートを強化(あくまでサポート強化であって
オブジェクト指向前提で再設計したわけではない)している言語なわけだから、
「だからJava並のこともできるんですよ。すごいんですよ」と自慢してるわけよ。

そんな広告文章を鵜呑みして「事実と違うー」なんて言っててもちょっと恥ずかしいですよ。
>>969の「「オブジェクト指向言語」と「オブジェクト指向サポート」の差って大きいんじゃないでしょうか?」
はその通りだと思うよ。そこは開発する側が意識して使い分けないとな。
PHPやPerlはあくまで「OOPでも書ける言語」であってOOPのためにある言語ではない。
0995nobodyさん2006/01/03(火) 17:15:30ID:???
スレ立ててくんね。
0996nobodyさん2006/01/03(火) 17:18:29ID:???
>>993
>>992は別に間違ったことかいちゃいないと思うが
0997nobodyさん2006/01/03(火) 17:22:50ID:???
立てた
【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
0998nobodyさん2006/01/03(火) 17:23:35ID:???
>>996
>>911 は、一度全部消して、新たに自分で晒したんだよ。

ここら辺がわかんないんですけど、突っ込んで下さい(意訳)ってさ。
0999nobodyさん2006/01/03(火) 17:38:55ID:???
発端は>>911の晒しからでしょ。本人出てきたのはその後の話。
ていうかいつまで終わった話引きずってるんだか。
1000やったー!生まれて初めての1000ゲット!2006/01/03(火) 17:44:41ID:???
まあこのスレもここでおしまいだし、次スレではこの話題がズルズル続かないことを切に願う。
良き質問スレにしていきましょう。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。