1 :
nobodyさん :
02/09/11 14:15 ID:FWA0CpdU
※注意1 4.2.0以降はデフォルトでregister_globalsがoffになっています。 POST, GET等で渡される値には グローバル連想配列 $HTTP_ENV_VARS $HTTP_GET_VARS $HTTP_POST_VARS $HTTP_COOKIE_VARS $HTTP_SERVER_VARS でアクセスしてください。 つーか、マニュアルとか読んでください。おながいします。
※注意2 header()でContent-Typeを出力すると、mb_output_handlerが無効になります。 ini_set('default_mimetype', 'text/html'); とすることで回避できます。
6 :
nobodyさん :02/09/11 15:31 ID:QhkFV/a2
phpのチャットでブラウザを閉じると自動的に 退室するような実現方法はありませんか?
7 :
nobodyさん :02/09/11 15:50 ID:sK5vsN8l
>>6 (´-`).。oO(javascriptと組み合わせれば出来るんじゃないかな)
8 :
b :02/09/11 16:05 ID:U9pI6n49
9 :
nobodyさん :02/09/11 17:16 ID:b0Mn6bwO
>>6 あるよ。
応答が数分なかったら、退室したと見なして処理するチャット。
10 :
nobodyさん :02/09/11 17:32 ID:T52IxXqS
>>11 のようにソースを組んだのですが、
受け取った値が文字化けしてしまいます。
なんとか直す方法があったら教えてください。
11 :
nobodyさん :02/09/11 17:34 ID:T52IxXqS
<html><head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> </head> <? $test = $_POST["test"]; if($test == "あいうえお"){ echo"<body bgcolor=\"red\"> test - [$test]<br> <form action=\"1_color_test.php\" method=\"post\" enctype=\"multipart/form-data\"> <input type=\"submit\" name=\"test\" value=\"亜伊宇江尾\"> </form>"; }else{ echo"<body bgcolor=\"blue\"> test - [$test]<br> <form action=\"1_color_test.php\" method=\"post\" enctype=\"multipart/form-data\"> <input type=\"submit\" name=\"test\" value=\"あいうえお\"> </form>"; } ?> </body></html>
13 :
10 :02/09/11 17:48 ID:T52IxXqS
>>12 保存する際は、EUCでやってます。
ちなみに、mb_convert_encodingとかいろいろやっても
だめでした。
<?php header("Content-Type: text/html; charset=EUC-JP"); ?> 最初の行に入れてみて。
15 :
10 :02/09/11 18:41 ID:T52IxXqS
>>15 こういうばかはどうしたらいいのでしょうか。
λ_λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( `ー´) < 別にいいんじゃネーノ? / ノつ \__________ (人_つ_つ
18 :
あっふぉ :02/09/11 19:36 ID:???
19 :
PHP::help() :02/09/11 19:51 ID:K4qVzGr/
MS Accessに、PHP(PEAR DBパッケージ)から 日付/時間型(yyyy/mm/dd hh:nn:ss) にデータを挿入する方法を教えて。 以下のコードでうまくいきません。日付/時間型以外ならうまくいくのに。。。 function insert($id,$name) { $dsn = "odbc://user:pass@demo"; // DB接続 $db = DB::connect( $dsn ); // SQL文 $sql = "INSERT INTO user (id,name,date) VALUES (?,?,?)"; // Statement取得 $stmt = $db->prepare( $sql ); // 現在時刻を取得 $nowdate = date("'Y-m-d H:i:s'") print "nowdate=" . $nowdate . "\n"; // こういうのが出力 -> '2002/09/11 19:23:29' // SQL発行 $db->execute($stmt, array($id,$name,$nowdate )); // DB切断 $this->db->disconnect(); } よろしく
20 :
PHP::help() :02/09/11 19:57 ID:K4qVzGr/
間違えがありました。
>>19 function insert($id,$name)
{
$dsn = "odbc://user:pass@demo";
// DB接続
$db = DB::connect( $dsn );
// SQL文
$sql = "INSERT INTO user (id,name,date) VALUES (?,?,?)";
// Statement取得
$stmt = $db->prepare( $sql );
// 現在時刻を取得
$nowdate = date("'Y/m/d H:i:s'")
print "nowdate=" . $nowdate . "\n"; // こういうのが出力 -> nowdate='2002/09/11 19:23:29'
// SQL発行
$db->execute($stmt, array($id,$name,$nowdate ));
// DB切断
$db->disconnect();
}
すいません。
22 :
PHP::HELP() :02/09/11 21:41 ID:HTt8fx02
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\
>>21 \
\ 「円」って何ですか? \
\ 「\ 」ってことかな? \
\ どっかにそれを入れなさいということか? \
\ nowdate='2002\09\11 19:23:29' \
\ ↑これでいいのか!? \
\ 金を出せということか? \
\ 違う、違う、違うなーーー。 \
\ わからん。わからん。 \
\ 21さん、もっと教えて。 \
\ お願い、教えてくれたら、 \
\ 自分の体差し上げます \
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
23 :
nobodyさん :02/09/11 23:09 ID:b0Mn6bwO
>>22 ・・・・21がせっかくヒント出してるのにそれでも分からんのか?
円だよ、円。
PHP初心者の俺でも一発で分かったぞ。
25 :
nobodyさん :02/09/12 01:34 ID:vPpnzRr3
変な質問でしょうが、教えてくださると嬉しいです。 PHPとFLASHを連携させたコンテンツを作りたいと思っています。 FLASHには外部から「変数名=値&変数名=値&...」 という形の文字列でデータを渡す必要があります。 それだけなら、echoを使えばいいと思ったのですが、 最新版のFLASHだと、外部から渡される変数は、 文字コードがunicode、改行コードがCRじゃないとダメみたいです。 PHP側で変換する処理などが必要なんでしょうか? 必要な場合、どのようなコードを記述すればいいのでしょうか?
mb_convert_encoding ?
28 :
nobodyさん :02/09/12 19:33 ID:bOdtzCg9
domxml_open_fileで指定するファイルは、 相対パスで指定できないのでしょうか? 絶対パスだとうまくいくんだけど。
if(!$dom = domxml_open_file("example.xml")) { echo "Error while parsing the document\n"; exit; } ?
30 :
nobodyさん :02/09/13 02:00 ID:5ec6wOjE
"をエスケープするととても見にくくなるので perlのようなprint qq|<a herf="hoge.html"|; のような書式はPHPではないでしょうか?
31 :
nobodyさん :02/09/13 02:12 ID:yb1hcccZ
$aaaaa = "aaaaa.html"; function bbbbb(){ echo <<<EOF ここにHTML、関数、ユーザー定義関数とか EOF; } $fp = fopen ($aaaaa,"w"); $ccccc = bbbbb(); fputs($fp,$ccccc); fclose($fp); PHP始めて3日目です。(プログラミングは初めて) こういう風には出来ないですか? 投稿があった時にPHPで受け取ってaaaaa.htmlを更新したいんですが。
>>31 の質問が
>>30 の質問の答えになってそうな罠
>>31 普通にできるんじゃない?
処理の最後にaaaaa.htmlにフォワードする必要がありそうだけど。
34 :
31 :02/09/13 13:04 ID:yb1hcccZ
>>32 俺がやったら、$ccccc = bbbbb(); の部分がダメみたいです。
しょうがないんで、function bbbbb()を$bbbbbにしたらOKでした。
フォワードとはaaaaa.htmlに戻る事でしょうか??
それはロケーションで書きました。header()です。
35 :
nobodyさん :02/09/13 13:22 ID:q9zrWrda
Content-Disposition: inline; と Content-Disposition: attachment; ってどうちがうんですか? どこをさがしても親切に説明しているサイトがないんですけど。
親切に説明が欲しいなら金払え
37 :
RFC厨 :02/09/13 14:14 ID:???
Content-Disposition: inline; はすぐ表示 Content-Disposition: attachment; は添付
39 :
b :02/09/13 16:00 ID:V08A06LP
業務用アプリなどで客先に収める場合、PHPファイルを渡すことになるかと思います。 当然のことながら客先がソースを閲覧することが可能な状態になりますが 皆様はその対応をどうなされているのでしょうか? あらかじめ、ソースを含めての金額請求をしているのでしょうか。 二次販売される可能性などの問題もあり、どのようにするか悩んでおります。
41 :
nobodyさん :02/09/14 01:07 ID:mEUyxyDj
>>40 そうゆうあなたに打ってつけなのがZend
42 :
nobodyさん :02/09/14 01:38 ID:HPVv0rIO
43 :
40 :02/09/14 10:39 ID:???
44 :
nobodyさん :02/09/14 14:30 ID:TjmGHZ9+
とある関数の実行結果をメモリに保存しておいて、 必要なタイミングで更新、みたいなことやりたいんだけど PHP じゃどうやるの? mod_php + apache + unix ( linux ) つかっとります
>>43 う〜、厳しいですなぁ。。M$のASPエンコーダは無料なんだけどなぁ。。
47 :
40 :02/09/14 18:02 ID:???
48 :
nobodyさん :02/09/15 19:55 ID:3qYFNGnZ
PHPのインデックス作成型検索エンジンって誰か知らないか?
49 :
b :02/09/15 20:02 ID:l/2nwin0
50 :
nobodyさん :02/09/15 21:30 ID:l3W9MFXW
特定のディレクトリ内のファイルを検索して 表示させようとしています。 <?php $dir=opendir('.'); while(($file=readdir($dir))){ if(is_file($file)){ print "$file\n"; } } closedir($dir); ?> readdirを使ってディレクトリの内容を読み取って printで表示させたところ、ちゃんとディレクトリ 内のファイルが表示されました。 この$fileに入っているファイル名を検索し、実行 する方法はあるのでしょうか?$file[0]をprintで 表示させたら各ファイルの一番初めの文字が表示 されちゃいました。
51 :
nobodyさん :02/09/15 22:39 ID:mdW8Tcgk
質問 windowsのデスクトップにある index.php ファイルを開いた時、 phpが実行させる方法はありますでしょうか? (localhost動作可能環境)
フォーム生成とvalidationチェックしてくれるクラスって色々あるけど、 使ってる人いる?
55 :
nobodyさん :02/09/16 14:27 ID:9M1lvPAp
メインページはレンタル鯖でチャットページ部分だけ自宅鯖を使ってます 自宅鯖のチャットページは、自分がネットに繋げている間だけ公開されるように $fp = fsockopen("*********",80); で、falseにならない場合表示されるようにしているのですが。。。 これだと自宅鯖を立ち上げていない場合に10秒くらい時間がたってから falseの処理が行われるんですが。逆の場合には一瞬です。 webサーバーが稼動しているのを確認したり、 外部のファイルが存在するか確認する方法ありますか?
56 :
b :02/09/16 15:15 ID:oqHfjXJ7
57 :
廃品回収 :02/09/16 18:35 ID:Bzg7QZDj
漏れは外部URLの”サゲ.htm”ファイルを自サイトのスクリプトに
取り込んで読ませるのに
<?php
$ホゲ = join ('', file ('
http://ホゲ/アゲ/サゲ.htm '));
echo "$ホゲ\n";
?>
って書いてるんだけど、これでアクセスさせて帰ってきたHTTPエラーを
処理するルーティン書けばいいんでないのかな。
役立たずでスマソ。
fsockopenのタイムアウト時間を短く設定すれば良いのでは?
59 :
nobodyさん :02/09/16 22:49 ID:Lcc+HyZz
>>55 つーか、鯖の方にスクリプト置いて、httpdが起動したら、レンタル鯖に置いてるスクリプトを呼び出して
ページを書き換えたらいいんでないかの。
この方が合理的。
61 :
nobodyさん :02/09/17 02:01 ID:RwZGe/HC
任意のHTMLファイルから<TITLE><TITLE>の中身だけを 取り出して表示させるにはどう書いたらよいのでしょうか。 たとえば、Yahoo!のトップページのタイトルを表示させたいとき。
他人が分かるように書いて下さい。
63 :
61 :02/09/17 02:07 ID:???
>>62 わかるだろ。
>>61 ニュースのタイトル取りだよね?
単に<TITLE>の行を抜き出していらない物をカットして表示させてみ。
65 :
nobodyさん :02/09/17 12:20 ID:0b8dNIC8
レンタルサーバのmbstring.http_inputの設定を変更するのはどうすればいいですか?
66 :
61 :02/09/17 12:54 ID:???
>>64 ありがとうございます。
$fileurl = file ('
http://www.yahoo.co.jp/ ');
$titleline = strip_tags($fileurl[6]);
echo $titleline;
これで表示できましたが、
これだとYahoo!が<TITLE>の位置を7行目からずらした場合に対応できません。
正規表現でファイルを最初から検索して<TITLE>に挟まれた部分を
抜き出すのがいいのかもとは思うのですが、その方法がわかりません。
67 :
nobodyさん :02/09/17 12:57 ID:ALvqH0Hv
>>64 それだと
<title>
ほげほげ
</title>
みたいになってると取得できないから正規表現で<title>から</title>までを抜き出したほうがいいのでは。
まあ、取得先の書き方が全部一行って決まってるなら
>>64 のやり方のほうが楽だけど。
68 :
nobodyさん :02/09/17 13:04 ID:ALvqH0Hv
69 :
61 :02/09/17 14:39 ID:???
>>67 さんありがとうございます。
以下ようなものだとうまく動きました。
$fileurl= 'あいうえお<title>タイトル抜きだし</title>かきくけこ';
$title1= strpos($fileurl,'<title>') + 7;
$title2= strrpos($fileurl,'</title>');
$length= $title2 - $title1;
$title= substr($fileurl,$title1,$length);
echo $title;
しかし、これはたぶんスマートなやり方じゃないと思います。
しかも、
>>67 さんの言うように複数行になっているとうまくいきません。
つまり、$fileurlを以下のように変えるともうダメです。
$fileurl= file ('
http://www.yahoo.co.jp/ ');
file関数では複数行は行指定しないとダメなのですね…。
file関数をほかの何かに変えればよいのでしょうか、
それともこのスクリプト全体がアホなのでしょうか。
70 :
↑ :02/09/17 14:48 ID:WWJg+78y
join()がいいと思ふ
71 :
61 :02/09/17 15:21 ID:???
ありがとうございます。 複数行の問題についてはjoin()で解決しました。 が、どうも次の行がうまく機能していないようです。 $title2= strrpos($fileurl,'</title>'); # echo title2; にしてみると、3万いくら文字目とかになってます。 Yahoo!は</TITLE>が大文字なので大文字に変えてもダメでした。 '/'の文字を'\/'でエスケープしてみてもダメでした。 ていうかそもそもこのやり方ってスマートじゃない気がするのですが、 どうなのでしょうか。
PHP4で、MPEGを操作することはできないでしょうか? 長さを取得したり、特定のコマをJPEGで取り出したりできれば、 最高なんですが。
>>72 (´ー`)y-~~ できるわけないでしょ
74 :
nobodyさん :02/09/17 16:03 ID:m1Ma5obA
>>71 試してないけどこんなんでどうだろ。
$url = "
http://www.yahoo.co.jp ";
$source_array = file($url);
$source = join("", $source_array);
eregi("\\<title\\>(*.)\\<\/title\\>", $source, $title);
ereg_replace("\n", "", $title);
$title = strip_tags($title);
echo $title;
間違ってるとこあったら誰かフォローよろしく。
>>74 (*.) -> (.*)
ereg_replace("\n", "", $title); -> $title[1] = ereg_replace("\n", "", $title[1]);
76 :
nobodyさん :02/09/17 16:48 ID:jNW2u3Fw
すいません、ごめんなさい、フリーのデータベースPHPスクリプトないですか…?
77 :
75 :02/09/17 16:48 ID:jNW2u3Fw
>>76 ちなみにCSVでデータベース出来るスクリプトです。
MySQLやPostgreSQLはサーバが対応してないので・・・
78 :
72 :02/09/17 16:51 ID:???
mpegの件、ImageMagickで簡単にできそうです。 お騒がせしました。
データーベースとPHPを接続するんじゃなくて、
PHPをデータベースにしたいの?(我ながら不自由な日本語だが
探すだけ無駄な気がするが…この辺つかっとけば?↓
http://www.freesql.org/ データベース専用鯖。
MySQL PostgreSQL に対応。無料。
80 :
75 :02/09/17 17:53 ID:jNW2u3Fw
>>78 無いですか・・・
SQLのこと全然分からないので・・・
項目作れて簡単に追加編集削除出来るようなのがあればよかったのですが・・・
すいません、ごめんなさい
81 :
75 :02/09/17 17:54 ID:jNW2u3Fw
PHPMyadminなら日本語だし簡単に操作できるけどナー
83 :
75 :02/09/18 11:23 ID:0kRbPetK
そもそもSQLが分からないんです・・・ 逝ってきます・・・
84 :
62 :02/09/18 15:10 ID:???
実は最近PHP
86 :
nobodyさん :02/09/19 23:42 ID:eFcguJsf
すいません、途中で送信しちゃいました。 実は最近PHP仕事でも趣味でも使ってないので(というかもともとウェブデザイナーなので) 最近の事情を知らないのですが、 最近PHPつかったサイトって、セキュリティ甘過ぎないですか・・・? たとえば、 (1)directory の indexが丸見えなために、あるいは (2)適当なquery stringぶちこむと簡単にphpのエラーメッセージが見れて、そのエラーメッセージから ・・で、インクルードされるファイルが見えて、それ見ると、 変数のエラーチェックをまともにやってないから、 query stringに適当なSQL文(をエンコードすると)入れるとDB操作ができちゃいそうで・・・ (実際にはやってないですが) こんなもんなんですか? 最近、それなりに有名なサイトとか、go.jpなサイトでそういうの見つけちゃったんですが。。。
87 :
86 :02/09/19 23:44 ID:???
あ、もちろんすべてブラウザからやってます。侵入とかはしてないです。 htdocsの下に*.incを置いちゃうのって、ふつーなんですか?最近のphp使いさんは
実は最近GHQ
89 :
nobodyさん :02/09/20 00:03 ID:OVVAotJ0
>>86 って、実際にそこでdeleteとかselectとかすると、
法にふれるの?
90 :
nobodyさん :02/09/20 00:05 ID:7xmF8XK6
民事であぼーん
91 :
nobodyさん :02/09/20 00:09 ID:iViTLDSZ
PHPのせいにするな 人を憎んでPHPを憎まず
92 :
89 :02/09/20 00:12 ID:OVVAotJ0
アクセス制御されている訳ではないので, 不正アクセス禁止法には引っかからないよ.
電子情報の破壊がどうこうっていう法律があったようななかったような。
クラスのメンバーに可変でアクセスしたいんですけど、 $this->member にアクセスするのに、 $home='member'; $this->$hoge みたいなことできませんか?? for($i=0;$i<10;$i++){ $mem="number_$i"; $this->$mem; }なんてことができると嬉しいのですが
96 :
nobodyさん :02/09/20 16:37 ID:DpSJVmH1
97 :
86 :02/09/20 21:35 ID:???
なにげに質問がすりかえられてるような気がするんですが、
>>86 って、どうなんでしょう?今時のセキュリティなんてそんなもんですか?
ちょっと質問させてください。。 PHPで埋め込み掲示板を作ってるんですが、 途中何らかのエラーが発生したときに error関数などで function error { print "Error!"; exit; } というふうにexitを使ってしまうと、 埋め込み掲示板より下に表示したいタグ等まで 出力されなくなってしまい困っています。。 感じとしては <HTML> <BODY> ... ... <? 埋め込み掲示板処理 ?> ... ... </BODY> </HTML> という感じです。エラーが発生したとき、 エラー出力とともにexitで終了せず<?...?>を抜ける方法は 無いんでしょうか? よろしくお願いします。
>>98 exit使わなければいいのでは。
return で何か返してやって
if文で{
}
else
とかやってやればどうよ。
>>99 レスありがとうございます。
例えば
function error {
print "Error!";
return($err_flag=1);
}
で戻って、各処理を
if (!$err_flag) {
処理続行
}
else {
処理終了
}
という感じにするということですか?
これだとすべての処理においてifで判別しながら
処理するという形になっちゃいますね。。
私の考えが間違ってるのかもしれませんが。。
101 :
99 :02/09/21 00:37 ID:???
>>100 っと当方もここで聞きまくってるPHP厨なのでよくわからずレスしてます(w
if文でやる他には、次のどうでしょ。
?>
...
...
</BODY>
</HTML>
の?>以降の部分をヒアドキュメント?だっけ?よく知らないんだけど、
function error {
print "Error";
include "footer.dat";//(footer.datは... ... </BODY></HTML>が書かれてるファイル)
exit();
}
とかにしてやったらどうっしょ。
それかincludeじゃなくて
echo "... ... </BODY></HTML>";にしちゃうとか。
どっかに $footer="</BODY></HTML>";として
echo $footer;としてもイイヨネ。
102 :
98 :02/09/21 01:30 ID:???
>>101 氏
たびたびありがとうございます。
それと少し説明不足な点がありました。
私の作っている埋め込み型掲示板はユーザビリティ(?)重視として
掲示板周辺のデザインも自由にいじれるようにしたいんです。
例としてはこんな感じです
<HTML>
<BODY>
...
(サイトの全体的なデザイン開始 <TABLE>..とか)
...
<?
ここに埋め込み掲示板を表示
HTMLは<TABLE>で始まり</TABLE>で終了
?>
...
(サイトデザインの終了 ..</TABLE>とか)
...
</BODY>
</HTML>
includeを使うと後半のタグも表示できますね!
とりあえずそれでがんばってみます。
ありがとうございました。
>86 どう答えて欲しいの? 私もデザイナーだけど、言語に関係なくプログラマのスキルが関係してると思うけど? 確かに、言語が理解しやすい分初心者でも作りやすいから セキュリティホールの多いものも確か。 >最近の事情を知らないのですが、 >最近PHPつかったサイトって、セキュリティ甘過ぎないですか・・・? あなたのように事情を知らない人が作っていると思いますよ。 >それなりに有名なサイトとか、go.jpなサイトでそういうの見つけちゃった はい。当たり前にあります。特にXSSとか・・。 それに、あなたのスキルでは見つけられないセキュリティホールは死ぬほどあります。 >ふつーなんですか?最近のphp使いさんは 普通かどうかはその人の知識による。 同じデザイナーとして、恥ずかしい質問はやめてください。
>>86 しつこいので
>>103 さんに加えてさらに追い討ち。
>>(1)directory の indexが丸見えなために、あるいは
PHPに限らない。Apacheの問題。
>>(2)適当なquery stringぶちこむと簡単にphpのエラーメッセージが見れて、そのエラーメッセージから
PHPの設定の問題。が、JSP等でもエラーメッセージ(printStackTrace)が出ることもある。
>>・・で、インクルードされるファイルが見えて、それ見ると、
見えるのはおかしい。Apacheの設定の問題。
>>変数のエラーチェックをまともにやってないから、
>>query stringに適当なSQL文(をエンコードすると)入れるとDB操作ができちゃいそうで・・・
もちろんPHPに限らない。
チェックをしないでも安全な言語なんてどこにもない。
まぁPHPは敷居が低いのでセキュリティ知識のない人が存在する割合が
他の言語と比べて高くなっているのは認めるところだが。
クロスサイトスクリプティング脆弱性とか?
106 :
nobodyさん :02/09/21 09:39 ID:ZZHp0IbF
外注に回したいんですが、PHPを使ったデータベースシステムって 普通どれくらいお金払えば作ってもらえますか? CSV、MySQL、PostgreSQL、でそれぞれ大体の制作費を 教えて欲しいんですが、、。
MySQL,PostgreSQL \800,000/人月 CSV \1,200,000/人月(メンドイから)
108 :
nobodyさん :02/09/21 11:10 ID:ZZHp0IbF
109 :
nobodyさん :02/09/21 12:00 ID:8ExCK0V+
>>108 あんまり製作を外注したことないでしょ?
それは結構安い方だと思うよ。
まあ、単価だけじゃわからんけどさ。
fwriteで書きこむと改行コードが付加されます? fgetsで取りこむと改行コードが消えます?? なぜかデータに妙な改行コードが出たり消えたりするのですが
<?php /* クッキー名(任意) */ $cookie = "COOKIE_VISIT"; /* クライアントからクッキーが送信されているか判断 */ if (isset($HTTP_COOKIE_VARS[$cookie])) { $value = (int)$HTTP_COOKIE_VARS[$cookie]; } else { $value = 0; } /* 訪問回数のインクリメント */ $value++; /* 有効期限(1年) */ //60秒 $expire = time() + 60; /* クッキー発行 */ setcookie($cookie, $value, $expire); session_start(); print("<BR> $value 回<BR>"); ?> これで、何回このサイトに来たのか確認するプログラムを組んでいます。 このプログラムネットスケープでは上手くいくのですが、IEでは上手くいきません。 どうしたらよいのか教えてもらえないでしょうか? PHP4,register_globals=offです。 よろしくお願いします。
すいません。 エラー内容を書くのを忘れてました。 IEでのエラー内容ですが、 読み込むたびにsessionIDが更新されているみたいなのです。 よろしくお願いします。
113 :
nobodyさん :02/09/21 17:20 ID:7B0wr+QP
インストールに関しての質問です。 環境は、FreeBSD 4.6 です。 いつも、configureをする時にFreeBSD用に、 ./configure --prefix=/usr/local --sysconfdir=/usr/local/etc --datadir=/usr/local/share/php --mandir=/usr/local/man --with-pgsql=/usr/local/bin --enable-mbstring --enable-mbstr-enc-trans をしていたのですが、 build/bsd_makefile があるのを知りました。どのようにして使ってセットアップすれば良いのでしょうか。
ないよ。
118 :
nobodyさん :02/09/22 02:46 ID:PyH4t/bU
>>113 buildconf なんてスクリプトを見ると
case "`uname`" in
*BSD/OS*)
./build/bsd_makefile;;
esac
なんて書いてあるから、FreeBSD では使わないのが吉では?
FreeBSD 使ってるならビルドは、
cd /usr/ports/www/mod_php4
make
make install
の方がお手軽で確実でせう。
%% せっかくの port ノウハウなんで利用しないともったいない。
---
俺的ポータルサイトを作ろう
http://mysite.ddo.jp/
119 :
Disca ◆NAfP6znE :02/09/22 19:52 ID:frQAcJLs
>>113 です
>>118 サンクスです。
私の場合は、stand/sysinstall でPackageをインストールしているのですが、
無いです、WWW、Japaneseのディレクトリも探したのですが無いです。
変ですよね。
120 :
nobodyさん :02/09/23 01:21 ID:UbulpwL5
ん、ports を入れてないの?セキュリティを重視するなら、ports のファイルを 展開しておいて cvsup で更新かけると良いでしょう。下手に新しいソースコード を導入するより、ports/packages の方が管理情報が残るし手順の再現ができて 楽だと思う。
121 :
nobodyさん :02/09/23 05:53 ID:g72U2pu2
質問です。 PHPで、変数に何も入ってないかどうか調べる関数ってなんでしたっけ?
122 :
99 :02/09/23 07:42 ID:???
123 :
99 :02/09/23 07:45 ID:???
あの、、、 素人な俺が素人向けにページ立てようと思うんだけど、やめたほうがいいかな?
124 :
nobodyさん :02/09/23 11:10 ID:Py8drUeO
is_null
128 :
99 :02/09/23 13:36 ID:???
じゃ、張り切って次スレまでには立てます! よろしくおながいします!
130 :
nobodyさん :02/09/23 21:22 ID:mnhekBpn
Apache + PHP + MySQLの構成なんですけど 全部インストールしたんですけど httpd.confの設定できません LoadModule php4_module lib/apache/libphp4.so ライブラリがないんです Apacheで./configureのオプション PHPで./configureのオプション みんなの設定教えてほしいです っていう質問ここでしていいですか?
>>105 公開串とパッケットキャプチャで日々情報収集...
>>130 googleより早く解決できると思うのならいいよ
133 :
nobodyさん :02/09/24 00:42 ID:/r2x96gq
現状でphp4をインストールするならどれを入れればいいんでしょうか? 日本PHPユーザ会に書いてある "日本語関係の処理にバグがあります。patch が出るまでしばらくお待ち下さい。" というphp4.2.3のパッチってもう出てるんですか?
134 :
nobodyさん :02/09/24 03:49 ID:6xTHY1PU
今までPHPファイルをftpソフトがバイナリ転送してたんだけど、 問題なく動いてます。 別にアスキー転送じゃなきゃダメって訳じゃないのかな?
>>133 MLに流れているけど、暫定パッチぽい。
で、わいはいまのところ4.2.2のまま。
136 :
nobodyさん :02/09/24 17:50 ID:clJNObLG
PHP4つかって請求書とかを印刷しようとするとやっぱPDF出力しかないのかなぁ どなたかこういうので使ってるよって人アドバイスおながいします
ブラウザを限定すればJavaScriptとCSSでできるよ、 つーかオレそうしてるし。
138 :
nobodyさん :02/09/24 20:32 ID:nF3wJ6pk
SQL→PHP→XMLTで
139 :
nobodyさん :02/09/24 21:07 ID:uxYEF9Jg
PerlもPHPも難しい! しかも、PHPにいたっては普及してるのだろうか? パールと違ってPHPで 作られた掲示板や検索エンジン(自動リンク)は まともなものが見つからない!誰かphpとMYsql を使った検索エンジンを配布しているところ知らない? プログラマーーってすごすぎる!尊敬してしまうよ 俺は今、おみくじスクリプトが限界だ。
140 :
nobodyさん :02/09/24 21:09 ID:nF3wJ6pk
XSLTだった。スマン。
141 :
nobodyさん :02/09/24 23:44 ID:eG+qA3Bk
Linux(コバルト)使っているのですが 一年くらい稼働しているのですが、そのうち2日間だけ /tmp/フォルダに、 phpcSCFMZ のような、php+ランダムな文字列のファイルが 数百個できてました。サイズは0。ファイルオーナーはhttpd。 これは何なのでしょうか? 削除してもいいのでしょうか? セッションとは別だと思います。session_ランダムな文字列で 一定期間だけ作成されていますので。 どなたか教えてください。
>>139 XoopsとかのNuke系のやつ使えば?
一応リンク集のモジュールもあるし検索も出来る
>>139 俺が思うにPHPのフリースクリプトはPerlほどは出てこないんじゃないかな?
だってPerlの奴が腐るほどあるからね。
PHPで作ろうと思っても新しいアイデアもそう簡単には思い浮かばないし。
作っても結局、PHPでわざわざ配布する必要あんのか?って感じ。
PHPは実行環境を選ぶしね。 Perl CGIはほとんどの鯖ですぐ使えるが。 フリースクリプトの設置に苦しむレベルの人だと、 PHP+DBのシステムを作るのは敷居が高いでしょう。
147 :
nobodyさん :02/09/25 17:12 ID:sj/HLJpa
>>146 英語だらけできついよ。
説明書も英語だろうし。
やっぱ、スクリプトから勉強しなきゃダメか・・・。
日本が作った奴ってないのか?
日本人は遅れてるな。実は日本人が作った奴
一個見つけたんだが糞だった。
148 :
nobodyさん :02/09/25 17:14 ID:sj/HLJpa
>>147 フリースクリプトの設置に苦しむレベルのひとが
英語のreadmeを忌避するひとが
DB使おうなんて考えることがまずおかしいんじゃないか?
それから
>やっぱ、スクリプトから勉強しなきゃダメか・・・。
などと言っている不勉強な香具師に
>実は日本人が作った奴一個見つけたんだが糞だった。
などと言われてもお前自身糞なことからはじめろ、としかレスしにくいんだが。
努力をしないヤツはどこへいってもウザがられるのだね。
何事も努力が必要です。 実際、自分で作ってみれば難しさがわかるべヽ(`Д´)ノ
>>150 努力しても出来ないヤツもウザがられるがな。
要は場の雰囲気を読めっつうことだよな。
>>147 自分じゃ作れないくせによくも糞とは言ったもんだ。
しかも日本人は遅れてるだと?
じゃあ何も出来ないお前はどこら辺?
まあ気持ちはわからんでもないが・・・
公開されているスクリプトの数は何の関係もない。
157 :
nobodyさん :02/09/26 09:31 ID:FqgYcmGJ
PHPにはMOD関数が無いようなのですが、、、 他の方法で余りを求める方法があれば教えてくださいm(_ _)m
159 :
157 :02/09/26 09:57 ID:FqgYcmGJ
>>158 できました!
ありがとうございましたm(_ _)m
PHP&MYSQLを使用しています。 PHPでMYSQLのフィールドカーソルを操作したいのですが、よくわかりませんでした。 簡単な操作方法がありましたら教えてください。
161 :
nobodyさん :02/09/26 20:33 ID:v/eI/U7R
>>160 ネタだろ?マヂ質問だったら電波板にでも逝け。
mysql_field_seek mysql_fetch_field
.phpを設定時間がきたら起動さす方法はありますか? cron以外なので無理かな・・・。
>>165 cron以外ということはUnix系OSなんですな。
気軽な方法ではcorn以外思いつかないけど、
Unix板かLinux板で聞いてみるとか。
レンタル鯖はcronを使わせてくれない、もしくは有償だったりしますが、
自宅や会社のPCを使って、定期的にwgetさせる手は使ってます。
METAで時間設定してブラウザつけっぱで放置、ならできるじゃん?
>>166 ども。レンタルというこで当然cron使えず、
やぱしcron使わずには無理なんでしょうね。
だと、訪問者に踏ますようにするしかないかな?
どなたか良法知てたら教えてください。
>>167 ありがとうございます。
そうですね。でも付けっ放しは無理だなー。
ツウ事で、訪問者がらみでMETAが有効になりそうですね。
どうなんでしょう?
170 :
hmk :02/09/29 00:14 ID:0Sel5nEd
>>168 最後に踏んだ時間をサーバ上のファイルに記録しておけばいいやろ。
171 :
nobodyさん :02/09/29 01:51 ID:Y4MVE/IQ
>>165 どういう処理をするものなのか解らないけど、
誰もアクセスしてなきゃ動かす意味ないんだろ?
んじゃ、設定した時間以降一回目のアクセスで動くようにしたら?
スレ違いの悪寒がしてきた。
173 :
nobodyさん :02/09/29 02:59 ID:DMNuaTqB
安い中古PC(数千円で買える)にLinuxを入れて、cronとwgetで定期的にアクセスする・・・ とっても不恰好だけど、とにかく安上がりに作りたいなら、こんな手もあるということで。 ついでに、自宅のルーターとしてもつかったら? そもそも、なにを目的として、定期的に .php を実行したいのかによって解は変わるかも。 不定期でもいいなら、誰かがアクセスしに来たときに現在時刻を定数で割って、1時間おき とかに所定のファイルが実行させるようにしてもいいのでは?
174 :
173 :02/09/29 03:02 ID:???
定数で割るってのは、ちょっと変か・・・ スマソ 170さんが書いているように最終アクセス時刻をファイルに保存しておいて、現在時刻との 差が1時間以上経過していたら実行するとかは?
175 :
nobodyさん :02/09/29 03:20 ID:D5u5GxKu
php4.2.2+gd1.8.3+ttfで文字をImageTTFText()関数で画像化したいのです。 zlib,libjpeg,FreeType 等インストールしてpngで表示させるのは 成功したのですが、jpegだとNGです。 phpinfo()をみると PNG SUPPORT enabledとなっていても、JPEGについては記述がないので PHPのconfigureのログをチェックしたらこんな感じでした。(jpeg関連のみ抜粋) checking for the location of libjpeg... yes checking for jpeg_read_header in -ljpeg... (cached) yes checking for gdImageCreateFromJpeg in -lgd... (cached) no gdImageCreateFromJpegがyesなら問題ないと思うのですが。 誰か同じような問題に当たった人いたら教えて下さい。
176 :
175 :02/09/29 03:24 ID:D5u5GxKu
追加です。 GDのMakefileにはこんな変更を加えました。これでpngはOKでした。 CFLAGS=-O -DHAVE_LIBPNG -DHAVE_LIBJPEG -DJISX0208 -DHAVE_LIBTTF LIBS=-lgd -lpng -lz -ljpeg -lm -lttf INCLUDEDIRS=-I. -I/usr/include/freetype -I/usr/include jpegライブラリ関係が機能してないのかなとも思ったのですが チェックする方法とかないでしょうか。
>>170 >>171 >>173 用途はただのデータ集計なんです。できれば定刻がベストですが無理ですね。
おっしゃるように最後に踏んだ時間を記録して、
時間差を確認して起動する方法を考えていきます。
ありがとうございました。
>>172 すれ違いなりました。 もうしわけない。
>>175 まったく解らないのだが、
>checking for the location of libjpeg... yes
は、libjpegにロケーション出来てるかどうか?
>checking for jpeg_read_header in -ljpeg... (cached) yes
は、readだから読み込み?
でも、
>checking for gdImageCreateFromJpeg in -lgd... (cached) no
は、Createって単語が入ってるから、「作る」に関係がるんだろう。
ってことは、JPEGを作るための物が欠けてるんだねってカンジがするけど・・・
あくまでも、エラーを見たカンジで言ってるだけですけどw
179 :
175 :02/09/29 03:41 ID:D5u5GxKu
>178 どもです。 jpeg関係は jpegsrc.v6b.tar.gzからインストールしてます。 ../configure --enable-shared make install ログを見た感じではjpegライブラリの場所はわかってるみたいなので、 確かに「作る」に関係してものが足りないんだろうけど。 それがなにか、わからないんですよね(半泣)
180 :
178 :02/09/29 03:44 ID:???
181 :
175 :02/09/29 04:07 ID:D5u5GxKu
>178 みました。が、わからず。 他に例がないってことは自分の環境に問題があると考えた方がよいかも。 とりあえず。ねます。レスサンクス。
182 :
nobodyさん :02/09/29 06:37 ID:YD0GxPMW
>>177 言わずもがなのこととは思いますが・・・
クライアントからのアクセスをトリガにしてPHPを実行している真っ最中、
つまり、ファイルに保存している最終実行時刻を更新する前に、
もう一発クライアントからのアクセスがあると、2重にスクリプトを実行して
厄介なことになる可能性がありますので、ファイルのロックなどで適切に調停
して下さいね。
>>182 なるほど、きっちりロックしときます。
ありがとうございます。
184 :
nobodyさん :02/09/29 23:01 ID:WutRk6vF
$HTTP_GET_VARSの使い方をおしえてちょ
185 :
hmk :02/09/30 02:35 ID:???
>>184 $HTTP_GET_VARSは配列で、スクリプトに渡された変数と値が、この配列のキーと要素になりまそ。
例 x=1,y=2が渡された場合
$HTTP_GET_VARS["x"] が 1
$HTTP_GET_VARS["y"] が 2
になりまそ。たぶんね。
??
過去ログまだ見てないから ガイシュツかどうか分からないけど PHP4.1.0以降だったかな?では $HTTP_GET_VARS -> $_GET $HTTP_POST_VARS -> $_POST に変わったから注意ね
188 :
187 :02/09/30 03:17 ID:???
if($ID = 'a' || $ID = 'b' || $ID = 'c') と if($ID = 'a|b|c') の書き方は一緒なんでしょうか?
??
191 :
nobodyさん :02/09/30 12:20 ID:P9mskQbo
>>175 PHPの./configureで
lib/libjpeg.soのあるディレクトリ(--with-jpeg-dir=/usrまたは--with-jpeg-dir=/usr/local)
を指定した方がいいんじゃない。
192 :
nobodyさん :02/09/30 12:22 ID:P9mskQbo
つーか、"=" が足りないような。。。 if($ID == 'a' || 'b' || 'c')
>>189 ちがうんちゃうんか?
$ID = "c";if($ID == 'a' || $ID == 'b' || $ID == 'c'){echo "ID:含";}
$ID2 = "c";if($ID2 == 'a|b|c'){echo "ID2:含";}
???
???
複数行にわたる文字列があって、 その内の # から始まる行を削除したいのですが、 どのようにすれば良いでしょうか? # から始まる行数は場合によって異なります。
198 :
hmk :02/09/30 18:25 ID:???
>>197 $str = ereg_replace("\n#[^\n]*\n", $str);
$str = ereg_replace("^#[^\n]*\n", $str);
$str = ereg_replace("\n#[^\n]*$", $str);
$str = ereg_replace("^#[^\n]*$", $str);
こんなんで出来るかなぁ。。。
きちんと書けば、正規表現一発でできるはずなんだけど。。。
上のが無理なら、文字列を改行でexplode()してからループさせる方法もある。
199 :
nobodyさん :02/09/30 22:27 ID:p1yTd7Ex
すんません、初歩的な質問させていただきます。 BASICにあったMID、(部分文字列コピー)関数のようなものは無いでしょうか…。 スマソ
202 :
199 :02/09/30 22:48 ID:p1yTd7Ex
strtolower�--�文字列を小文字にする strtoupper�--�文字列を大文字にする strtr�--�特定の文字を変換する substr_count�--�副文字列の出現関数を数える substr_replace�--�文字列の一部を置換する substr�--�文字列の一部分を返す trim�--� 文字列の先頭および末尾にあるホワイトスペースを取り除く ucfirst�--�文字列の最初の文字を大文字にする ucwords�--� 文字列の各単語の最初の文字を大文字にする vprintf�--�フォーマットされた文字列を出力する
猿か小学生に教えてるようなモンだな…
206 :
199 :02/09/30 22:59 ID:p1yTd7Ex
substr ありがとうございます。
∧,,∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ミ*゚∀゚彡 < 先生!猿か小学生にも教えてあげて下ださい。 .__ミミ_ ミ_ \______________________ .\ ∪ \ ||\_____.\ ||\|| ̄ ̄ ̄ ̄|| . || ̄ ̄ ̄ ̄||
∧,,∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ミ*゚∀゚彡 < 先生!猿がブラインドタッチでPHP書いてる姿、想像しちゃいました! .__ミミ_ ミ_ \______________________ .\ ∪ \ ||\_____.\ ||\|| ̄ ̄ ̄ ̄|| . || ̄ ̄ ̄ ̄||
∧,,∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ミ*゚∀゚彡 < 先生!208さんがオモシロスギデス。こんにゃろ。 .__ミミ_ ミ_ \______________________ .\ ∪ \ ||\_____.\ ||\|| ̄ ̄ ̄ ̄|| . || ̄ ̄ ̄ ̄||
∧,,∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ*゚∀゚彡 < 先生!
>>208 が「こんにゃろ」とか言って可愛過ぎます!
.__ミミ_ ミ_ \______________________
.\ ∪ \
||\_____.\
||\|| ̄ ̄ ̄ ̄||
. || ̄ ̄ ̄ ̄||
∧,,∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ミ*゚∀゚彡 < 先生!そろそろPHPの授業をはじめてください。 .__ミミ_ ミ_ \______________________ .\ ∪ \ ||\_____.\ ||\|| ̄ ̄ ̄ ̄|| . || ̄ ̄ ̄ ̄||
212 :
nobodyさん :02/10/01 07:41 ID:qB96ooZo
>>197-198 > きちんと書けば、正規表現一発でできるはずなんだけど。。。
一発じゃマッチング順の問題で失敗する条件があるみたいです。2回に分ければ正しく動く置換が組み立てられます。
$str=preg_replace('/^\s*#[^\n]*\n?/', '',
preg_replace('/\n\s*#[^\n]*/', '', $str));
---
俺的ポータルサイトを作ろう
http://mysite.ddo.jp/
213 :
nobodyさん :02/10/01 08:01 ID:qB96ooZo
>>177 >.phpを設定時間がきたら起動さす方法はありますか? cron以外なので無理かな・・・。
pcntl_fork して後は寝て (sleep) 待つ、という方法ではいかが。つまり、cron 相当の作業を PHP で書いちゃえば良いってことですな。
214 :
nobodyさん :02/10/01 09:39 ID:2iQ2koto
index.html内にある <!--banner--> というタグが、某ディレクトリ内にある画像に、ランダムで置き換わる際の PHPスクリプトを教えて頂けないでしょうか。
215 :
nobodyさん :02/10/01 11:06 ID:2iQ2koto
要はアフリエイトです $rand = ??????????????? $pic01='<img src=$rand width="468" height="60">'; echo ereg_replace ("<!--banner-->",$pic01,$pic01); のようになると思うんですが 特定の画像が出た時に特定のリンクがうまく行かなくて
$rand = ??????????????? の後に;がないよ。 つかこの文章で動すか?特定のリンクの変数は?よくわからないす。ゴメソ
>>215 > echo ereg_replace ("<!--banner-->",$pic01,$pic01);
これって、意味あるんか?
ereg_replace(string pattern, string replacement, string string)だから
$pic1に<!--banner-->が含まれていとすると置き換えようがない
仮に$randが"??<!--banner-->???"だったりすると、
結果は、
<img src=??<image src=??<!--banner-->??? with="468" height="60">??? with="468" height="60">
みたいに変にならんか。
やりたいことは間違いなく違うだろうが。
218 :
nobodyさん :02/10/01 14:20 ID:q/Y1XH55
>>215 >>218 何がしたいのか詳しく書くといいですよ。
ここの先生達は猿でも教える事ができす。
うきゃ?うききき、うーきうきうきー! うきぃぃ・・・・。
221 :
hmk :02/10/01 15:18 ID:???
>>215 文字列に変数が含まれている場合には、ダブルクォートでくくらないと駄目でした。
$pic01 = "<img src=\"${rand}\" width=\"468\" height=\"60\">";
>>221 だから、元質問者はシングルクォートで囲ってますがな。
223 :
hmk :02/10/01 15:38 ID:???
224 :
222 :02/10/01 15:44 ID:???
PHPくだ質スレッドが欲しい。 ウザすぎ。
226 :
222 :02/10/01 15:54 ID:???
>>223 スマソ。
変数の展開の話してたんね
鬱だし能、逝ってくる
>>224 いや、シングルクォートで括ると変数を展開してくれないのではなかったかいのぉー。
と
>>221 は言いたいのではないかいな。
>>222 は勘違いをしているのでは。
>>221 は"$hoge"と'$hoge'の違いについて話しているようだが
229 :
nobodyさん :02/10/01 15:56 ID:ITTNSseG
PHPの基礎の話でここまで盛り上がるとはなさけなや
230 :
nobodyさん :02/10/01 15:57 ID:2aPoU4IE
231 :
hmk :02/10/01 15:58 ID:???
>>224 儂がいいたかったのは、
$name = "内山怜也";
$te_1 = 'I love ${name}.';
$te_2 = "I love ${name}.";
echo $te_1; // I love ${name}.
echo $te_2; // I love 内山怜也.
ちゅーこった。
このレベルで引っかかっているようでは PHPだろうがPerlだろうがASPだろうが 何やってもダメなものは駄目。
もうちょっとプログラミングは何かということ
から勉強しないと
>>232 の言う通りだね。
とりあえずこのスレはブックマークから外します。
役にたつ質問無さすぎ。
全角数値を半角数値に変換したいのですが、何かよい関数ってあります?
>>235 まにゅあるみろと・・・。
2ちゃんの意味ないな。(; ´Д`)スレ腐敗するわけだ
>>236 「2ちゃんの意味」って何だよ?(藁
基礎を学ぼうとせず、ただ結果のみを求める「教えて君」が
叩かれるのは当然だろ、氏ね。
$hoge=str_replace("0","0",$hoge"); $hoge=str_replace("1","1",$hoge"); $hoge=str_replace("2","2",$hoge"); $hoge=str_replace("3","3",$hoge"); $hoge=str_replace("4","4",$hoge"); $hoge=str_replace("5","5",$hoge"); $hoge=str_replace("6","6",$hoge"); $hoge=str_replace("7","7",$hoge"); $hoge=str_replace("8","8",$hoge"); $hoge=str_replace("9","9",$hoge");
>>236 調べもせずに教えて君
逆ギレ教えて君
腐敗してんのはあんたのあたま。
240 :
hmk :02/10/01 16:59 ID:???
>>234 の質問に対する答えとして、
>>235 は妥当だと思うぞ。
「何かよい関数あります?」だから、ある/ないで答えればいいじゃん。
あるとわかれば、234は自分で調べるだろ。
>>238 それでもいいけど、
$str = "123456789";
$str_from = array("0","1","2","3","4","5","6","7","8","9");
$str_to = array("0","1","2","3","4","5","6","7","8","9");
$str = str_replace($str_from, $str_to, $str);
のほうがスマートかも。
$str = mb_convert_kana($str, "n");
が一番楽だけど。
242 :
234 :02/10/01 17:04 ID:???
どこかのHPで「mb_conver_kana」という関数で変換できる、ということまでわかったんですが うまく逝かなかったので、別の方法があれば聞こうと思って、てっとりばやく1行質問してみたんです $str = mb_conver_kana($var, 'AKHV'); |_ r 全角英字を半角に R 半角英字を全角に n 全角数字を半角に N 半角数字を全角に a 全角英数字記号を半角に A 半角英数字記号を全角に s 全角空白を半角に S 半角空白を全角に k 全角カタカナを半角に K 半角カタカナを全角に h 全角ひらがなを半角に H 半角ひらがなを全角に c 全角カタカナを全角ひらがなに C 全角ひらがなを全角カタカナに V 濁点を 1 文字全角に(K、H と一緒に使用) この関数はPHPの標準ではないですよね?
そんな事情こっちが知るはずないだろ?
244 :
hmk :02/10/01 17:07 ID:???
>>242 なぜうまく逝かない?PHPのバージョンはいくつニダ?
245 :
234 :02/10/01 17:10 ID:???
>>242 「てっとりばやく」が一番手間がかかった罠
247 :
hmk :02/10/01 17:17 ID:???
それなら出来そうなもんだが、、、 なにか特別なエラーがでないのなら、あとは文字コードの問題くらいかなぁ。 儂はPHP3しかつかったことないので詳しく知らんが。
248 :
234 :02/10/01 17:26 ID:???
>>246 ですね( ´∀`)
>>247 PHP3でできるなら、4でもできますよね
原因調べてみます
ありがとんヽ(´ー`)ノ
249 :
hmk :02/10/01 17:34 ID:???
>>248 PHP3だとmb_conver_kana()は使えないぞ。
mb使えるようにコンパイルしてないとかなら笑えないけどなー
251 :
234 :02/10/01 17:43 ID:???
>>251 氏ね
エラーメッセージは素人判断せずに全文コピペしろと口を酸っぱく…
Call to undefined function 云々と出ただろうに。。。
改造工房で回答が得られなかったので、ここで質問させて頂きます。
レッツPHPのスクリプトの改造で悩んでいます。
同一ホストからの連続投稿に時間制限を設けたいのですが(例えば一度書き込んだら
その後30分は書き込みできないようにする)、どこに何を書き込めば解決するでしょうか。
ソースは下記のものになります。
ちなみにPHPのバージョンは4.2です。
http://php.s3.to/simple/#short
255 :
234 :02/10/01 18:05 ID:???
>>252 コピペでやられたんです
参考に元ページに既に「t」がなかった・・・(T-T)
ほんと色々とありがとん
256 :
hmk :02/10/01 18:05 ID:???
>>254 掲示板のデータファイルに、ホストのIPを一緒に書き込んでおけ。
そして、同ホストが前回書き込んだ時刻を参照しろ。
これが分からなかったら、再度、改造工房にageることですな。
257 :
hmk :02/10/01 18:15 ID:???
>>254 IPでの制御はお勧めできない。
やっぱCOOKIEがBEST。
>>255 自分も一回、それではまりますた。。
同じところのコピペしたんすね。
>>258 「COOKIEを使用しない」にしていた場合の対策はありますか?
そう考えるとIPで制御してもいいと思うのですが、どうでしょう。
IPの場合でもダイヤルアップでころころIP変わるとか、プロキシで端末を特定できないとかの問題はあるので
一長一短だとは思いますが。
261 :
hmk :02/10/02 01:22 ID:???
>>260 クッキィできない端末からは、書き込ませないようにすれば良いではないか。
どなたか、教えてください。 アンケートを取るフォームを作っていますが、そのアンケートの設問は「アンケート設問データ」によって 動的に変わります。 そのため、フォームのラジオボタンの名前はデータを読みながら「bottonxx」とxxの部分に連番を振りながら 「botton1,botton2」とつけています。 これを、受け取る側のプログラムで部品名をどのように編集し、セットされた内容を取得したらいいのかわかりません。 "botton".idx1では、そのidx1が1のとき、フォームでセットされたbotton1の内容は取得できないのでしょうか? 皆さん、このように、動的に名前の物の内容はどのように取得されているのでしょうか? よろしくおねがいします。
説明がいまいちわかりづらいのだが、、、 ある文字列の変数は$$で取れるよ、たぶん $str = "botton".$idx1; 内容 = $$str; //つまり$botton1の中身
264 :
hmk :02/10/02 02:06 ID:???
>>262 >"botton".idx1では、そのidx1が1のとき、フォームでセットされたbotton1の内容は取得できないのでしょうか?
>皆さん、このように、動的に名前の物の内容はどのように取得されているのでしょうか?
このへんの文章の意味がわかりまそん。
アンケートとるなら、
<form action="">
設問1:美しいのはどっち?<br />
<input type="radio" name="mondai[1]" value="1" checked="checked" />菊川怜<br />
<input type="radio" name="mondai[1]" value="2" />内山怜也<br />
設問2:若いのはどっち?<br />
<input type="radio" name="mondai[2]" value="1" checked="checked" />菊川怜<br />
<input type="radio" name="mondai[2]" value="2" />内山怜也<br />
</form>
フォームをこんな風にしといて、
<?php
$answer_array[1] = 2; // 例えばクイズだったら、
$answer_array[2] = 2; // 正解を配列にいれとくなりしてから、
for (reset($mondai); list($mondai_num, $mondai_ans) = each($mondai) {
if ($answer_array[$mondai_num] == $mondai_ans) {
echo "設問 ${mondai_num} は正解。";
} else {
echo "設問 ${mondai_num} は氏ね。";
}
}
?>
でいいんじゃねえの。
265 :
hmk :02/10/02 02:09 ID:???
要は配列をつかいなさいってこった。
266 :
262 :02/10/02 03:21 ID:???
夜遅くに質問したのに、ありがとうございました。 >263さん ありがとうございました。無事に、完成させる事ができました。 本当に、感謝感謝です。 >hmkさん 詳細に書いてもらって、ありがとうございました。 配列を使いたかったのですが、ラジオボタンや、チェックボックスに未選択がないか、 Javascriptでチェックしなければならず、配列で名前をつけた時(hogehoge[])に、 formhoge.hogehoge[].checked と、書くとエラーになってしまったので、それぞれ名前をつける方法をとりました。 時間がなくって、苦し紛れな作り方になったのですが、助かりました。 ありがとうございました。
267 :
hmk :02/10/02 03:33 ID:???
>>266 ちなみに儂の場合、エラーを回避するためelement[n]で参照するようにしてました。参考までに。
268 :
260 :02/10/02 07:53 ID:???
>>261 なるほど。そういう考え方ですか。
表示時にCOOKIEの使用可否をチェック
↓
COOKIEが取得できないなら、書き込みフォームを表示しない
または、書き込みできない旨表示
とかもいけますね。
ありがとうございます。
269 :
254 :02/10/02 11:18 ID:???
>>256-261 ありがとうございます。とりあえず、cookieを使う方向でやってみようと思います。
ただ、cookieを使う方法が分からないです・・・・
どこに何を記述すれば解決するでしょうか?
教えてちゃんで本当にすみません。
270 :
hmk :02/10/02 14:59 ID:???
>>269 setcookie()なんてのはなかったっけ?
マニュアル見ようよ・・・
273 :
254 :02/10/02 20:14 ID:???
274 :
nobodyさん :02/10/02 23:11 ID:N6nWPgxI
4.2.4はいつ公開されるんだろうね。
>>274 開発メンバは4.3もしくはPHP5に向いているとおもわれ
276 :
age :02/10/03 14:13 ID:???
imgフォルダ内の画像をランダムに表示させるスクリプトは どう書けばいいんでしょうか? ただ画像を表示させるだけではダメです 画像にリンクをつけたいんです。 ご伝授宜しくお願い致します。
>>276 http://php.s3.to/bbs/up/randam.phpsを改造 -----------------------------------------
$folder = "./img/";
$handle = opendir($folder);
while ($file = readdir($handle)) {
if (!is_dir($file) && preg_match("/\.(gif|jpe?g|png)$/i",$file)) {
$filelist[] = $folder.$file;
}
}
closedir($handle);
mt_srand((double)microtime()*1000000);
$randval = mt_rand(0, (count($filelist)-1));
echo "<A href=\"$filelist[$randval]\"><IMG src=\"$filelist[$randval]\"></A>";
------------------------------------------
>>277 ご苦労さん。ところでそのスクリプトを
>>276 な質問をするヤシが
それなりに使いこなしてくれると思う?
このようにやったけどうまくいかね、教えろ。
ってならまだわかるんだけどな。
279 :
nobodyさん :02/10/03 16:49 ID:cJeLz4gO
>>276 実際にやってるサイトを見つけて、その管理者に聞けば?
280 :
age :02/10/03 17:14 ID:???
>>277 リンクはURLのほうがいいんですが・・・
すいません、ごめんなさい!
それくらい自分でどうにか汁!
282 :
ノンノン :02/10/04 11:39 ID:rtjubDTm
セッションを組み込んだフォームを作成中で、入力エラーがあった場合に 送信ボタンを押すとエラーページを表示させるようにさせたのですが、 そこからまたフォームへ戻ると入力された内容がすべて消えてしまいました。 Javascriptのhistory.back()やブラウザの[戻る]のどちらも同じ現象です。 セッションを外すとそういうことは起きません。 エラー表示はページを変えずにJavascriptでも可能ですが、Javascriptを 無効にしている人もいるのでできればそれは使いたくないんです。 こういった場合、どうすれば良いのでしょうか。
283 :
nobodyさん :02/10/04 11:51 ID:zNdIxOGz
PERL初心者です(まだ1週間) ファイルUPするのに<input type=file> でPOSTすると C:\Documents and Settings\Administrator\デスクトップ\プログラム\readme.txt 以下のような文字列が帰ってきます。 これをファイイルの部分だけ切り出すのて? 正規表現初心者です。うーんどうすればいいの? 置き換えならともかくループして1文字ずつよむならともかく わかりません。
>>282 php.iniのキャッシュがらみの設定を変更すると[戻る]でも内容を保持してくれる。
あと、戻るはやめてエラーページからフォームのページへ移るボタンを作って
入力内容を再表示させる方法の2通りあるよ。
本来ならキャッシュに頼らず、後者の方法で回避する方がいいと思うけど、
俺もついつい戻るにしてしまうからな。
>>283 正規表現でなくとも、最後の\以降の文字列を取る。ってかんじなら文字列関数で
何とかできるだろ。
ちなみにここはPHP質問スレだが、ひょっとしてマルチ?
285 :
ノンノン :02/10/04 12:25 ID:rtjubDTm
nobodyさん、ありがとうございます。 > php.iniのキャッシュがらみの設定を変更すると[戻る]でも内容を保持してくれる。 > あと、戻るはやめてエラーページからフォームのページへ移るボタンを作って > 入力内容を再表示させる方法の2通りあるよ。 なるほど、フォームへ入力した内容を逆送信という形ですね。 ただ、レンタルサーバを利用しているので前者は無理かな? で、一つ試しにやったことなんですが、セッションを外しても また後にセッションを組み込んだページへ移行しても、セッションの 内容を保持してるんです。 なので、「フォームのページだけセッションを外して送信したら再び セッションを組み込む」なんてことはできるような気がするんですが、 これって邪道でしょうか?
>>285 .htaccessでphp.iniの設定値を変更できるものもある。
で、肝心の設定項目を未だに思い出せない。調べりゃすぐわかるけどね。
値の方をpublicからprivateに変更すりゃよかったと思うけど、https時のIEの
バグ?がらみで俺はnoneにしてある。これでも[戻る]でも残る。
>なので、「フォームのページだけセッションを外して送信したら再び
>セッションを組み込む」なんてことはできるような気がするんですが、
>これって邪道でしょうか?
何がやりたいのか全体像が判らない。なんとなくだが、邪道というより
無駄というかちゃんと理解しているのかと小一時間...
PHP+PDFLibを利用し,PDF_show_boxed()を用いて文字列を印字するために 下記のようなスクリプトを書いてみたもののエラーが出て印字できません. 何か手がかりをお持ちでしたらご教授ください。 -----------------スクリプトの内容------------------- <? Header("Content-type: application/pdf"); $pdf = pdf_open(); pdf_set_info_author($pdf, "Sample"); PDF_set_info_title($pdf, "Sample"); pdf_set_info_creator($pdf, "See Author"); pdf_set_info_subject($pdf, "Sample"); PDF_begin_page($pdf, 842, 595); PDF_add_outline($pdf, "Page 1"); pdf_set_text_rendering($pdf, 0); pdf_set_font($pdf, "HeiseiMin-W3", 10, "EUC-H"); pdf_show_boxed($pdf, "hoge",100,100,100,100,left); ← PDF_end_page($pdf); PDF_close($pdf); fclose($fp); $fp = fopen(); header( "Content-type: application/pdf"); fpassthru($fp); fclose($fp); ?> ------------------------------------------------------ ------------エラーの内容----------- <b>Fatal error</b>: PDFlib error: PDF_show_boxed not supported for CID or EBCDIC encoding in <b>/usr/local/apache/htdocs/pdf/sample3.php</b> on line 15
288 :
nobodyさん :02/10/04 14:22 ID:H7Rb5fov
>286 >285 session.cashe_limiter = public
290 :
287 :02/10/04 15:22 ID:???
>>289 まんまコピペ か、1年以上進歩しない厨と思われ。
291 :
ノンノン :02/10/04 16:34 ID:rtjubDTm
> session.cashe_limiter = public おーっ、これですか。早速、.htaccess に書き加えて。。。ガーン!! 「表示できません」と出ました。トホホ。 記述法まで教えていただくわけにもいかず、あちこち調べてみましたら、 session_cache_limiter(); という関数を使えば良いという説明がありましたので、これを利用させて いただいたところ、できました。 > 何がやりたいのか全体像が判らない。なんとなくだが、邪道というより > 無駄というかちゃんと理解しているのかと小一時間... 一時間も悩んでいただいたのですね。 ご迷惑をおかけしました。また、質問の際はヨロシクね。 ありがとうございました。
292 :
質問 :02/10/04 16:43 ID:zDqIUs3v
ttp://www. 〜〜〜/~~~~/~~~~/~~~~/.htm
で最期のスラッシュ部分を削るとよくdirectry格納庫が見えるんですけど
これは犯罪なんですか?
293 :
質問 :02/10/04 17:44 ID:???
↑何故このスレで質問するのですか?↑
>>292 犯罪だよ。もう既にやったんだね。悪いことは言わないから出頭しなさい。
296 :
nobodyさん :02/10/05 00:05 ID:zZFr4hqn
$data = "<td>$name</td>"; とあった時、$dataを表示して $name を展開することは可能ですか?
297 :
nobodyさん :02/10/05 00:08 ID:kOTZvqT1
可
298 :
nobodyさん :02/10/05 00:09 ID:XGmx03Nq
それぐらい聞く前に試せ
299 :
nobodyさん :02/10/05 00:17 ID:zZFr4hqn
echo $data; でダメだったので、なにか方法あるかなぁと思いまして…。
と思ったら出来ました。質問の例を単純化しすぎたようです。 $dataはlist - explodeで外部ファイルから持ってきているので、 その辺に問題があるのでしょうかね。
>>299 そういやいままでそんなことしたこと無かったよ。
$data = "<td>"."$name."</td>";
ってやってたんだが、
>>296 式で試しにやってみたら
ちゃんとでけた。 当然て言えばそうなんだが、なぜいままで
やらなかったのだろう...
echo $data; で表示したよ。
>>301 やっぱし、"<td>"."$name."</td>"; 式で書き慣れてたほうがいいと思うよ。
プロの方どうですか?
……
304 :
300 :02/10/05 00:57 ID:???
すみません、するべき質問が間違ってたみたいです。 $file = file("data.html"); $html = implode('', $file); list($head, $main) = explode ("<!--cut-->", $html); この$mainに<td>$name</td>などが入っているのですが、(echoで確認済み) 前記のように展開がうまくいきません。 普通に$main="<td>$name</td>"とした場合と↑との違いは何なのでしょう?
>>304 すんげぇ発想だな。
展開しないのだったら素直に諦めろ。
ちなみに
$data='<td>$name</td>';
とかだったら展開しないだろ。右辺の扱いが違うんだよ。
>>304 ひょっとして
data.htmlの中に「$name」って書いてるのか?
$name をHTMLから取ってくるってことなんかね?
308 :
nobodyさん :02/10/05 16:28 ID:ERAiXWsY
309 :
nobodyさん :02/10/05 16:39 ID:PH1wtlYb
PHPでページにアクセス制限をすることは可能ですか? .htaccessと似たようなことがしたい(特定のホストを弾くなど)のですが・・・
311 :
308 :02/10/05 17:11 ID:???
思い出した、PATH_INFOだ。
312 :
sleepy galaxy :02/10/05 17:18 ID:KAWXlSoz
>>309 こんなのは?
<?
$r_addr = getenv("REMOTE_ADDR");
$r_host = getenv("REMOTE_HOST");
if($r_host=="" or $r_host==$r_addr){
$r_host = @gethostbyaddr($r_addr);
}
$hantei = ereg("拒否したいホストA|拒否したいホストB", $r_host);
if($hantei == 1){
header("Location:
http://www.2ch.net/ "); //飛ばし先
}
?>
314 :
309 :02/10/05 17:39 ID:PH1wtlYb
>>313 ありがとうございます。でもコピペしてみたら、
エラーが発生してしまいました……どこに問題があるんでしょうか。
エラーメッセージくらい書きませう。
316 :
309 :02/10/05 20:08 ID:???
>>315 エラーメッセージはこんな感じです。
Parse error: parse error, unexpected '@' in /****/****/****/****/index.php on line 35
$aa="1\n2\n"; としたとたん、$aaの中身が "1\r\n2\r\n" になってしまってウザイのですが、どうやって回避すればいいのでしょうか? おしえてください! verは4.2.2でし、、
318 :
名無しさん :02/10/05 21:12 ID:pMN6x92i
317です うそついていました 問題なく内部ではうごいていました
319 :
300 :02/10/05 21:22 ID:???
>>306 >>307 デザインを別ファイルにしたかったので、こんな意味不明なことを。
(よくある掲示板スクリプトの「スキン」みたいに)
何か別の方法考えてみます…。
320 :
313 :02/10/05 22:43 ID:???
>>316 ここかな。
$r_host = @gethostbyaddr($r_addr);
gethostbyaddr関数の前の「@」が邪魔してんのかな。
無くても大丈夫だからとってみたら。
うちではあってもなくても動くけど。
321 :
nobodyさん :02/10/05 22:43 ID:5gdnUDvW
PHPにGDライブラリいれて使っているのですが、 画像をresizeして出力することはできるのですが、 縦のものを横にするようなことはできないんでしょうか? スレ違いだったらスマソ。
322 :
nobodyさん :02/10/06 00:56 ID:FiROMDEK
Htmlのなかに <ul> </ul> この部分があって、これを取り除きたいのですが、 厨房なのでわかりません。 $hoge = ereg_replace("<ul>\n\n</ul>","",$hoge) このようにしていますがだめっぽです。 ご教授おねがいします。
><ul> > > ></ul> \nが3回あるけど?
324 :
nobodyさん :02/10/06 01:12 ID:FiROMDEK
>323 それしてもだめぽでした
325 :
hmk :02/10/06 01:34 ID:???
>322 $hoge = ereg_replace("<ul>.*</ul>", "", $hoge);
326 :
nobodyさん :02/10/06 02:08 ID:FiROMDEK
>>325 それだめなんすよー
<ul>
<li>ほげ
</ul>
ってのは 消したらだめなんですよー
327 :
hmk :02/10/06 02:11 ID:???
>>326 あなたは何をやりたいのですか?
<ul>と</ul>だけを消したいのですか?
328 :
nobodyさん :02/10/06 02:26 ID:FiROMDEK
>>327 <ul>と</ul>の間に2個の改行が入っている場合っす。
329 :
hmk :02/10/06 02:28 ID:???
>>328 改行コードが\r\nになってるんでないの?
330 :
nobodyさん :02/10/06 02:29 ID:FiROMDEK
331 :
hmk :02/10/06 02:32 ID:???
$hoge = ereg_replace("<ul>\r\n\r\n</ul>", "", $hoge); か $hoge = ereg_replace("<ul>\r\n\r\n\r\n</ul>", "", $hoge); を試してみよ。
332 :
hmk :02/10/06 02:36 ID:???
>>331 事故レス
ereg_replace()でなく、str_replace()で十分か。
333 :
hmk :02/10/06 03:06 ID:???
老婆心ながら、解説しておく。 Windows環境で編集されたファイルの標準的な改行は復帰+改行(\r\n)である。 また、UNIX系では\nのみ、Macでは\rのみである。 PHPにおいて、出力する場合は\nとしておけば通常は問題ない。 ただし、クライアントから送信されてきたデータを扱う場合には、改行コードを考慮に入れる必要がある。 複数のOSを考えなければならない場合、改行コードを正規表現(\r\n|[\r\n])で扱うのが簡便であろうか。 うんこ食って寝ます。。。
334 :
nobodyさん :02/10/06 03:12 ID:FiROMDEK
335 :
hmk :02/10/06 03:19 ID:???
>>334 まだうんこ食ってないので即レスしますが、
だめぽな原因が、なにか文字列の置換とは別のところにあるのでは?
差し支えなければ、ソースを晒してみよ。
儂か、ほかの誰かが原因を教えてくれるだろうから。
336 :
nobodyさん :02/10/06 03:36 ID:FiROMDEK
>335 ソースはあれだけっすけど dmozのHTMLをちょこちょこいじくってます
337 :
hmk :02/10/06 03:51 ID:???
>>336 dmoz???
もっと質問上手になって下ちい。
つまり、自分と同じ状況を相手が再現できるようにしなければなりまそん。
そうでない場合、皆は答えたくても憶測で答えるしかできまそん。
儂も儂で、実はPHPを動かす環境をもってなくて悪いのですが、、、
338 :
hmk :02/10/06 04:05 ID:???
実はスペースが紛れ込んでいるというオチとかを憶測するとして、 また、<ul></ul>間に「2個の改行が入っている場合」というのを「表示するべきデータがない場合」と拡大解釈するとして、 $hoge = ereg_replace("<ul>[:space:]*</ul>", "", $hoge); を試してみよ。 もう本当にうんこを食って寝ます。。。
339 :
hmk :02/10/06 04:08 ID:???
事故レス $hoge = ereg_replace("<ul>[[:space:]]*</ul>", "", $hoge); でした。
Open Directory 厨ですか? あそこは糞ですよ。 統率執れてないし。
341 :
駆け出し :02/10/06 08:28 ID:XXgIkL71
$hoge = ereg("<ul>.*</ul>", $hoge); $hoge = ereg_replace("\r\n", "", $hoge); $hoge = ereg_replace("\n", "", $hoge); $hoge = ereg_replace("\r", "", $hoge); こういう事?
343 :
駆け出し :02/10/06 08:54 ID:6TGeGVMz
あ、一行目からまちがえてる。。。 逝ってきます。
344 :
316 :02/10/06 13:49 ID:???
>>309 =
>>316 です。
>>320 試しに @ を外してみたのですが、やはり動作しませんでした。
バージョンは4.2ですが、何か関係があるのでしょうか?
度々質問してすみません。
345 :
nobodyさん :02/10/06 14:38 ID:pKfa3/8w
>>344 バージョンは4.2
$addr = $_SERVER['REMOTE_ADDR'];
$host = $_SERVER['REMOTE_HOST'];
$acpos = strstr($addr, "拒否したいホストA|拒否したいホスト");
if($acpos) header("Location:
http://www.2ch.net/ "); //飛ばし先
>>345 ありがとうございます。でも、試したところまたエラーが出てしまいました。
Parse error: parse error in /****/***/****/****/index.php on line 31
ちなみに31行目は
if($acpos) header("Location:
http://www.2ch.net/ "); //飛ばし先
の部分です。
何か打つ手がありましたら教えて下さい。
>>345 おー、strstr()関数って初めて知った…俺も触って1週間の素人なので。
ereg使うまでもないときは便利ですね。
>>346 345をそのままコピペしてるとして、
「拒否したいホスト」の部分にリモートホストのドメイン名
(例えばiij.ad.jpとか)を書いてるとしたら、動かない。
345のスクリプトは$hostは見ないで、$addrで判断してるから、
「拒否したいホスト」はIPアドレスで指定しないといけない。
あと、最後の行(Parse Errorが出てる文)も動かないかな?
ちっと345を元にして直してみた。4.2.2で動作してます。
index.php内に記述
<?
$host = $_SERVER['REMOTE_HOST'];
$acpos = strstr($host, "拒否したいホストをドメイン名で");
if(isset($acpos)) header("Location:
http://www.2ch.net/ ");
?>
>>347 うちで試してみたけど動いたよ
1. 省略せずに書いてみる
2. コメントを消してみる
if( ... ){ header(" ... ") }
else{ print ("OK"); }
parseエラーの行数が気になる
なんかのプログラムの途中に入れてるみたいだけど単独で試してみたら?
350 :
346 :02/10/06 16:53 ID:???
=
>>309 =
>>316 です。
>>348 ありがとうございます。でも、またしてもエラーが出てしまいました…
Warning: Cannot add header information -
headers already sent by (output started at /****/***/***/***/index.php:16)
in /****/****/****/****/index.php on line 27
27行目は
if(isset($acpos)) header("Location:
http://www.2ch.net/ ");
の部分です。同じ環境なのにどうして動作しないんでしょうか。
353 :
351 :02/10/06 17:12 ID:???
354 :
350 :02/10/06 17:43 ID:???
>>354 <?php
$host = $_SERVER['REMOTE_HOST'];
$acpos = eregi("拒否ホスト名",$host);
if($acpos){
header("Location:
http://www.2ch.net/ ");
}else{
print "飛んでない";
}
?>
356 :
354 :02/10/06 19:03 ID:???
>>356 おー、うまくいったのね、よかったね。
>>355 のスクリプト、俺の環境(4.2.2)で試すとうまく動かない…
ホスト自体が取得できてないからなんだが、これって環境の問題かな?
スクリプトの問題じゃないのは明白なので不思議だ。
やっぱ自分のとこでは
>>313 式がちゃんと動くようです。
<?
$addr = getenv("REMOTE_ADDR");
$host = getenv("REMOTE_HOST");
if($host == "" or $host == $addr){
$host = gethostbyaddr($addr);
}
$hantei = ereg("拒否ホストA|拒否ホストB", $host);
if($hantei == 1){
header("Location:
http://www.2ch.net/ ");
}
?>
>>357 それは鯖の設定でホストが抜けない様になってるんだよ
だからgethostbyaddr()関数を使って、IPアドレスから
ホストを問い合わせる必要がある。
そんな余分な処理をするより、IPアドレスで制限した方が
負担が少ない。
361 :
359 :02/10/06 23:58 ID:???
>>360 うーん、どこをどう読んでも
"\0..\37"ってのが、どうして"0から31"になるのか理解できないんで、
どういうことなのか御教授キボンヌ。
362 :
359 :02/10/07 00:04 ID:???
あ、やっと分かった。 たびたびスレ汚ししてスマン>ALL >アスキーコードが32未満または126より大きい文 字は、8進表現に変換されます。 ここを見落としてた。
363 :
荒川太郎 :02/10/07 17:52 ID:bKtEI8Ri
あるディレクトリ以下を呼び出すと、必ず一つのスクリプトを呼び出し、
特定ディレクトリ以下の、パス情報をパラメータとして取得することはできるでしょうか?
例:
http://hogehoge.com/test/param1/param2 上記の場合、
1.test/ 以下のパス情報は無視されて、hoge.php が呼ばれる。
2.test/ 以下の param1/param2 の情報を hoge.php の中で使用する。
Servlet では同じようなことを、tomcat の設定ファイルでやっていたんですけど、
PHPでやらなくてはならなくなり、いろいろ調べているのですが、いい方法がみつかりません。
ちなみに tomcat では web.xml で
<servlet-mapping>
<servlet-name>
HogeHogeServlet
</servlet-name>
<url-pattern>
/test/*
</url-pattern>
</servlet-mapping>
というような設定をして行っていました。
apache+PHP でも同様のことができるのでしょうか?
>>363 mod_rewrite使ったらできそう。
365 :
hmk :02/10/07 18:41 ID:???
mod_rewrite使え
366 :
荒川太郎 :02/10/07 20:25 ID:bKtEI8Ri
367 :
hmk :02/10/07 20:33 ID:???
368 :
荒川太郎 :02/10/07 20:38 ID:bKtEI8Ri
>>367 どもです、この辺の話は、ここだとまずかったかな?
apache関連の板ってあるのかな?
369 :
nobodyさん :02/10/08 02:52 ID:mDZCCxjW
>>321 imagemagickってーの使えばできるぽ
外部コマンド使うか、pearのPECLぱっけじいんすとしれ
370 :
nobodyさん :02/10/09 01:22 ID:Cmd2yG94
クッキーを2chみたいにJavaScriptで取得できないかな? perlでは簡単に出来るんだけど、phpのsetcookie()を使うとJavaScriptで取得したときに 文字が化けちゃうよ。 setcookie()を使わずに、書き込みもJavaScriptを使えば良いんだろうけど、 なるべくならphpを使いたいな。 どなたか良い方法を知っている方いませんか?
371 :
nobodyさん :02/10/09 02:49 ID:uMeBQ3Ig
なんで文字化けするのか考えたら?
>>370 Netscape7はunescapeが対応しているのでNetscape専用にしる。
ていうか俺も困っています。
>>19 の答えがわからないんだけど、ぜひ教えてください。
お願いします。。。
>>373 粘るね、あんた……。
関連の ML には投げてみたの?
375 :
hmk :02/10/09 13:29 ID:???
>>370 文字化けしないコードに変換してからsetcookie()すればいいだけでしょ、たぶん。
>>373 >>19 の説明だけだと、PHP+PEAR+Accessについてよく知っている人でないと答えにくいと思う。
答える側の手を煩わせないように、前後のコードやデータとあわせて、?@期待したい結果?A実際の結果?Bエラー等が出力された場合はその出力
を簡潔に書くべきだと思う。
>>375 ですな。
冒頭にMSAccessとある時点でほとんどの人にあぼーんされているのではなかろうか。(w
377 :
あくせる :02/10/09 16:21 ID:DrstWiBS
>>375 ですよね。
なんで、insert するときわざわざ $nowdate かわかんない。
テーブルこしらえるときに date TIMESTAMP DEFAULT CURRENT_TIMESTAMP とか。
Access なら「規定値」にDate()じゃだめなの?
>>375 全然スレ違いなんだが、あんたのレスj-phoneの携帯から見ると絵文字が(w
スレ汚しすまそ
MLで解答がいただけなかったので、こちらで質問させてください。 セッションについて質問があるのでよろしくお願いします。 記述1(session_start()を記述してない) −−−test.php−−− /* クラス定義 */ $sel2 = new クラス名; /* 読み込んだクラスをセッション管理 */ session_register("sel2"); $sel2->クラス名($sql); −−−クラス内−−− $this->usersql = $sql; だいぶ省略してますが上記記述だと、クラス内の $this->usersql という変数はリロードしても引き継がれてるのですが 記述2(session_start()を記述してない)※上記とは違うソース(PHPマニュアルより抜粋) if (!session_is_registered('count')) { session_register('count'); $count = 1; } else { $count++; } ?>こんにちは、あなたがこのページに来たのは<?php echo $count;?>回目ですね。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 上記記述でリロードした場合、カウントアップしていってくれません。 session_start()を記述すればカウントアップするのですが、 ならばなぜ、session_start()の記述がない”記述1”は情報を保持しているのかが理解できません。何故session_register()だけでセッションが成立する 場合があるのか、、すみませんがご教授ください。
>>379 良く分からんが、session_is_registered()のあたりで、
内部でいろいろやってそうだ…
便乗して質問。
$_SESSIONを開放しようとしてunset($_SESSION)した後、
$_SESSION['hogehoge']に何か値を代入すると、
値が保存されないんだけど、これって仕様?
どうやら、unset($_SESSION)すると、
その後のセッションに関する操作が全て無効になるみたいだけど。
http://www.php.net/manual/ja/function.session-unset.php これ見る限り、$_SESSION = array();と等価であるように書かれているけど…
>>379 セッション変数に登録しようとすると、暗黙のうちにsession_start()を
まだ呼び出していなかったら呼び出します。
ML過去ログにも同様のネタはあるよ。2年近く前だったかなー。
382 :
nobodyさん :02/10/11 04:39 ID:Dj1Sz5F3
テンプレートにsmartyを使っていますが、 <style type="text/css"> <!-- .hide { display:none } --> </style> のようなスタイルシートがテンプレート内にあると Warning: Smarty: [in hoge.html line 13]: syntax error: unknown tag - 'display:none' in /usr/local/lib/php/Smarty_Compiler.class.php on line 1182 のようにWarningが出てしまいます。 回避する方法はありませんでしょうか。 よろしくお願いします。
383 :
382 :02/10/11 05:24 ID:???
↑ですが自己解決しました。 {literal} {/literal} で囲んでおけばよかったんですね。 しかし、SmartyってWYSIWYG環境でHTML作ること考えてないのかな?
384 :
age :02/10/11 13:13 ID:???
PerlとPHPって負荷率ってどれくらい違うのですか? 例)サーバに画像掲示板100個設置
設置しても負荷は掛かりませんが。
どう考えても組んだ人次第
他の画面へ移動する方法を教えてください。 現在、<A href=〜>で、自分自身(php)を呼び出し、色々チェックをして、オッケーであれば 別の画面へリンクしたいのですが、チェック後オッケーであれば、header("Location: http=hogehoge")で、 別画面へ移動しています。 しかし、クライアントから「新規にウィンドウをオープンして表示して欲しい」とリクエストがあり、 困っています。 どうすれば、実現可能でしょうか?
>>387 新規ウィンドウを開くにはJavaScriptを使うのだが、チェックしてダメな場合は
新規ウィンドウを開かずに元のウィンドウで修正させたいわけですな。
元のウィンドウに隠しフレームを作っておいて、リンク先をとりあえず隠し
フレームしておく。そこでチェックしてOKなら隠しフレームからJavaScriptで
新規ウィンドウを開く。ダメなら元のウィンドウへ修正画面を出す。
で、どうよ。
389 :
387 :02/10/11 23:41 ID:???
>>388 レスありがとうございます。
>チェックしてダメな場合は新規ウィンドウを開かずに元のウィンドウで修正させたいわけですな。
そうです、そうです。
やはりJavaScriptを使わないと無理でしょうか?
<A href=hogehoge target="_brank">のように、簡単にphpでチェック後自動的に
移動したいのです。
クライアントの要望では「なるべくJavaScriptを多用しない」とあるのです。
(フォームの入力チェックくらい)
なので、悩んでいます。
なにか、名案がありましたらご指導ください。
>>389 JavaScriptの多用はダメって何でかな?
一切ダメってなら理解できないわけでもないのだが...
で、<A href=hogehoge target="_brank"> こうするとダメな場合でも
新規ウィンドウを開いちゃうわけだが、『入力に間違いがあるので、
修正してください』ってなメッセージを表示して元ウィンドウでの修正を
促すようにするとか...
クライアントの意向も含めて内容がわからないので、これ以上は
なんともだな。
391 :
nobodyさん :02/10/12 00:43 ID:RgMaTiub
<A href=hogehoge?check=ok target="_brank"> とかして、開く先でチェックする。 チェック不通過なら、 header("Location: http=motopage?check=out") で送り返す。 ってのは? 不通過の場合新しいページは開いたまま元のページを表示しちゃうけどね。
どう考えてもページ遷移の設計に問題あるだろ。 といいたい気持ちを抑えつつ、ひとつ案を出してみます。 <? if( $checkresult == "ok" ){ ?> <body onLoad="window.open('thisfile.html')"> <? } else { ?> <body> <? } ?>
393 :
389 :02/10/12 02:08 ID:???
レス頂いた皆さん、色々ありがとうございました。 結局、392さんの案を使わせていただきました。 >どう考えてもページ遷移の設計に問題あるだろ。 そうですね〜。 388さんの案でもいいのですが、「そこまでするのもな〜〜」っていう感じのものなのです。 とりあえず、実現できました。ありがとうございました。
>>392 おっ! なるほどぉ。
ワシも勉強になった。
395 :
( ´ー`)y-~~ ◆f7mhnEfPcU :02/10/13 02:59 ID:5MS6fmVa
PHPさわり記念age
済みません。配列の事でお聞きしたいのですが、 $line = "出席番号<>1<>名前<>安藤<>科目<>数学<>点数<>85" こういった内容の文字列があり、これから下のような配列を 作りたいと思っています。 $array("出席番号" => 1, "名前" => "安藤", "科目" => "数学", "点数" => 85); 試行錯誤して一つ方法が見つかったのですが、何だか とても回りくどい、下手な書き方をしているようです。。 もし効率的な方法があれば、教えてください。 <?php $line = "出席番号<>1<>名前<>安藤<>科目<>数学<>点数<>85"; $data = explode('<>', $line); while($data) { $name = array_shift($data); $value = array_shift($data); $array_tmp = array($name => $value); $array = array_merge($array, $array_tmp); } ?> よろしくしくお願いします。
あんまりいいのが思い浮かばなかった $data = split("<>", $line); for ($i = 0, $cnt = count($data); $i < $cnt; $++) { $array[$data[$i]] = $data[$i + 1]; }
>>397 さん、休日なのに素早い回答ありがとうございます!
さっそく使わせていただきます。ありがとうございました。
>>396 その前にそんな配列を作って後で苦労しねぇか。
>>399 さん、実は複数の先生から先のような、こちらが
想定していないフォーマットでテキストファイルを
受け取ってしまって、これをデータベースに登録して
いかなくてはならないんです。。
しかもテキストファイルの中身の「順序」が下記のように
まちまちなので、行単位で読み込みながら連想配列に
しておけば、データベースに登録していく際に間違いが
減るのでは、と思ったのですが…考え方が間違ってますでしょうか??
ファイル1: 出席番号<>1<>名前<>安藤<>科目<>数学<>点数<>85
ファイル2: 名前<>伊藤<>出席番号<>2<>科目<>数学<>点数<>65
>>400 科目は数学だけではないだろうから、配列の次元を増やすか、
配列変数そのもを増やすかしないと...と思ったわけよ。
最終集計をデータベースでやるので仮だ! ってなら別にいいけどよ。
>>401 さん、ご助言ありがとうございます。
仰るとおり、集計などはデータベースに登録してから
行うつもりでした…お気遣いありがとうございました。
403 :
nobodyさん :02/10/14 14:40 ID:c/k9cDX2
PerlからPHPに流れてきて、痒いところに手が届くような思いなのですが、 セッションというのがいまいちよく分かりません。 セッション変数は、サーバー側に保持しているんですよね? だとしたら、長い間運用していたら サーバー側のリソースがいっぱいになってしまわないのでしょうか? ブラウザが閉じられたらセッションも終了する、と解説書に書いてありますが、 クライアント側がハングアップした場合等でもうまく処理されるのでしょうか?
RedHat 8.0 で、apache-2.0、PHP-4.2.2、postgresql-7.2.2 を インストールしています。 以下を教えて下さい。 ローカルな環境で REMOTE_ADDR を取得したいのですが、 <?php print "remote_addr=".getenv("REMOTE_ADDR"). "<br>"; ?> では getenv 部分が空白になってしまいます。 phpinfo() では _SERVER["REMOTE_ADDR"] に正常な IP が表示されています。 php.ini は変更していません。
>>404 ん?どうゆうこと?普通こうじゃないの?
<?
$remote_addr = getenv("REMOTE_ADDR");
print "remote_addr=".$remote_addr. "<br>";
?>
406 :
:02/10/14 15:16 ID:qwp05sUr
$line = "出席番号<><>名前<>安藤<>科目<>数学<>点数<>85"; preg_match_all('/[^<>]+<>[^<>]*/', $line, $match); $sets = current($match); foreach($sets as $set) { list($key, $val) = explode('<>', $set); $array[$key] = $val; } ----- ガーベッジ・ コレクションで掃除します session.gc_maxlifetime ----- "remote_addr={$_SERVER['REMOTE_ADDR']}"
407 :
nobodyさん :02/10/14 15:18 ID:IjGAaSWb
getenv() 注意 この関数は、ISAPIモードでは動作しません <?=$_SERVER["REMOTE_ADDR"]?>
408 :
405 :02/10/14 15:19 ID:???
>>405-407 たくさんありがとうございます。
print "remote_addr=" .$_SERVER['REMOTE_ADDR']."<br>";
で表示はされました。
ISAPIモード...ですか... 検索してみます。
410 :
403 :02/10/14 16:07 ID:???
>406 なるほどー。時間制限があるわけですね。 ありがとうございました。
411 :
nobodyさん :02/10/14 16:19 ID:x52xQDqk
>>407 どのバージョンからそうなったんだ?
以前は機能していたのに。
確認したら確かにCGIモードでしか値を返さないな。
>>406 さん、ありがとうございます。
正規表現は難しいので殆ど使ったことがないのですが、
書いていただいた意味を調べて理解したいと思います。
ご親切にありがとうございました。
413 :
nobodyさん :02/10/14 19:55 ID:H8/ENmxF
php4 win2k echo readfile(filename); すると、filenameの内容となぜかバイト数が表示されるのですが、 これを抑制するにはどうしたらいいですか。 例 file.txt ああああああああああ echo readfile("file.txt"); 結果 ああああああああああ 20
>>413 readfile のマニュアル読め。
この関数、名前が悪いよな。
415 :
nobodyさん :02/10/14 20:11 ID:H8/ENmxF
>>414 Returns the number of bytes read from the file
あじやー
素直にfgets デモ使います。
定型html部分をインクルード(バックスラッシュなし)しようと思ったのだが、
416 :
hmk :02/10/14 20:48 ID:r0BZ2PpZ
>>416 インクルードしたいのならinclude()すれば?
417 :
:02/10/15 02:00 ID:???
418 :
nobodyさん :02/10/15 11:12 ID:YHFkhAWR
ひとつ質問させてください。(鯖はPHP4.2.2、使用PCはWinXP) テキスト検索付きのBBSをファイルベースで作ってるのですが、 検索語に「ー(長音)」が含まれる場合にエラーが発生します。 Warning: REG_EBRACK in xxx.inc on line 181 当該ファイルの181行目の処理: $result = eregi($keyword,$res); BBSログ内容を含む変数$resに対して、 検索語を含む変数$keywordで検索をかけているわけですが、 「ー(長音)」にぶつかると、REG_EBRACK([]ブラケットが閉じてない) エラーが出てしまうようです。 いろいろ検索してみた結果、 SJISの長音がまずい文字を含んでるようなのですが、 正規表現はまったくの素人(PHPもですが…)なので うまい処理の仕方が分かりません。 どなたか教えていただけないでしょうか。 ※eregを使わないやり方があればそれでもOKです。 ちなみに、PHPの内部エンコーディングはSJISです。
>>418 mb関数を使うのも良いが、EUC文字コードを使うのが基本
421 :
s :02/10/15 13:02 ID:MW777drM
IDE何使ってる?
422 :
nobodyさん :02/10/15 17:15 ID:60o/Yyha
変数は、$_GET["hoge"]で受け取った方が良いと聞いたのですが何故ですか? $hogeで受け取るのと何が違うの?
>>422 「変数は、$_GET["hoge"]で受け取った方が良い」
とあなたに言った方に聞きなさい。
425 :
418 :02/10/15 18:50 ID:???
>>419-420 レスありがとうございました。
eregi()で検索する方法をやめて、
mb_strpos()を使うようにしたらうまくいきました…
426 :
nobodyさん :02/10/15 18:54 ID:MbJ1xrNT
いま動いてるphpファイルのファイル名ってとれないですか? iamview.php <html><head></head><body> <?php echo "I am View<br>\n"; echo "PHP_SELF = ".$_SERVER[PHP_SELF]."<br>\n"; include "iambean.php"; $iambean = new iambean; ?> </body></html> iambean.php <?php class iambean{ function iambean(){ echo "I am Bean<br>\n"; echo "PHP_SELF = ".$_SERVER[PHP_SELF]."<br>\n"; } } ?> 結果 I am View PHP_SELF = /php/iamview.php I am Bean PHP_SELF = /php/iamview.php 2個目はiambean.phpになってほすぃ
>427 __FILE__は?
<?php class iambean{ function iambean(){ echo "I am Bean<br>\n"; echo "PHP_SELF = ".$_SERVER[PHP_SELF]."<br>\n"; echo "SCRIPT_FILENAME = ".$_SERVER[SCRIPT_FILENAME]."<br>\n"; echo "PATH_TRANSLATED = ".$_SERVER[PATH_TRANSLATED]."<br>\n"; echo "SCRIPT_NAME = ".$_SERVER[SCRIPT_NAME]."<br>\n"; echo "__FILE__ = ".__FILE__."<br>\n"; } } ?> 結果 I am View PHP_SELF = /php/iamview.php SCRIPT_FILENAME = c:/program files/apache group/apache/htdocs/php/iamview.php I am Bean PHP_SELF = /php/iamview.php SCRIPT_FILENAME = c:/program files/apache group/apache/htdocs/php/iamview.php PATH_TRANSLATED = c:/program files/apache group/apache/htdocs/php/iamview.php SCRIPT_NAME = /php/iamview.php __FILE__ = c:\program files\apache group\apache\htdocs\php\iambean.php いけました!こんなのマニュアル載ってましたっけ?? ありがとうございました。
430 :
nobodyさん :02/10/16 02:53 ID:QXwwjHEP
431 :
nobodyさん :02/10/16 02:56 ID:m/rwzFSQ
PHPでフォームを使ってファイル・アップローダーを作成した場合 ・複数のファイルを選択してアップロード出来ますか? ・ファイルではなくディレクトリを指定して、その階層下のファイル、サブディレクトリをアップロード出来ますか?
432 :
nobodyさん :02/10/16 03:05 ID:FAL4tSOv
PEARにtarでアーカイブする関数があるから階層ごとアッブロード出来んじゃないの?複数選択はブラウザからは無理っぽい
>>432 input type=file
を沢山作れば出来るっしょ?
434 :
nobodyさん :02/10/16 11:08 ID:m/rwzFSQ
435 :
nobodyさん :02/10/16 11:40 ID:FAL4tSOv
サンプルなら本に載っている。でもtarしてアップは知らない。出来るの?
ディレクトリのアップロードは出来ない。
>>433 基本的にそれでいいけど、formの方で
<input type="file" name="file[0]"> とやって受ける方で
配列の数だけループさせんのが楽です。
438 :
nobodyさん :02/10/17 13:19 ID:wnOpV9ll
セッションを使ってみたのですが、30分程度アクセスしていないと ブラウザを閉じなくてもセッションが切れてしまうみたいです。 php.iniのsession.cookie_lifetimeとかsession.gc_lifetimeとかも いろいろいじっみたんですがやっぱり30分前後で切れてしまうようです。 もっとセッションを長く持つことはできないのでしょうか・・・
>>438 PHPじゃなくてサーバ(Apacheとか)の設定じゃないのかな。
440 :
nobodyさん :02/10/17 13:56 ID:frKHjIQw
>>438 Defaultだとセッション情報の生存時間は24分になってる
session.max_lifetime = 1440
ただし、24分以降のアクセスが有った場合に
session.gc_probability = n
で定義されているn%の確率でガベージコレクション処理が
実行される。
アクセスがなければ、セッション情報はアボーンされない。
デフォルトはsession.gc_probability = 1
だから、結構なアクセス数がないとgcは開始しないはず
何だけど
441 :
440 :02/10/17 13:58 ID:frKHjIQw
間違った s/max_lifetime/gc_maxlifetime/
442 :
x :02/10/17 14:28 ID:93YjN7NA
443 :
438 :02/10/17 14:51 ID:dtum+/dq
ありがとうございます gc_maxlifetimeってそういう意味だったんですね ドキュメントみてもよくわからなくて。 アクセスが結構あるのでこの値を大きくしてみます
444 :
nobodyさん :02/10/17 17:30 ID:B8kY3RPw
UNIQID というのはどうやって得るんでしょう?
$id = uniqid(""); echo $id;
446 :
nobodyさん :02/10/17 18:23 ID:B8kY3RPw
$token = md5(uniqid("")); // ランダム要素なし $better_token = md5(uniqid(rand())); // 推測が困難であり、より優れている。
447 :
nobodyさん :02/10/17 18:24 ID:B8kY3RPw
>>444 ここのレスはすべてマニュアルをちょっと見ればわかるものだな。
>448 ここのレスだけじゃなくMLもな
php4.0.6(FreeBSD 4.2)での話なんですが
$mail_status = mb_send_mail($form["recipient"],$form["subject"],$mailbody,$mail_header);
の$mail_headerに一部日本語を含めてます(From:
[email protected] (名無しさん) みたいに)
で、mb_send_mail は、仕様として、最後の引数(ヘッダ)だけは文字コード変換してくれないのでしょうか?
上記のままだと、本文やタイトルは文字化けしてませんが、
From:
[email protected] (名無しさん) の日本語だけ、化けてます。
なので、
$mail_header = mb_convert_encoding($mail_header, "JIS", "JIS, eucjp-win, sjis-win");
としたら、文字化けは解消されたのですが。。。
こういう仕様なんでしょうか?
452 :
450 :02/10/19 03:30 ID:Rs0UFwL7
>>451 マニュアル見ても、string mb_language ( [string language])の設定によって、変換・エンコードされる
としか書いてないです。。。
やぱ、
boolean mb_send_mail ( string to, string subject, string message [, string additional_headers [, string additional_parameter]])
のstring additional_headersは、そのままスルーなんでしょうか・・・?
*.php以外のインクルードされるファイルは、htdocsの下には置かないほうが、 セキュリティ上望ましいと、聞いたことあります。 で・・・質問です。 <インクルードされるファイルは「*.inc、*.conf」の拡張子に限る>というルールをつくった上で、 <Files ~ "\.(inc|conf)$"> order allow,deny deny from all </Files> をhttpd.confに加えれば、htdocsの下に「*.inc、*.conf」を置いても、セキュリティ上の問題は、 ないんじゃなかろうかと思ったんですが、実際、どうなんでしょう?
454 :
age :02/10/19 10:02 ID:???
php.ini の各項目の詳細を日本語で書いてるサイトないですか?
455 :
nobodyさん :02/10/19 10:46 ID:3cLIDoBp
>>453 エディタが、拡張しPHPでないとphpのモードにならいので、
インクルードするファイルもすべて*.phpにしてmath
>>456 WinならTeraPadでも使えば?
MacならMi(ミミカキエディット)。
たとえば掲示板で、データをテキストファイルに1発言1行で格納してあるとします。 たとえばレスをはじめから10件読む場合には、 1行づつ読み込んで、10行目を読み込んだ時点でファイルを閉じればいいですね。 しかし、「最新のレス10件」を読み込む場合には、 レスの範囲を計算するためには、「全部で何行あるか」を調べなくてはいけませんね。 そうすると、feofまで読み込んで、fseek等をしつつ、行数を調べてから、 改めてファイルを読み込むと言うことになります。 それなら、fileで一気にファイルを配列に読み込んで、その後でarray_spliceなりを 施せばいいのですが、データファイルが200KB,300KBにもなるとそれは さけたいですね。 アドバイスをお願いします。
459 :
458 :02/10/20 07:25 ID:???
すんません。下げちゃいました。 それにしても、この板、人口少ないですね。
>>458 > データファイルが200KB,300KBにもなるとそれは
> さけたいですね。
その程度なら全部を配列に読みこんでも良いのでは?
461 :
nobodyさん :02/10/20 09:19 ID:3NSvh+yz
>>458 書き込み時に、何行書き出すか取得して、それを別ファイルに落とす。
んで、その別ファイルには何行あるか、と言う数値が1行ずつしか書き込まれない。
で、その別ファイルを10行分読み込んで、10行分の数値を全て足した数値+タグ分の数値で、
何行まで読み込めばいいか、処理出来ると思うが。
これだと、メッセージ編集した場合の書き換え処理が大変だが、メッセージ編集しないのであれば
これでいいと思われ。
462 :
redeclareさん :02/10/20 11:43 ID:TH9l9BrQ
同じクラスを2回以上includeすると Fatal error: Cannot redeclare class logger in c:\apache\htdocs\php\logger.php on line 2 と言われてしまいます。 Javaでは同じクラスを何度もimportできるのに・・・。 この場合どのような構成にしたらよいのでしょうか? コードを以下に示します。
463 :
redeclareさん :02/10/20 11:49 ID:TH9l9BrQ
includetest.php <?php include "hello.php"; $hello = new hello; include "goodbye.php"; $goodbye = new goodbye; ?> <html><head></head><body><?=($hello->msg().$goodbye->msg())?></body></html> hello.php <?php class hello{ function msg(){ $msg = "Hello,2chWorld.<br>\n"; include "logger.php"; $logger = new logger; $logger->log(); return $msg; } } ?> goodbye.php <?php class goodbye{ function msg(){ $msg = "Goodbye,2chWorld.<br>\n"; include "logger.php"; $logger = new logger; $logger->log(); return $msg; } } ?> logger.php <?php class logger{function log(){}} ?>
>>462 include_once
require_once
465 :
redeclareさん :02/10/20 12:21 ID:TH9l9BrQ
>>464 できました!
今までリクエストが送られるたびに
初期処理的にfactoryクラスを呼んで
$GLOBALSに共通利用されるクラスをいれて使用するという
なんともまどろっこしいことをしてましたが
これで解決です。感謝!
466 :
nobodyさん :02/10/20 16:50 ID:jWiCSXPt
<? include("$HTTP_SERVER_VARS[DOCUMENT_ROOT]/common/footer.inc");?> って、もっとスマートな書き方 ($HTTP_SERVER_VARS[DOCUMENT_ROOT] なんて使わずに) あります? SSI include みたいな。
php.iniでinclude_path=.:{ドキュメントルートのパス} でいいんじゃないの?
468 :
458 :02/10/20 19:58 ID:???
>>466-7 php.iniもさわれないし、.htaccessにもかけない環境の方は、
define("INCDIR",$_SERVER['DOCUMENT_ROOT'] . "/hoge/hage/");
として、
include(INCDIR . "foobar.inc");
でいいんじゃ?
469 :
s :02/10/20 20:06 ID:7cHVMr6a
470 :
:02/10/20 23:31 ID:???
extract($_SERVER); $INCLUDE_PATH = ini_get('include_path'); $new_include_path = "{$INCLUDE_PATH}:{$DOCUMENT_ROOT}/hoge"; ini_set('include_path', $new_include_path);
今、実行しているfunctionの名前ってとれないですか?
472 :
nobodyさん :02/10/21 01:33 ID:az6boZmG
perlでいうところのjcode.plのような処理をするには 自分でコードを書くしかないのでしょうか?
mb_convert_encoding
gzipを標準出力に結び付けている良い例はありますか? $|=1; open(STDOUT,"| /bin/gzip -1 -c"); この二つはPHPではどう書けるのでしょう。
478 :
475 :02/10/21 03:12 ID:???
>>477 検索しても見つかりませんでした。
このスレか、何番の過去ログかヒントだけでも
PHP勉強しようと思ってるんですけど、 おすすめの書籍とかないでしょうか?
482 :
471 :02/10/21 11:00 ID:???
>>476 ログに$_SERVER[PHP_SELF]とfunction名と行を出そうと思ってるのですが
function名を文字列として渡すのは面倒&function名が変わったら修正増
ということでなんとかして関数その他で取れないかな、と。
>>480 そもそもプログラミング経験があるのとないのでは学習方法が違うから答えようがない。
経験あるならマニュアル読めば十分。
例えばaからzまでの配列を作る時に ・ひたすらがんばる $array = array("a", "b", "c".......................................................); ・forでまわしてみる for($i = ord("a").................................................) というのが簡単に思いつくんですが、もう少し簡単で綺麗な 書き方はないでしょうか
485 :
nobodyさん :02/10/21 16:59 ID:RKsFdcBa
>>484 $alpha = 'a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z';
$a = explode(",", $a);
print_r($alpha);
こんなんで、どや
ごめんなさい。最初に誤っておきます。 本当にくだらない質問なんですが PHPで、ユーザーエージェントによって 携帯端末用とPC閲覧用で表示を変えたいのですが どういう風にすればよいのでしょうか? なんとなく形はわかるんですが、それを実際に PHPで動作させるのがわかりません>< たぶん・・・ 環境変数からユーザーエージェントを見て i-mode/j-sky/ezwebならこっちを表示 それ以外ならアッチを表示・・・というプログラムになると思うのですが・・・。 どなたかお優しい方ご教授お願いいたします。
487 :
485 :02/10/21 17:01 ID:???
う、間違ってた $alpha = 'a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z'; $a = explode(",", $alpha); print_r($a);
>>483 そもそも配列にしない。
ord("a") + $iで使ってけば良いじゃん。
>>485 大正解。コーディングしなよ。
環境変数はマニュアルにもWebにも情報がある。
条件分岐なんて基礎の基礎だし。
490 :
458 :02/10/21 20:12 ID:Z25MjzcQ
491 :
hmk :02/10/21 21:09 ID:???
>>484 ,485
私は、$array = array("a", "b",...); にするべきだと思う。
他人がコードを読むときのことを考えると、意味がはっきりするほうが良いと思います。
492 :
458 :02/10/21 21:14 ID:Z25MjzcQ
>>491 同意。
たとえだと思うけど、a〜z間での配列を作る前に、それが本当に必要なのか、
検討すべきだと思う。
>>492 俺は、他人がコードを読むときなんてあんまりかんがえんが、
a-zと綺麗に並んだ配列を用意する時点で遠回りしている感じはするね。
で、1字づつの配列でいいのなら、
$array="abcdefg......";
でええのとちゃう。
494 :
nobodyさん :02/10/22 00:47 ID:n3viipFn
PHPを始めて2日目の者です。 簡易伝言板のようなものを作ってるんですが、ログファイルが変なことに。。。 --------- name<>mes<>date name<>mes<>date name<>mes<>date -------- といった感じに、改行数がどんどん多くなってしまいます。。。 表示などには特に問題は起きないんですが、ログファイルが見づらくなるので。。。 よろしければ対策を教えて下さい。
495 :
494 :02/10/22 00:48 ID:n3viipFn
ソースコード貼り忘れました(鬱
if($_POST{'name'} && $_POST{'mes'}) {
$name = $_POST{'name'};
$mes = $_POST{'mes'};
// 現在日時取得
$date = gmdate("d(D) h:i a", time() + 60 * 60 * 9);
// フォーマット
$data = "$name<>$mes<>$date\n";
$logs = file($logfile);
$fp = fopen($logfile, "w");
fputs($fp, $data);
$log_max--;
for($i=0; $i<$log_max; $i++) {
fputs($fp, $logs[$i]);
}
fclose($fp);
}
http://php.s3.to/tt/tt5.php ここにあるサンプルのゲスブも同じ事態になりました。。。
trim
497 :
nobodyさん :02/10/22 10:08 ID:TXJWZ2fS
セッション管理について教えてください。 1台のサーバでApacheのVirtualHost機能を使って aaa.hogehoge.com bbb.hogehoge.com を作るとします(ドメインは同じ) この場合、aaa.hogehoge.comで登録したセッション変数を bbb.hogehoge.comで参照することはできるのでしょうか? 同一サーバなので/tmpが参照できるから問題ないのかなあとか 思うんですけど、環境が作れなくて実験できません。 やったことのある方、すみませんが教えてください。
>>497 基本的には可能。
但し、cookie経由でSessionIDを取得することは普通出来ない。
相対リンクでないので、URLに自動付加もしてくれない。
で、PHPSESSID=....を自力で出力する必要があると思う。
499 :
497 :02/10/22 16:46 ID:TXJWZ2fS
498さん、ありがとうございます。 PHPマニュアルに「session.cookie_domain」ってのがあったんですけど これを指定すればcookie経由で使えないですかね? 教えてクンでごめんなさい。
>>499 なるほど、
session.cookie_domain=hogehoge.com
ってことだな。
運営上セキュリティに問題がない場合はそれでいいんじゃない。
501 :
nobodyさん :02/10/22 18:25 ID:AaVCn9+u
502 :
458 :02/10/22 19:13 ID:TmLjz4JJ
>>494 デリミタをタブやカンマじゃなくて<>にするのは、
流行ってるの? 壺の影響か?
>>502 俺もやっているが、俺はKENT氏の真似。つか、ログ互換にしたかったので使った。
<>は、htmlでは <> に変換されるから、内部表現に使えて便利。
カンマにしてcsvにしても良いが、カンマを含む文字列を使う時は""でくくる必要が
あるけど、fgetcsvを使うほうが効率的かな?
504 :
458 :02/10/22 19:48 ID:X7v1eaNo
>>503 fwritecsv(int fp, array data, str delimiter)
というのがあれば便利なんだけどね。
>>502 流行ってるとかじゃなくて単に普通の文書中では
まず使われる事がなく、且つフィールドの境界が
目で見て分かりやすいからじゃないのかな。
>>503 >>505 あなた方の言っている事は正しいと思うけど、
教えて君に<>を見せ付けられると、Uzeeeeee!
と思うのは私だけ?
ま、慣れの問題だとは思うがの。
507 :
503 :02/10/22 21:12 ID:???
> <>は、htmlでは <> に変換されるから ぉぃぉぃ、俺は &lt;&gt; って書いたはずだぞ。 2chは & を & に変換しないのか?
>>507 言いたい事はわかるが努力が足りないようだ。
ようだ。
510 :
503 :02/10/22 21:50 ID:???
書き直し。。これでいいかの?
>>508 > <>は、htmlでは <> に変換されるから
ぉぃぉぃ、俺は <> って書いたはずだぞ。
2chは & を & に変換しないのか?
512 :
508 :02/10/22 22:16 ID:???
>>510 合格。だけど何かが足りない、何かが・・・
513 :
nobodyさん :02/10/23 00:49 ID:y/QVQMdn
もれは大量の改行とか以外は、投稿内容を as is でログに保存する ことにしている。 読み出すときに、<>&"'などを「&xx;」に変換して表示するようにしている。 のでデリミタを<>はしないです。
デリミタごときで2バイトも使うなと言う意見が…
漏れのデリミタ変遷 \t オーソドクスに ↓ , CSV ↓ | psqlマンセー ↓ <> Kentさん好き!! ↓ Unicode NULLモジ ↓ \t に戻る。
\tだと、ファイル見た時に横に長くなって見づらくねぇ?
項目の長さが違ったらずれるじゃん
520 :
nobodyさん :02/10/23 13:02 ID:knm2mfqY
ある連想配列に対して、array_pushのように、 末尾に要素を追加するにはどうすればいいのでしょうか?
>>520 $hoge_array[newkey] = 'newvalue';
ありがとうございました。 一応参考程度に自分がやったソースを・・・。 <?php $test = explode("/",$HTTP_USER_AGENT); if ($test[0] == 'DoCoMo')//←i-mode閲覧 { ●●● } else//←PC閲覧 { ○○○ } ?> 汚してすいません。
WebARENA使ってるんですが、そこのPHPは普通と違ってCGIで動くので ファイルの先頭に#!/usr/local/bin/php4が必要だったりして、 Apacheの一部として動作するPHPと違ってたりするので、 PHP関連の書籍とか見ても、それに触れてるものを見かけません。 CGIでPHPを使うことに関して詳しいHPとか書籍とかあったら教えてください。
524 :
458 :02/10/23 21:10 ID:???
$ua = array("DoCoMo", "PDXGW", "ASTEL", "J-PHONE", "UP.Browser", "Lynx"); foreach ($ua as $val) { if (preg_match("/$". $val ."\//", $_ENV['HTTP_USER_AGENT'])) { $pda = true; break; } } if ($pda === true) { 携帯端末用処理; } else { 一般向け処理; } マニュアルにはPOSIX準拠のeregよりもpregの方が早いと書いてある。
525 :
nobodyさん :02/10/24 05:31 ID:5F/44dYx
526 :
nobodyさん :02/10/24 06:13 ID:kpV1tydg
FORMにこのようにcheckboxを書いてPOSTすると、 同じ名前の最後の項目しか表示されません。何が悪いのでしょうか? <input type="checkbox" name="1" value="あ"> <input type="checkbox" name="1" value="い"> <input type="checkbox" name="1" value="う"> <input type="checkbox" name="1" value="え"> foreach($_REQUEST as $key => $value) { if($key == "1") { print $value; } //項目1を表示 }
527 :
526 :02/10/24 06:15 ID:kpV1tydg
>>526 同じ名前の最後の項目しか表示されません
↓
同じ名前のチェックした最後の項目しか表示されません
の間違えです。
whileでループさせても同じ結果です。
528 :
nobodyさん :02/10/24 07:54 ID:uytwvD+v
ひとつ質問なんですが、 PHPのincludeを使ってXSLを呼び出すことはできますか?
>>526 <input type="checkbox" name="1[]" value="あ">
<input type="checkbox" name="1[]" value="い">
<input type="checkbox" name="1[]" value="う">
<input type="checkbox" name="1[]" value="え">
それと、nameに数字はよろしくなさげ
$1とすると別の解釈される場合もあったような・・・
>>526 name="name[]"
で配列にしろ
532 :
531 :02/10/24 08:23 ID:???
ここの板でかぶるなんて珍しい。
533 :
nobodyさん :02/10/24 12:58 ID:7cFeMhsm
JavaでStringを文字列連結していてパフォーマンスが落ちてしまい StringBufferで解決したという経験がありました。 PHPでは . で連結するよりよい(軽い)方法は 用意されていないのでしょうか? . 連結でもさすがにJavaほど重くならないようですが。
534 :
nobodyさん :02/10/24 14:09 ID:rG1bP6Cf
MAC OSXで IEやNNの右上についているツールや履歴の表示非表示を切り替えるボタンって 無効化できますか? javascript の Openwindow()でツールバーやURLの表示無しオプションで コンテンツ表示しているのに、そのボタンでURLなどが表示されてしまいます。 FLASHのゲームコンテンツなど、このボタンのおかげで困るケースがあります。
536 :
nobodyさん :02/10/24 15:35 ID:F6+LZK6Z
>>533 ソースを見たわけじゃないんだが、phpはデフォルトでStringBuffer相当の
動きをしているのではないかとおもふ。
538 :
nobodyさん :02/10/24 16:16 ID:IkTbxMct
PHPってファイル書き込みで配列を書き込むことってできないの? 見たらArrayって入れられてたんだけど(fputs(),fwrite())
540 :
526 :02/10/24 17:44 ID:kpV1tydg
>>530 あーそうなんですか。なるほど。
perlのときはそれでいけたような気がするけど。うーん。
すいません、教えてください。 mb_send_mail で添付ファイルを送信するやり方がよくわかりません。 どのように指定すればよいのでしょうか?
マニュアル嫁。
543 :
nobodyさん :02/10/24 20:52 ID:Ya2zNF/W
unset()の使い道って何? 変数を破棄すると、どんな利点があるの? 例えば、メモリが解放されるとか? <- この考えであってる?
>>536 どうなったんだ?活動やめちゃったのか??
545 :
hmk :02/10/24 23:00 ID:???
>>543 たとえば、ループ毎に、一時的に使っている配列を初期化したい場合とか、かな?
>>543 普通の変数を破棄するときはあまりないけど、配列を弄っているとき
例えば不必要な要素を破棄して並べ替えみたいなときに、たまに使う。
モジュールで動かすときってCGIで動かすときと違って何か気をつけなければいけないことってあるんですか? 負荷軽減のスレでちょっと話題になりかけていたんですが。
548 :
538 :02/10/25 00:46 ID:AgSiPFdD
何度もスミマセン
>>539 ありがとうございます。
これで保存はちゃんと出きるようになりました。
けど読み込みが上手くできません。。。
色々実験してみたんですが、
$file = file($filepath);
というように読み込んだ場合、配列として代入されるため
$file = unserialize($file);
としてもうまく動かないようなのですが。。。
とりあえず配列$fileを更にシリアル化して変数に直し、
それをunserialize()で配列に戻して、更にその要素をunserialize()で戻して
ファイルの各要素を取り出すという効率無視の処理をしているんですが、
何かもっと効率のいい方法はないでしょうか。
$file = file("$filepath");
$file = serialize($file);
$file = unserialize($file);
$file = unserialize($file[0]);
549 :
538 :02/10/25 00:47 ID:AgSiPFdD
>>548 訂正(するまでもないですけど
× $file = file("$filepath");
○ $file = file($filepath);
550 :
荒川太郎 :02/10/25 12:33 ID:ykDTClkj
Linux の PHP から 他サーバーのOracleにアクセスしたいのですが、やっぱり、 オラクルクライアントが入ってないと、アクセスできないでしょうか? 自分の環境で試したところ、PHPをコンパイル後なら、$ORACLE_HOMEの中にある、 Network と sqlplus の二つのディレクトリが残っていれば動きましたが、他の環境に そのファイルを単純にコピーしても動くか疑問なのと、ライセンス違反のような気がす るので、できればOracleクライアントなしで接続できればと考えています。
551 :
538 :02/10/25 12:34 ID:AgSiPFdD
>>548 我ながら意味不明なことしてました。
スマソ
552 :
nobodyさん :02/10/25 14:40 ID:iOPLrEsc
ファイルのダウンロードをさせたくて以下のスクリプトを使っています。
http://php.s3.to/data/#dl PHPを使ってasf(or asx) ファイルを再生させずに
ダウンロードさせたいのですが
asfの場合プラグインが動いてしまい再生が始まってしまいます。
asxの場合プラグインが反応し再生されません。
どうしたら良いのでしょうか?
>>552 拡張子で判断するのはIEなのでPHPではどうしようもない。
「IE の場合は、"対象をファイルに保存"で保存して下さい。」 とか書いてみる。
>>552 出力時のヘッダーをいじる。
糸冬りょーー
557 :
61 :02/10/25 19:35 ID:???
<TITLE>の中身取り出しの問題は解決しますた。ありがとうございました。 ご報告が遅れました。ナマケモノレススマソ…。
>>552 header("Content-type: video/x-ms-asf");
header("Content-Disposition: attachment; filename=hogehoge.asf");
/* asf の内容 */
register_globals って、みんな、OFF にしてるもんなの?
>>559 4.2.0以降導入で、php.ini-dist, php.ini-recomendedをベースに
php.iniを作成した奴でregister_globalsを知らない奴はOFF
4.1.0以降4.2.0未満導入でphp.ini-distベースならOn、
php.ini-recomendedベースならOff
それ以前は、On
最近の厨は、Offだけど、Onが標準だったときのスクリプトを
拾ってきて質問しまくり
過去の資産のしがらみでOnは結構いる
厨と、まじめにセキュリティ対策を兼ねてコーディングを修正
したところはOff
厨が増加しているからOff比率も上がってるはず、たぶん
>>560 漏れは、Onの時のスクリプトの先頭に
import_request_variables を書き加えているだけで
よしとしていますが、やばいですか?
新規スクリプトでも$_POST['']とか書くの面倒なので
import_request_variables 使ってます。
php3もつかってるでし。
>>561 別にかまわんが、
<?php
// $debug = 1
if ($debug = 1) {
// coding for debug
// みちゃだめよデータ表示部分
}
// 後のコード
?>
みたいに未代入の変数を0と仮定した様なコーディングしてると
import_request_variablesはregister_globals=Onと一緒で意味無し
ttp://localhost/test.php?debug=1 でアクセスされると見えちゃう。
だから、未代入変数の評価が無いようにコーディングできるなら
register_globals=Onでもいいが、ケアレスミスの防止のためにも
_POST/_GET/_COOKIE['hoge']を使っておくのが安心なわけ
まじれすしてしまった
563 :
561 :02/10/25 22:19 ID:???
>>562 なるほど、
これからは$_POSTなどを使うようにします。
今までは、たとえばDBをいじるときなど(つまりSELECT以外)のときは
POSTしか受け付けない、といったポリシーで構築していたのですが、
その場合のみimport_request_variablesを使わないようにしていました。
import_request_variables の代わりに
function hoge ($label) {
if (@$_POST[$label]) {
$$label= $_POST[$label];
}
}
という風に問題のないものだけインポートするというのはだめですか?
564 :
561 :02/10/25 22:32 ID:???
それから、関連質問ですが、 たとえばその値がPOSTされたモノでもGETされたモノでもいいけど、Cookie では困る。という場合は import_request_variablesでは困るわけですね。 でも、 if (($_POST['hoge'] == "bar") || ($_GET['hoge'] == "bar")) { hogehoge; } とするのはあまりにも面倒です。 この場合、セキュリティーを考慮しつつ、ミニマルエフォートでかいけつするにはどうしたらいいですか・ よろしくお願いします。
>>564 variables_order と $_REQUEST でどうよ。
566 :
nobodyさん :02/10/25 23:32 ID:8xkByx7Q
$_GET['id']が必須な場合で、値が渡されていない場合、 default値をあげたいのですが、 if(!isset($_GET['id']) if(empty($_GET['id']) if ($_GET['id'] == "") のどちらが望ましいですか?
567 :
nobodyさん :02/10/25 23:34 ID:0gq4LIHA
>>566 ケースバイケース
ってか、必須項目ならそれ以前に大切な事があるだろう。
無料垢でSOCKET使えるトコてなくなってしまったんでしょうか・・。 誰か知ってたらこっそり教えてください。 言語は日英独のいずれかで。
>566 必須か必須でないの2択だけなのなら $var = (empty($_GET['id'])) ? 'デフォルト値' : $_GET['id']); って記述は良く使うかも。
>>561 『PHP4徹底攻略実践編』の「セキュリティの確保」の章を一読することを
はげしくオススメ。
わかりやすいよ。
572 :
nobodyさん :02/10/26 19:11 ID:cHKiK7hP
573 :
nobodyさん :02/10/26 19:25 ID:yRABunW1
$a=0; $b=""; で、$aと$bを判別する方法はありますか?
575 :
さるる :02/10/26 20:20 ID:???
576 :
573 :02/10/26 20:37 ID:yRABunW1
>>574 $a=0;
$b="";
if($a==NULL) echo '$a==NULL<br>';
if($b==NULL) echo '$b==NULL';
を実行すると、
$a==NULL
$b==NULL
と表示されるんだけど、なんか間違ってる?
577 :
573 :02/10/26 20:45 ID:yRABunW1
$a=0; $b=""; if(is_null($a)) echo 'is_null($a)<br>'; if(is_null($b)) echo 'is_null($b)<br>'; では、何も返さなかったです。
578 :
573 :02/10/26 20:49 ID:???
解決。var_dumpで方を調べればOKでした。
579 :
573 :02/10/26 20:50 ID:???
方→型です
PHP/4.4.0-dev ってどんなVerなの? 今最新が4.3.0なのに それの上があるの?
>>580 後ろの -dev が全てを語ってると思うが・・・
作ってみましたっていって半年後に消える鯖の多いこと多いこと。
583 :
nobodyさん :02/10/26 23:20 ID:VJjRzkAf
>>582 かれこれ無料サービス5年目ですがなにか?
>>583 ちなみに1つの場合ってどうやってんの?
>>583 ereg_replaceかpreg_replace1を使えば一発やん。
587 :
583 :02/10/27 00:29 ID:QX87Ao09
>>585 しょぼいですが、こんな感じです
if(ereg("
http:// ",$done)){
$ldone = $done;
// URL
$urladd = mb_ereg_replace("[^0-9a-zA-Z\/:.]","",$ldone);
// LINK
$mdone = "<A HREF=\"".$urladd."\" target=\"_blank\">".$urladd."</A>\n";
$new .= mb_ereg_replace($urladd,$mdone,$done);
}
588 :
583 :02/10/27 00:38 ID:QX87Ao09
>>586 1行に1つ以上ある場合の処理が…わかりません。
パターンマッチした回数を取れれば、それをfor文で書けばいいのか。
でも、$number = ereg("
http:// ",$text);
$textに2つurlが入っていてもなぜか$numberには1しかはいらない。
>>588 for文とそんなんじゃない。
一行のereg_replaceで全て差し替え出来ます。
がんばれよ。
590 :
583 :02/10/27 00:44 ID:QX87Ao09
>>589 了解です。
できるがわかったのでがんばってみます。
ありがとうございました。
PHPでシンボリックリンクを生成する構文があれば教えて頂けますか?
592 :
582 :02/10/27 01:12 ID:???
>584 なんのこっちゃ。
593 :
hmk :02/10/27 02:06 ID:???
>591 マニュアルよめ そのままズバリな関数あるだろ
>>573 ===(=3つね)を使えばいいんでないの?(php3だと使えない気もしたけど)
596 :
583 :02/10/27 08:58 ID:QX87Ao09
昨日挑戦してたんですが、できませんでした。 どうしても、1つの行に違うURLがあると、一度のmb_ereg_replaceで 変更できませんでした。 何かヒントをもらえないでしょうか?
>>596 あなたが、
>>587 で書いたパターンを使うと、
$html = ereg_replace(
'(
http:// '.
'[0-9a-zA-Z\/:.]*)',
'<a href="\\0" target="_blank">\\0</a>',$text);
かな。
\\0ってのがみそ。マニュアルをもっと読もうな。
後はマッチパターンをぐぐるかRFCを読んで精度をあげてな。
がんばれよ。
598 :
nobodyさん :02/10/27 11:38 ID:Xr/mnh9j
性器表現ひとつに無駄スレするな!
599 :
583 :02/10/27 22:53 ID:QX87Ao09
>>593 ありがとうございます。
マニュアルに載っているものを質問してしまい
申し訳ありませんでした。
600 :
nobodyさん :02/10/28 00:37 ID:omMjIkHW
今までPerlでやっていたのですが、今回PHPで掲示板を
作成しようと思っています。
そこでjcode.pl(文字コード変換)を使用していたのですが、
以下のサイトを見たところ
>
ttp://dokokano.com/php/php_charset.html >出力をShift_JISにする場合は、入出力部分の文字コード変換のためのコードを書く必要があります。
ということは、EUCにすればurldecode関数によって
QUERY_STRINGの内容を日本語に変換することが
できるということでしょうか?
601 :
nobodyさん :02/10/28 01:13 ID:K9SZmaup
>>600 素直に新しめのバージョン(マルチバイト対応)使ったら?
どうしてもURLを変換したいってわけでなければ リクエストを変数に入れてから変換するのが扱いがラク。 /* EUC-JPからSJISに変換 */ $str = mb_convert_encoding($str, "SJIS", "EUC-JP"); /* SJISからにEUC-JP変換 */ $str = mb_convert_encoding($str, "EUC-JP", "SJIS");
604 :
nobodyさん :02/10/28 04:19 ID:RrSU6wqc
掲示板を作って今まで使っていたのですが、 フォームから送る値に「+」を含むと、 それが空白になってしまうことが分かりました。 以下のテスト用ファイルtest.phpでテストしても、 やはり空白になります。 <?php echo $_GET["var"]; ?> <form method=get action="test.php"> <input type=hidden name="var" value="test+test"> <input type=submit value="go"> </form> これはどうすればいいのでしょうか?
605 :
nobodyさん :02/10/28 04:34 ID:eMSdzrbE
みなさんmail()でメール送信すると 本文は改行から始まりません? mb_send_mail()だと先頭に改行は付かないんですが、 mail()でも改行から始まらないようにするのはムリですか?
%2B
>>604 しっかりtest+testと表示されますた。
>>605 mail()使ってますが、そんな現象は起こっていません。
PHP Version 4.1.2
色々なファイルロック方法がありますが、 (flock, mkdir, symlinkなど) どのロック方法が一番良いのでしょうか。 実際にスクリプトを作っている方はどの方法を 使っていますか?
609 :
nobodyさん :02/10/28 12:42 ID:KUu9Ng1N
>>605 あー俺昔それで同じ質問した記憶があるわ。
結局何が原因だったのかはちょっと思い出せないけど、結果のレポートも
してあるはずだから、このスレの過去ログをmail()で検索すればどっかにあると思う。
610 :
604 :02/10/28 14:50 ID:RrSU6wqc
>>607 まじっすか? ソース見ても空白になってます。何でだろう??
>>606 ヒント?
確かにgetで渡されてるURLのパラメータみたら%2Bと表示されてるけど、
$_GETに入っている値が既に空白なのでどこで直せばいいの?って感じです。
設定が間違っているのだろうか…鬱
>>604 "URLエンコード"あたりで検索シル!
612 :
604 :02/10/28 18:26 ID:RrSU6wqc
連鯖と構成を同じにしていたはずのテストマシンで 試してみたら正常に動作したので、あれ? と思って調べると、 連鯖→4.2.3 テストマシン→4.2.2 だったので、4.2.2に直すと、正常に動作しました。 本当に4.2.3固有の問題なのかは分かりませんが、 動いたので良しとしまする。
613 :
nobodyさん :02/10/28 19:58 ID:OVLPNyBE
うまくいかずに困ってます。是非、ご教授ください。 バックグラウンドでプログラムを走らせる実験として test.phpというプログラムとtest_back.phpという プログラムを作りました。 =======test.php========== <?php system ("/home/sites/home/test_back.php > /dev/null &"); echo "OK"; ?> =======test_back.php======== <?php sleep (30); ?> ===================== という風に、test.phpから、test_back.phpを 呼び出して、30秒間sleepするものです。 しかし、ps で確認しても、うまく呼び出されていないようです。 そのため、test.phpのほうの > /dev/nullを抜いて試してみた のですが、すぐにOKが表示されるので、やはり呼び出されていないようです。 色々と調べて、自分では、間違っていないつもりなのですが、 問題点が、分かりましたら是非、教えてください。お願いします。
614 :
nobodyさん :02/10/28 20:39 ID:h954DWc8
普通にリンクすれば それともネタ
615 :
605 :02/10/28 21:06 ID:???
>>609 過去ログ見ました!
解決しました。
メールのヘッダの最後に改行があると、本文の頭に付いちゃうのね…
俺の場合、追加ヘッダの最後の改行を取ったら解決しました。
ありがとうございました。
616 :
613 :02/10/28 21:18 ID:OVLPNyBE
>>614 ネタじゃないです。本当にやりたいことは別にあるのですが、
それ以前に、プログラムがうまく動かないので、問題の洗い出しのため
簡単にして試してるだけです。
このシンプルなコードでさえ、動かないので・・・(・ω・)
すいませーん世界の皆さん。 tmpfile();でできたファイルの名前を取得する術はないのでしょうかー。
618 :
nobodyさん :02/10/28 21:56 ID:h954DWc8
手元に本あるか。
HTML入門
PHP入門
PHP文法書
■ グロバールリンク
ある別なサイトへリンクする際に使用します。リンク先のURLは(
http://で始まる )で入力します。
<A HREF="★">〜</A> ★=URL
又、<A HREF="★">内にTARGET="_blank"を設定するとリンク先のページが、新しいWIndowを開いて表示されます。〜には、リンクを示す文章を入力します。
>>617 最近の若いもんはマニュアルが読めないのか?
漢字が分からんのか?
ひらがながわからんのか?
まあ、術と言っちゃなんだが、
マニュアルの 「XXXファイルシステム関数」 を見れば答えが見つかるかも知れないな。
お前誰だ?誰に答えてるの?
621 :
nobodyさん :02/10/28 22:51 ID:h954DWc8
itbost/php/ system 関数や、exec 関数の関数リファレンスを見ると、 次のような記述があります。 「この関数を使用してプログラム実行を開始し、 バックグラウンドで実行したままにしたい場合には、 プログラムの出力をファイルまたは他の出力ストリームに リダイレクトする必要があることにも注意して下さい。 さもないと、PHPはそのプログラムの実行が終了するまでハングします。 」 この文章の意味は、下記のプログラムのように記述しなさいという意味です。 system("/home/your/bgprog $arg1 $arg2 > /dev/null &");
622 :
613 :02/10/28 22:58 ID:OVLPNyBE
>>621 有難うございます。でも
>>613 の通り
リダイレクトしてるつもりなんですが、それでも駄目みたいです。
>>622 test_back.php のパーミッションは?
624 :
nobodyさん :02/10/28 23:36 ID:h954DWc8
test.phpからtest_back.phpをincludeすれば呼べるが system関数は外部プログラムを呼ぶための・・・ 何で、Webホルダーのphp自身を呼ぶの
625 :
613 :02/10/28 23:56 ID:OVLPNyBE
>>623 644で駄目だったので、755にしました。
>>624 本当は、ブラウザからだとタイムアウトになるかな?程度の数の
メールマガジンを発行するようなシステムにしたいのです。
それがうまくいかず、プログラムを削っていったら、こんな形に・・・。
これって、ブラウザからでもコマンドラインからでも駄目なのですが
なぜでしょうか?
>>625 cgi版かcli版のphpはインスト済み?
それと1行目に
#!/usr/bin/php
とかが必要。
もしくは、
system("/usr/bin/php /usr/sites/home/test_back.php .....
で実行するかだな。
627 :
nobodyさん :02/10/29 00:09 ID:TKErwWFl
プロセス残るが実行できた <?php system ("C:\WINDOWS\NOTEPAD"); echo "OK"; ?>
628 :
613 :02/10/29 00:52 ID:TzxoQcf+
>>626 どうも有難うございます。コマンドラインからの実行の際は
#!/usr/bin/php の部分が抜けていました。
その点を修正して、試しに、パーミッション777にしてroot権限で
実行してみましたがそれでも、Permission denied になってしまいます。。
これは、プログラムではなく、何かシステム的に原因があるのでしょうか?
>>628 なぜ、Permission denied かわからんが、試しに
which php
と打つとどぉよ。
631 :
613 :02/10/29 11:13 ID:TzxoQcf+
>>629 さん
which php で帰ってきたパスは
/usr/local/bin/php です。
1行目のこのパスを書いてますが。それでも駄目みたいです。
>>631 /usr/local/bin/php /usr/sites/home/test_back.php
ならどうよ?
>>613 $ /home/sites/home/test_back.php
の実行結果は?
まず単体で動いてる?
634 :
613 :02/10/29 12:23 ID:TzxoQcf+
>>632 試してみましたが、駄目みたいです。
>>633 コマンドラインからだと動いてません。
ブラウザからだと、ちゃんと動作します。
試しに、シェルスクリプトで試してみたところ動作しました。
=test2.php=========
<?php
system("/bin/sh ./sleep.sh &");
echo "OK send.php<br>";
?>
=sleep.sh=========
sleep 5
==============
phpをコマンドライン上から実行できないのが原因でしょうか?
635 :
633 :02/10/29 12:36 ID:???
>>634 >phpをコマンドライン上から実行できないのが原因でしょうか?
そうでそう。
636 :
nobodyさん :02/10/29 12:58 ID:wf/l5by6
利用するサーバでmagic_quotes_gpcがオンかオフかを調べるにはどうしたらいいですか? この設定によってaddslashes()をするかどうかを分岐したいので。 magic_quotes_gpcがオンの場合でaddslashed()しちゃうと2回エスケープしちゃいますよね。
>>636 var_dump(ini_get("magic_qoutes_gpc"));
string(0) is global value
string(1) is local value
どのバージョンから使えるかはしらんです。
>>636 phpinfo()は一通り目を通しておけ。
639 :
636 :02/10/29 13:48 ID:wf/l5by6
641 :
nobodyさん :02/10/29 16:28 ID:tR/mb4fj
PHPスクリプトが実行できません。 Apacheの設定ファイルにも AddType application/x-httpd-php .phpって追加したけれど 表示されません。どうしたら表記できるでしょうか? 誰か教えてください。
642 :
PHPの日本語 :02/10/29 16:37 ID:vXsUrIJb
とあるサーバで今PHPのプログラムを動かすテストをしているのですが、 なぜかPHPのスクリプトが記述してあるファイルはEUC/LFでないと文字 化けしてしまいます。しかし、ブラウザのエンコードを見るとシフトJIS なんです。 同階層にあるHTMLファイルはSJIS/CR+LFで全然問題ありません。 別の僕が構築したテスト用サーバではPHPのファイルがSJISでも全然問題 ないのですが? どういう状況なんでしょう?
644 :
613 :02/10/29 17:17 ID:TzxoQcf+
>>643 php -v
bash: php: is a directory
とでました。レンタル鯖なのですが、php のインストールの仕方に
問題があるんでしょうか?
>>644 はへ?
/usr/local/bin/php -v
では?
/usr/local/bin/php のパーミッションも。
レンタル鯖の設定で実行させないようにしているのかもね。
646 :
613 :02/10/30 02:35 ID:NfkYl6Lz
>>645 これもやっぱり
bash: /usr/local/bin/php: is a directory でした。
ディレクトリの中身はこんな感じでした。何が問題でしょう?
drwxr-xr-x 2 root root 1024 Jun 7 13:57 .
drwxr-xr-x 3 root root 1024 Jun 7 13:57 ..
-rwxr-xr-x 1 root root 10018 Mar 5 2002 pear
-rwxr-xr-x 1 root root 4325 Mar 5 2002 pearize
-rwxr-xr-x 1 root root 500 Mar 5 2002 php-config
-rwxr-xr-x 1 root root 593 Mar 5 2002 phpextdist
-rwxr-xr-x 1 root root 700 Mar 5 2002 phpize
-rwxr-xr-x 1 root root 5088 Mar 5 2002 phptar
/usr/local/bin/phpはディレクトリなのでは? Apacheモジュール版のPHPじゃないの?
648 :
613 :02/10/30 03:28 ID:NfkYl6Lz
>/usr/local/bin/phpはディレクトリなのでは?
>Apacheモジュール版のPHPじゃないの?
/usr/local/bin/php のディレクトリの中の中身が
>>646 です。
>>647 さんのいうように、Apacheモジュール版のPHP
じゃないってことが原因?
>>648 のようですな。(ぉィぉィ)
つうことで、wgetを使いませう。
system ("wget URL/test_back.php > /dev/null &");
650 :
nobodyさん :02/10/30 13:43 ID:dL3lvkbY
php初心者で何も分からないので聞きたいのですが <php? hogehoge ?>だったら動くのですが<? hogehoge ?>が動きません。 現在の環境は、VineLinux2.6+Apache/1.3.26+PHP/4.2.3です。 原因を教えていただけると幸いです。 どなたか宜しくお願い致します。
>>650 <php?じゃ動かんでしょ。<?php
php.iniのshort_open_tag = Onになってる?
653 :
nobodyさん :02/10/30 14:03 ID:LfLiEMda
>>651 さん
short_open_tag = Onで解決しました。
お騒がせしました。
配列から指定した値のものを削除したいのですが、 どうすればよいでしょうか? 私の見た限り、ズバリな関数はマニュアルには載っていませんでした。
>>654 マニュアルには載っていませんって、すげぇな。
全て読んだってことだろう。
657 :
YAHOOO情報 :02/10/30 15:53 ID:9DFYsx8y
658 :
nobodyさん :02/10/30 18:56 ID:4q8hzZpW
>>654 array_spliceとかarray_sliceとか
659 :
nobodyさん :02/10/31 01:40 ID:yMK1gcv2
phpで最強のアクセス解析誰かおしえてください。 最低、生ログ(訪問回数含)が見れればいいんだけどね。
660 :
nobodyさん :02/10/31 04:15 ID:YDMbLtmR
>>659 $_SERVERをマニュアルで探してみる
661 :
ノンノン :02/10/31 11:16 ID:Gi8DIir1
会員登録が必要なサイトの作成にあたってます。 で、ログイン時にIDなどをセッションレジスタに取り込んでいるのですが、 個人情報の更新する時にSSLを使用するとセッションの内容がなくなって しまってるんです。「セッション切れ」とでも言うのかな? SSLへセッションを引き継ぐにはどうすれば良いのでしょうか? おわかりになられる方がいらっしゃいましたらお教え願います。 ヨロシクお願いします。
663 :
ひよこさん :02/10/31 21:39 ID:XxGc2Q67
PHPってなんですか?
出版社です。
>>661 ,662
扱い上は別のホストに移ってるのと等価だから、セッション変数を受渡しできる方がまずい。
ホストを跨ぐようなデータのやりとりをしようとする事がそもそもの間違いだと思うんだが…
>>666 PHPのセッション処理はホストを跨いでやり取りできないようになっている。
勿論、セッションIDも他のホストに晒すものではないが、
信頼できる同一ホスト上で、別ホストとみなされてセッションが引き継がれ
ないのを何とかしたい。
ってのは、間違いではないと思うが、どぉよ。
668 :
nobodyさん :02/11/01 14:29 ID:rT5mgBbe
今週の範囲(例:10/27-11/2)を求めるコードを作ろうと 思っているのですが、どのような形で作ればよいか教えてください。
669 :
nobodyさん :02/11/01 15:22 ID:sjfqb6HL
>>668 $now = getdate();
$today = mktime(0,0,0,$now['mon'],$now['mday'],$now['year']);
$start = $today - 86400 * $now['wday'];
$end = $start + 86400 * 7 - 1;
echo date("Y/m/d",$start) ." - ". date("Y/m/d",$end);
670 :
nobodyさん :02/11/01 15:53 ID:t42zlzPT
>>669 スマートなコードありがとん。
自分で作ったら50行ぐらいになったYO!!
>>671 その50行のコードを書き込んでください。
後学のために
糞コードになりますた(;´Д`) インデントがタブなので書きこむと無くなるため見にくいと思いますが、、 後学のためにもならないと思います(;´Д`) //today $today = getdate(); //月の最大日 $maxday_array = array(0,31,28,31,30,31,30,31,31,30,31,30,31); //うるう年チェック if( !( $today['year'] % 4 || $today['year'] % 100 ) ) { $maxday_array[2] = 29; }
674 :
続き :02/11/01 17:15 ID:???
//開始月日を求める $d_sabun = $today['mday'] - $today['wday']; if( $d_sabun < 1 ) { $m_sabun = $today['mon'] - 1; if( $m_sabun < 1 ) { $st_m = 12; }else{ $st_m = $m_sabun; } $st_d = $maxday_array[$st_m] + $d_sabun; }else{ $st_m = $today['mon']; $st_d = $d_sabun; }
//終了月日を求める $d_sabun = $today['mday'] + ( 6 - $today['wday'] ); if( $d_sabun > $maxday_array[$today['mon']] ) { $m_sabun = $today['mon'] + 1; if( $m_sabun > 12 ) { $ed_m = 1; }else{ $ed_m = $m_sabun; } $ed_d = $d_sabun - $maxday_array[$ed_m]; }else{ $ed_m = $today['mon']; $ed_d = $d_sabun; } $ed_str = sprintf( "%02d/%02d〜%02d/%02d", $st_m, $st_d, $ed_m, $ed_d );
あぼーん
>>676 >309
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д` ) < 通報しますた!
/, / \_______
(ぃ9 |
/ /、
/ ∧_二つ
/ /
/ \ ((( ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄
/ /~\ \ ( ´Д` ) < 通報しますた!
/ / > ) (ぃ9 ) \_______
/ ノ / / / ∧つ
/ / . / ./ / \ (゚д゚) ツーホーシマスタ!
/ ./ ( ヽ、 / /⌒> ) ゚( )−
( _) \__つ (_) \_つ / > (・∀・)ツーホー!
678 :
497 :02/11/02 00:05 ID:F92LVFOL
PHPとPostgreSQLを別サーバにインストールしたいのです。 その場合、 ./configure の --with-pgsql はどうやって指定すればいいんでしょうか? 本やマニュアルは同一サーバに入れることを前提に書かれているので 調べたんですがわかりませんでした。 やろうとしているのはWeb(Apache+PHP)をグローバルで、 DBを裏側(プライベート)に置こうとしてるだけなので、 特別変わったことをしているわけではないと思うのですが。。
679 :
nobodyさん :02/11/02 00:06 ID:F92LVFOL
あ、497じゃないです。別のスレッドのが残ってた。
680 :
nobodyさん :02/11/02 00:35 ID:xj1s/Rjk
PHP、OKのレンタルサーバーで今まで使えてた スクリプトが急にエラーになったんだけど、さっぱり 原因がわからない。 問い合わせてみたが返事はまだ。。。 なんなんだろ?
>>680 バージョンあげたんじゃないの?
phpinfo();とかでみてみれ
>>678 PHPをコンパイルする時だけ、PostgreSQLをインストールしておくと良い。
PostgreSQLのlibとincludeが必要だから。
>>680 register_globalsとかshot_open_tagあたりが原因っぽい気がする。
683 :
nobodyさん :02/11/02 11:17 ID:VDOgYkQj
>>610 ちょと遅レス気味ながら。
漏れもそれで悩んでる。つか、環境によって違うのね。ローカルのテストサーバ(PHP4.2.2)では
ちゃんと+が残ってるのに、ホスティングサーバ(PHP4.2.3)上では+が消えて空白になる。
rawurlencodeを使っているので、渡している文字列は"hoge%20%2B%20hage"みたいに
なっていることを確認済み。受け取った直後に$_GETを見ると"hoge hage"になってるという
具合。
PHPの設定なのか?とも思うけど、それらしいものが見当たらないように思う。ちなみに、
magic_quote_gpcはどちらの環境でもOn。
PHPのバージョン違いによるものか、それともApacheの設定ということもありうるかもと
思ってるんだけど・・・誰かわかる人いない?
684 :
nobodyさん :02/11/02 11:19 ID:VDOgYkQj
>>683 (自己レス)
うー、よく見たら
>>612 に答えが。
しかしPHPのバージョンを戻す以外に解決法はないのだろうか?
685 :
678 :02/11/02 11:42 ID:F92LVFOL
>>682 ありがとうございます。やってみました。
RPMで、potgresql-develを入れたら/usr/include/以下に
「libpq-fe.h」が入りますね。
あとは --with-pgsql オプションでエラーが消えました。
686 :
nobodyさん :02/11/02 17:19 ID:3DCZqrMj
すいません、マジヒントだけでもお願いします。 mb_send_mailで添付ファイルつけて送らせたいと質問したものですが。 マニュアルを読んで最後の引数になにかヘッダを渡せばいいのかと思い ましたが何を渡せばいいのかわかりません。 なにかヒントでも結構ですので教えてくださいませ、困り果ててしまいました。
PHPのRCバイナリパッケージって何処にあるよ?
690 :
684 :02/11/03 12:50 ID:8T4O8uvO
>>688 これ頭の4バイトが欠けるって話だよね?phpMyAdminが動かないのもこれが原因で、
formタグにenctype="multipart/form-data"をつければとりあえず回避できるという。
これと、漏れの言ってる「%2Bが空白に化ける」という話とはまったく別だと思うのだが・・・
でもとりあえず4.2.3国際版を入れてみるよ。直らなかったら笑いに来るね。
ヒアドキュメント内で定数は使えますか?
>>691 確か使えない。
{ } で括ってもダメだったよな。
693 :
691 :02/11/04 05:49 ID:???
age
695 :
nobodyさん :02/11/07 20:05 ID:ETizMt8f
簡単なプログラムですが、質問があります。 $fp = @fopen( "honya.txt", "r" ); while( $record[] = fgets( $fp ) ); fclose( $fp ); for( $i = 0; $i < count( $record ) - 1; $i++ ) $item[] = split( " ", $record[$i], 11 ); echo "honya".$item[0][0]."hoge"; //echo "honya$item[0][0]hoge"; このプログラムだと出力が($item[0][0]=="xxxxx"だとして) honyaxxxxxhoge と表示されますが、コメントアウトしている方だと honyaArray[0]hoge と表示されます。更にNoticeもでます。(Noticeは設定ででないようにしましたが、、、) なぜでしょうか? 宜しくお願いします。
{}
こうやる派? {$xxx} それともこうやる派? ${xxx} 俺は ${xxx} こうやる派
【質問】 クライアント用の socket を 非ブロックモードに設定するには 現状、 fsockopen系の関数を用いて socket_set_blocking関数を使うしかないのでしょうか。 いや、それでも構わないんですけど socket_createで作ったリソースから非ブロックに切り替える方法はあるのでしょうか? fgets / fputs を使うのが気持ち悪くて…。 でも socket_set_timeout は fsockopen系ですし… 素直に fsockopen系を使った方がいいのでしょうか。
… fsockopen + socket_set_blocking(FALSE) してみても 何もメッセージが1つも着てない状態だと feof で 止まる……寝よう。
701 :
695 :02/11/08 09:36 ID:???
ありがとうございます。解決しますた。 ${$a[1]}と${$a}[1]の差と同じ事ですね。 Cからきたので、混乱しておりました。
702 :
(ふ) :02/11/08 14:39 ID:???
>>699 さん
なんだかお困りのようなのですが、僕の環境(php 4.2.2)では
<?php
$fp = fsockopen("www.php.net", 80);
socket_set_blocking($fp, false);
if (feof($fp)) {
print "eof\n";
} else {
print "non-eof\n";
}
fclose($fp);
?>
で普通にnonblockingな動作をしてくれています。なお、お気持ちは分かりますが
socketモジュールをお使いになるのはまだお勧めできません(ころころ仕様が変わるので)。
ちなみに4.3.0からstream_set_blocking()が正解になります。
てわけで環境を教えていただけますか?そしたらもうちょっとお役にたてるかもです。
703 :
nobodyさん :02/11/08 20:23 ID:Vk0CjsjZ
704 :
nobodyさん :02/11/08 20:38 ID:Vk0CjsjZ
705 :
nobodyさん :02/11/09 18:55 ID:QiNeNmkL
JpGraphを使ってグラフを描きたいんですけど グラフを出力するファイルの内容を変更しても 画像が変更されません 例えば付属のサンプルでグラフの数値をいじってみても はじめに表示した値から変わらないのです 別のファイル名にかえてアクセスすると更新された画像になるんですけど・・・ どなたが原因をご存じないでしょうか?
706 :
nobodyさん :02/11/09 20:04 ID:E2/H+5gT
<?php echo "氏んでね?"; ?>
すみません、氏んできます IEのキャッシュとか関係なくて jpgraph.phpのUSE_CACHEをfalseにすればいいんですね すみませんでした
つまり765≠767?
709 :
nobodyさん :02/11/10 05:02 ID:bTPzGvyq
今有料のレンタルサーバーでPHPスクリプトを書いているのですが、 submitした後に、特定の文字に「\」が付いてしまいます。 例えば 「ソース」という語を送信した時に 「ソー\ス」という具合になってしまいます。 どうしてでしょうか。同じ経験をされた方は意見を聞かせてくれないでしょうか。 特に「\」だけをstr_replaceで取り除くことはできなさそうなので困っています。 もしレンタルなのでサーバーに問題があるのならどうしようもないのですが...
710 :
709 :02/11/10 05:06 ID:bTPzGvyq
[補足] 「ソース」という語を送信した時に 「ソー\ス」という具合になってしまいます。 というのは、「ソース」という語を テキストに書き込む時や、 テキストから読み込んで、printする時のことを指しています。
EUC で書けば?
>>710 相変わらずこのネタもいつまでもあるな。
magic_quotes_gpc をOffにするか、
stripslashesをつかう。
>>710 if(get_magic_quotes_gpc ()){ $xxx = stripslashes($xxx); }
こんな感じにしておけば汎用的。
714 :
709 :02/11/10 07:31 ID:bTPzGvyq
どうもご返答ありがとうございます。 少し説明不足だったかもしれませんが、 $mes = htmlspecialchars($mes); if(get_magic_quotes_gpc()) { $mes = stripslashes($mes); }; 一応このように書いていたんですが、「\」が表示されてしまいました。 710さんの言うように一度EUCで書いてみることにします。
715 :
709 :02/11/10 07:47 ID:bTPzGvyq
報告です。 まず文字コードをEUCで書いたところ、問題なく値を渡すことが出来ました。 それで、もう一度コードを見直していたのですが、どうやら思い違いで...。 たしかにサーバー側ではget_magic_quotes_gpc()がオンになっていたようなので これによってstripslashしていたのですが、書き込むという作業だけにしか適応していなかったです... ファイルから読み出すときも必要なんですね...(泣) とりあえず解決できました。どうもありがとうございます。 そもそもどうしてmagic_quotes_gpcがオンになってることがデフォルトなのかわからないのですが...
716 :
nobodyさん :02/11/10 08:17 ID:5LLCZez+
すいませんちょっと質問なんですけど、php作成の話ではないんですが、 海外のphpの掲示板に書き込もうとしているんですけど、画像をアップロードする機能が ついてるんでやってみると 「アップロードされたファイルは有効なGIFかJPGファイルではありません。 それがそうであることを確認して、再び試みてください」 といわれてアップできないんですよね。gifで保存してもjpgで保存しても。 ファイル名はもちろん半角英語だし、cドライブの直下においてアップしたりもしてるのに、、、 これってどういう問題がかんがえられますか? ファイル保存の時の問題?(jpgはjpgでもアメリカの形式は違うとか) よくわからないんでよろしくお願いします。
(笑)
w
719 :
nobodyさん :02/11/10 18:41 ID:bTPzGvyq
h
720 :
716 :02/11/10 20:48 ID:???
すいません、ちょっと他のスレで聞いてきます、ありがとうございました
721 :
nobodyさん :02/11/10 20:57 ID:tAywYbvj
>>721 宣言を文字列で出力するってのはどうよ?
723 :
nobodyさん :02/11/10 21:18 ID:toIJMePB
>>721 寝たでしょうか?
php.iniの設定を見直してみてください。
それか.htaccess内にて(以下略)
724 :
の :02/11/10 22:00 ID:mHx5v26N
<?php echo "<"."?xml"; ?> version="1.0" .....
でいいのでは。
変に設定で逃げると後ではまったりするし。
---
俺的ポータルサイトを作ろう
http://mysite.ddo.jp/
いやぁ、俺も今までショートタグで済ましていたのだが、この機能はOffにして <?php ... にしないとなぁ、と思う今日のこの頃。 でも、<?=...も使えなくなるのは辛い。
726 :
721 :02/11/11 01:22 ID:???
>>723 うっ、何か基本的なことを見落としていたのでしょうか…。
php.iniはいじれません、レン鯖なんで。
.htaccessで設定を変えられるんですか。勉強してみます。
>>721 >>724 文字列出力してみます。
みなさんありがとうございました。
727 :
717 :02/11/11 05:55 ID:???
こんなとこに誤爆してたか。
728 :
723 :02/11/11 20:37 ID:Zxaf1apZ
誤爆ってステキです(ハートマーク)
729 :
aiai :02/11/12 13:11 ID:4eKOLLvz
postしてきたデータを $fp=fopen("php://stdin", "r"); while(!feof($fp)){$buffer.=fread($fp, 4096);} fclose($fp); とかで直接吸い出そうとしたがphp://stdinが空っぽに見えるのだが。 もしかして$_POSTからじゃないと受け取れないの?鬱だ。 フォーム以外からもpostはあるだろうにのお。
>>729 postはHTTPの範囲だな(apache側)。
stdin使うのはコマンドラインだな。
なにか見えてこないか?
>>730 STDINはすでにPHPが読み込んでるので空っぽです
$HTTP_RAW_POST_DATA
は使えませんか。
使えないときは、php.iniがいじれたら
always_populate_raw_post_data = Onに
733 :
問質 :02/11/13 21:09 ID:ldABWSGY
if(&$foo) の「&」とか if(!$foo) の「!」とかですでに躓いているのですが、 逝ってきたほうがよろしいですか?
>>733 逝かなくてよし。その調子で精進すべし。
>>733 ! は簡単だが & は難しいな。
! 否定(論理の反転)
& 参照
まあがんばれや
move_uploaded_fileでTMPからファイルから パーミッションが777のディレクトリの移動したいのですが 移動されたファイルのパーミッションが600になってしまいます PHPでどうやって変更したらよいでしょうか? systemコマンド以外で方法ありませんか?
737 :
nobodyさん :02/11/14 00:17 ID:l0/zicwo
perlで foreach(@array){ ($a,$b,$c)=split(/<>/); } といった コードは phpでは foreach(@array as $value){ list($a,$b,$c)=preg_split("/<>/",$value); } でいいのでしょうか? なんか違うような気がするんですが・・。
>>737 google("PHP", "split");
739 :
nobodyさん :02/11/14 08:26 ID:wyuVakNT
>>737 正規表現使わないんだったらexplodeの方が早い
740 :
nobodyさん :02/11/14 09:18 ID:vniA+Llk
追加書き fopen("file","a") ってデータ飛ばないって本当なんですかね?
741 :
nobodyさん :02/11/14 09:44 ID:/H/milPr
phpで複数のユーザが共通にみれる変数てありませんか? ASPのapplicationみたいなやつ。なんかサポートされていない みたいなんだけどいい知恵ない? やっぱファイルに書き込むしかない(w
ちょい質問です。 レンタサーバのsafe mode on な関係で、CGI版PHPをUPしようとしていますが、 CGI版は、内蔵型PHPに比べ遅いとかありますか? 何か他に注意する問題とかありますか?
743 :
nobodyさん :02/11/14 17:33 ID:l0/zicwo
>>742 かなり遅いと思われ、
それするならperlと変わらん。
abでモジュール版PHPと普通のperlを比べたが
5倍ぐらい違う。
また、PHP アクセラレーターいれると
通常時とくらべて3倍速度が違う。
またCGI版PHPはCGI版perlより遅い、という話もあり
744 :
nobodyさん :02/11/14 17:37 ID:l0/zicwo
追記、レンタル鯖だったら モジュール入れるべきじゃないかなー アクセスが多いとCGI版では プロセスがあがりすぎで やってられないっていうのもある
745 :
nobodyさん :02/11/14 17:42 ID:l0/zicwo
で、ちょっと聞きたいんだけど perlで @array = @array[sort {$array1[$b] <=> $array2[$a] or $array1[$b] <=> $array2[$a]} 0 .. $#array1]; っていうのは PHPでどうかいたらいいんですか??
>>744 お返事thanx
バーチャル鯖だから、モジュール版をインストは無理と思われ。
というか、モジュール版が入っているのですが、safe mode onなのです。
しゃーないので、CGI版を入れるのです。
遅くてもしょうがないです (T.T)
safe_modeの何が拙いんだ?
>>747 動かしたいスクリプトがsafe mode onでは、動かないのです。
外部プログラム(多分C)を動かすため?
サブディレクトリも作ります。
>>732 ありがと。
調べた所.htaccessにphp_flag always_populate_raw_post_data Onとか書くと
使えるようになる最寄。やっぱ低レベルの処理も出来たほうが便利ね。
CGI版 PHPを動かそうとして失敗しました。 ローカルのマシーンRedhat Linux 7.2 で make した php を レンタルサーバ (多分turbo)へFTPして動かそうと思ったら、 ./php.cgi: /lib/libresolv.so.2: version `GLIBC_2.2' not found (required by ./php.cgi) ./php.cgi: /lib/libc.so.6: version `GLIBC_2.2' not found (required by ./php.cgi) と怒られた。ローカルが glib 2.2 でサーバがglib 2.1.3 みたいです。 この場合、自分のところのglib を 2.1.3 に下げて make しなおしするしかないんですかねぇ? それとも configure のオプションで対応できますか?( configure 見てみたけどなさそうな感じではあった。) または、どこかにphpの各種バイナリがあるところはないでしょうか?
751 :
nobadyさん :02/11/14 21:27 ID:itLwLG8U
漏れはWin用バイナリなら配布しているサイトはみっつくらい知ってるけど Linux用はRPMでの配布サイトでいっかしょしか知らない。ゴメソ。
752 :
nobodyさん :02/11/14 21:31 ID:Kk7RsGj1
POSTされた値はフォームのnameと同名の変数(hogeだったら$hoge)に代入 される とどこの解説にもかかれているのですがうちの環境 Win2K&PHP4.2.2 だと$HTTP_POST_VARS[hoge]と配列からしか取り出せません php.iniあたりを弄ればなんとかなるのでしょうか?
753 :
nobadyさん :02/11/14 21:50 ID:itLwLG8U
ためらわずregister_globalsをOnで解決ね、問題ない、たぶん、やっちゃえ〜っ!
754 :
752 :02/11/14 22:29 ID:Kk7RsGj1
>>753 ためらわずにやったらできますた、ありがとうございます
副作用がでるかもしれないのでしばらくは試用しますが・・・
755 :
nobodyさん :02/11/14 22:31 ID:cSFACNwV
for($i=0;$i<=12;$i++){ $foo[$i] = $hoge.$i; } うぅん、こんな感じで作ったんだけど、 何故か$fooの配列になにも格納されない… なんででしょう?
なにをしたいんだ・・・? 例をあげるとレスがつくかも知れん
757 :
nobodyさん :02/11/14 22:52 ID:l0/zicwo
>>755 $hoge.$iが妙に評価されてないか?
758 :
nobodyさん :02/11/14 22:54 ID:l0/zicwo
745だが、俺の質問難しかったかな・・。
759 :
755 :02/11/15 00:01 ID:ZlqtGDCC
>>756 、
>>757 さんありがとう。
ようするに、$foo[0]に$hogeに代入されている文字列と、
0を結合したものを代入したいのです。
それをfor文を使って$foo[1]〜[12]も同じように
繰り返したいわけです…
123456 というやつから 12;34;56 a123456 123456z と言う文字列を作ろうと思うのですが ログに 12;34;56<>a123456<>123456zと書き込んで読み出すのと 123456だけを書き込んで 3つに加工するのとでは どちらがよい処理方法なのでしょうか?
>>759 出し惜しみせず、もっと前後も見せた方が良いんじゃない?
763 :
755 :02/11/15 07:02 ID:fSn6fMud
$today = getdate(); $year = sprintf("%4d",$today[year]); $mon = $today[mon]; $nextyear = sprintf("%4d",$today[year]); $nextyear++; for($i=1;$i<=12;$i++){ if($mon>$i){ $link[$i] = $nextyear.sprintf("%02d",$i); }else{ $link[$i] = $year.sprintf("%02d",$i); } } といった感じで、リンクを作成するスクリプトなんです。 現在の日付を取得して、過ぎた月は「?次の西暦年+月」 現在の月と年内のそれ以降の月は「?今年の西暦年+月」 という風にしたいと思っているのですが…
764 :
755 :02/11/15 07:26 ID:fSn6fMud
あ、最後の「}」はミスです。ソマソ。
765 :
755 :02/11/15 07:27 ID:fSn6fMud
あ、ミスじゃなかった。サマソ。
>>755 $foo = array();
for($i=0;$i<=12;$i++){
$foo[$i] = $hoge;
$foo[$i] .= $i;
}
/* $foo[$i] = $hoge . $i;(半角スペースを間に入れる)でもOKかな? */
PHP4.3.0使ってますが
>>755 のでちゃんと表示されますよ。
768 :
nobodyさん :02/11/15 17:14 ID:mDnEDDpK
PerlでのサブルーチンはPHPではどう代用するのでしょうか?
print と echo は、どう使い分けるのでしょうか。
770 :
nobodyさん :02/11/15 17:18 ID:C04Zmy+e
Flash Player6用の圧縮swfが作りたいんですけど、PHPで出力できませんかね。 具体的に書くと、量の多いテキストデータだけを圧縮した別のムービークリップに別けて おいて、後からその部分を随時差し替えたいのだけど。 テキストデータは掲示板みたいなもんなんで、書き込みがあるたびに内容を随時変更し たんです。 mingじゃまだ圧縮形式はサポートしてないみたいだし・・・。
772 :
770 :02/11/15 18:16 ID:C04Zmy+e
>>771 ご返事ありがとう。
>gzwrite -- バイナリ対応の gz ファイル書き込み
うーん、無理じゃないかと思うんだけどできるの?
圧縮形式の仕様から調べにゃならんかな。
気が重いな、これは。
773 :
age :02/11/15 19:51 ID:???
数値が 3 5 11 のようにタブ区切りで入っているテキストファイルを読み出し 最初の数字を$one 次の数字を$two その次の数字を$three というように数字を変数に入れる方法を教えて頂きたいのですが、、。
>773 公式マニュアルのsplitみれ。
775 :
PHP初心者 :02/11/15 20:24 ID:W2O2vLxr
PHPを覚えたくて、参考書買ったんですが サンプルばかりでチンプンカンプンですヽ(`Д´)ノ ウワァァァン 一から覚えるには、どんな書籍がオススメでしょうか? 雑誌名教えていただけると嬉しいです。 ちなみに当方のスキルは「ショボイホムペ(HTML)」を作れるくらいのレベルです。
PHPは敷居が低い→厨房大量発生・・・・・
777 :
755 :02/11/15 21:19 ID:???
>>766 無事動作しました、ありがとうございました。
>>767 うちの鯖は未だに4.0なんですよ…それが原因なのかどうか。
>>762 PECLに移動され、PHPの公式リリース には含まれなくなりました
779 :
770 :02/11/15 22:41 ID:C04Zmy+e
>>771 ごめん、gzwriteが有効のようですね。
せっかくヒントもらったのに早とちりでした。
何とかその後、圧縮形式はzlibで次のフォーマットというところまで調べました。
・圧縮形式のswfのformat
3 bytes CWS
1 byte version number(06?)
4 byte The size of uncompressed SWF file.(Not just uncompressed block).
remain zlib stream
・通常のswfのformat
3 bytes FWS
1 byte version number(05?)
4 byte The size of SWF file.
remain data
圧縮形式のswfは9バイト目以降が通常のswfをzlibで圧縮して入れてあるというこ
とでいいのでしょうか。
あとは目的のデータがどんな形で収められてるかですね・・・。
しかし、この手のことを手っ取り早く調べるにはどうすりゃいいんだろ。
今は何でもgoogleで必死に調べてますけど・・・。
780 :
nobodyさん :02/11/15 23:45 ID:tDKzSlcQ
>>775 PHP徹底攻略(通称マンモス本)あたりはどうでしょう?
わからなくてもとりあえず何か作ってみるのが近道かと。
で、質問。
複数のURLからデータを取得して成形、という処理をしたいのですが
foreach($url as $value){
$data = file($value);
〜いろいろ〜
}
みたいな処理方法だとひとつのURLからデータを取得し終わったあとで
ないと次のURLのデータが取得できず、非常に時間がかかってしまいます。
(データの取得元がかなり重いサイトなので)
同時に複数のURLからデータを取得するというような動作をさせる方法、
もしくは少しでもデータの取得が高速化できる方法はないでしょうか。
781 :
もん :02/11/16 01:35 ID:PWRTZyjL
メールが届かなかったかった時に、 戻ってきますが、 FROM:を設定しているのに、 戻ってきません。 なぜでしょう。
それは PHP の問題じゃない。
おそらくenvelop fromに戻ってるんだろう。 サーバの管理者に聞いてみれ。 メールログも見れるし、エラーメールも届いているはずだ(w
784 :
775 :02/11/16 07:08 ID:1/sWq2Gm
>>780 さん
サンクスです(≧∇≦)ノ
今日は本屋へ行く日なので探してみますね。
785 :
age :02/11/16 08:56 ID:???
log.txtの中身を配列に入れてprintで片方だけを表示させたいんですが $log = 'log.txt'; $data = fopen($log,"r+"); list($view,$click) = split( ",", $data, 2); print $view; fclose ($data); で実行した時 Resource id #1 とポツンと表示されてしまいます。 どうやったら良いのでしょうか?
786 :
nobodyさん :02/11/16 09:18 ID:6U1hYCr1
>785 二行目おかしくないか?fopenの返り値は int 配列に一括代入するのは fopen($log,"r"); $data=file($log); したらできる ちなみに perlでは @data=<log>; って感じかな。
787 :
785 :02/11/16 10:02 ID:???
>>786 今度はarreyとしか表示されませんでした、、
788 :
770 :02/11/16 10:57 ID:i0v/7za0
やった、できた! ヒント下さった 771様、ありがとうございました。
789 :
786 :02/11/16 12:12 ID:6U1hYCr1
>>787 では
$data = array();
と配列を定義してからやるとどうなるだろうか?
790 :
785 :02/11/16 12:19 ID:???
>>789 ためしに
$data = fopen ($log,"r");
$data = file($log);
print $data;
exit;
print文でテキストファイルの中身を表示しようとしてるんですが
この時点ですでに「Array」としか表示されないんです。
$datas = array(A,B);
$view = $datas[0];
$click = $datas[1];
print ="最初の値は".$datas[0]."です";
とarrayをテキストファイルから読み込まずに、そのまま打つと
うまく表示されたんですが、テキストファイルから読むと「Array」しか
表示されないんです。
792 :
785 :02/11/16 12:52 ID:???
>>791 読んだけど分からないんです・・・・・・・(;;
$data = file('./log.txt'); for($i = 0; $i < count($data); $i++) { $tmp = split(',', $data[$i]); echo "$tmp[0]\r\n"; }
PHPからMySQLにつながりません。 環境は、Win2k Apache1.3.26 PHP4 です。 $con = mysql_connect("localhost","root","******"); if ($con) { mysql_select_db("dbdb",$MyLink); $MyQuery = "SELECT ACCESS_CNT FROM dbdb"; $MyResult = mysql_query($MyQuery,$MyLink); $MyRow = mysql_fetch_array($MyResult,MYSQL_ASSOC); echo $MyRow[0]; mysql_free_result($MyResult); $con = mysql_close($con); } テーブルには1レコード存在し、2522 が入っています。 本来なら 2522 が表示されるはずなのですが。。。 何か設定が足りないのでしょうか。 ちなみに、ApacheとPHPは正常に動作しています。
> PHPからMySQLにつながりません。 どこからそう判断したのか? エラーメッセージがあるなら書けよ。
>>797 エラーです。
Warning: Access denied for user: 'root@localhost' (Using password: NO) in i:\internet\web\vip\mai-k\a.php on line 8
Warning: MySQL Connection Failed: Access denied for user: 'root@localhost' (Using password: NO) in i:\internet\web\vip\mai-k\a.php on line 8
Warning: Supplied argument is not a valid MySQL-Link resource in i:\internet\web\vip\mai-k\a.php on line 10
Warning: Supplied argument is not a valid MySQL-Link resource in i:\internet\web\vip\mai-k\a.php on line 12
>> 798 間違えました。 Warning: Unable to jump to row 0 on MySQL result index 2 in i:\internet\web\vip\mai-k\a.php on line 14 First Name: Warning: Unable to jump to row 0 on MySQL result index 2 in i:\internet\web\vip\mai-k\a.php on line 16 Last Name: Warning: Unable to jump to row 0 on MySQL result index 2 in i:\internet\web\vip\mai-k\a.php on line 18 Address: Warning: Unable to jump to row 0 on MySQL result index 2 in i:\internet\web\vip\mai-k\a.php on line 20 Position:
www.mai-k.net なら笑える。
>>799 の、 FirstName とかは気にしないでください。
ECHO してるだけです。
で、 Warning: Access denied for user: 'root@localhost' (Using password: NO) の意味は調べたかい?
>>802 それはパスワードを指定するのを忘れてた^^;
その他のエラーはなんだろぅ。
>>796 そんなコードじゃmysqlに
どのデータベースの"dbdb"を使うのか
教えてあげられない
入門書でも買うとか。。
806 :
nobodyさん :02/11/17 12:42 ID:YRaU2xF9
何度もすまない つーか @RANKING = $RANKING[ sort {$tmp1[$b] <=> $tmp1[$a] or $tmp2[$b] <=> $tmp2[$a] } 0 .. $#tmp1]; ってなperlの部分をphpになおしたいんだが だれか教えてくれないでしょうか? ここで3日も困ってるっす。
>>806 やめとけ、
今更携帯のランキングサイトなんぞ作っても流行らないからさ…マルチさんよぉ
808 :
nobodyさん :02/11/17 15:21 ID:ZXiBJBMV
配列RANKING = $RANKING[ ソートする { 始めの条件(同じだったら偽になるので、次の条件へ) 次の条件 } } 0からtmp1の最後まで]; 要するに、優先順位がある2つの条件でソートして、配列にいれてるだけ。
フォームからPOST形式で渡されたデータのタグ処理について良い方法はないでしょうか? htmlspecialchars()を使えばいいと思いましたが、スクリプト中に数十個以上あるため 全部をいちいちやってられないのですが・・・ 各変数に勝手に代入されちゃう前に文字列をまとめて処理する方法はないですかね?
入力時にエスケープするというアイディア自体 (・A・)イクナイ!! と思う。
811 :
nobodyさん :02/11/17 16:04 ID:YRaU2xF9
>>807 正直に申しますと
FFアドベンチャーがあまりに負荷が高いと書いてあるので
PHPにしようとがんばっているところです。
>>808 それをPHPで書く良い方法ないですか?
812 :
809 :02/11/17 16:13 ID:???
>>811 おいおい、俺も作ってるんだけど・・・
$_POST = array_map("htmlspecialchars", $_POST);
これで良いのかな。さすが俺。
813 :
808 :02/11/17 16:27 ID:YRaU2xF9
>>812 どのあたりよ?
こっちは250行目のあたりで
悩んでる。
それ以外は ほぼ完成してる
ここの部分ができれば、後はバクだしして おわりっす。
814 :
809 :02/11/17 16:38 ID:???
FFAv0.45か・・・ 俺はma-tiさんの0.47使ってるからな。 クッキー関連とかロック関連とかまだまだだが。 まあ、まだPHP歴3日だし。 配布するつもりはあるのかな?それなら俺作るのやめようかな・・・
815 :
808 :02/11/17 17:30 ID:YRaU2xF9
>>814 公開できるような綺麗なものじゃない
スパゲティーだから
0.45と0.47って どう違うよ?
816 :
808 :02/11/17 17:42 ID:YRaU2xF9
817 :
809 :02/11/17 17:48 ID:???
>>815 >ver.0.47: 2002年4月28日配布開始
>・ソースを最適化して75.2KB→63.1KBに成功!
>・若干早くなったと思います。本当に若干。。。気持ち程度。。。
つまりはあまり変わらないと思う。
俺は公開&配布予定だから、使うんだったら最新版のほうが良いし。
まあ、予定は未定だが。
EBSはプレイしたことないからよく知らん。
818 :
808 :02/11/17 17:52 ID:YRaU2xF9
>>817 ソース公開しますわー
まだ 作りかけのでよいかい?
というか 手伝って
それか ほかに有名どころのゲームをPHPお願いしたい
yomiサーチでもOK
できれば ebs
819 :
809 :02/11/17 18:01 ID:???
>>818 元々俺がPHP化しようとしてる理由は
『自分の改造しまくってるFFAが負荷やばいためPHP化しよう』と思ったが、
既にすごく汚くてとてもやる気がおきなかったため、
とりあえず軽量の原作版から作って
公開してそれから自分の改造したいように変えていこうって考えなわけ。
だからFFA以外は今のところする気はないな。設置してないし。
820 :
809 :02/11/17 18:03 ID:???
因みに最終的にはSQL使おうとまで考えてる。
821 :
nobodyさん :02/11/17 18:06 ID:FpRG38IL
822 :
808 :02/11/17 18:06 ID:YRaU2xF9
PHP化する理由は 無料HPを運営していて あまりにFFAとEBSの設置が多いので 負荷がすごくなり、他のユーザー様にご迷惑がかかるので 必要に迫られて作っています。 言わば逆の立場ですね。お互い。 で どうするよ?
823 :
809 :02/11/17 18:13 ID:???
824 :
nobodyさん :02/11/17 18:34 ID:n7xO86Z7
>>822 完成の暁には漏れに適価で売ってはくれまいか?
825 :
PHP初心者 :02/11/17 19:18 ID:yD7j6+V5
なんだかプロジェクトが始まったようですね。。 皆さん、がんがって下さい(≧∇≦)ノ
826 :
808(さるる) :02/11/17 19:47 ID:YRaU2xF9
827 :
809 :02/11/17 19:54 ID:???
俺は普通にソース公開で配布する予定です。 FFAは改造して何ぼですからね。 FFA推奨委員会も寂れているようなので どんどん推奨していきたいです。
>778 それは知ってるよ……。 とりあえずPECLのmailparse拾ってきて入れてはある。 で、公式サイトmailparse関数下部のスクリプトを走らせたら signal 11吐いてapacheの小プロセスが死ぬ。 コマンドラインから実行するとphpがcore吐いて死亡。 諦めるかな……。
>>822 FFAは負荷もだが、転送量も問題なのだが。
PHPにしようがダメなモンはダメ。
PHPは内部では、 関数名、クラス名、メソッド名の大文字小文字の区別をしないようなのですが、 これを区別させるようにする事は出来ないのでしょうか?
831 :
nobodyさん :02/11/19 03:59 ID:GvT3tsAV
内部というか言語仕様だと思うけど、 区別できれば何かメリットあるの? 自分で読みやすいようにdoSomething(hanyan)みたいにするけど。
832 :
780 :02/11/19 11:50 ID:9dfDoISG
どなたか
>>780 の質問に答えていただけないでしょうか・・・
催促して申し訳ありませんが、よろしくお願いします。
833 :
nobodyさん :02/11/19 12:28 ID:9zdIs68p
PHP-4.2.2−DSOモジュール版とCGIバイナリ(コマンドライン版)−をコンパイルして使用しています。 ブラウザ出力するスクリプト中、shell_exec関数を使ってバイナリ版用のスクリプトを呼び出しました。 <html> <?php $envs=array("QUERY_STRING","REQUEST_METHOD"); for($i=0;$i<count($envs);$i++) { putenv($envs[$i]."=".getenv($envs[$i])); } $str=shell_exec("sample"); ?> </html> #!/usr/local/bin/php -q <?php echo "こんにちは"; ?> ここで上記$strには「こんにちは」が格納されると思ったのですが、 「X-Powerd-By: PHP/4.2.2 Content-type:text html No input file specified.」 という文字列が格納されてしまっています。なぜなのでしょうか? ($envsからの行を加えたとたんに、このエラーが出力されるようになりました) Webで調べたのですが、解決策として示されていた--enable-discard-pathでも解決しません
GDで半角カタカナを出す方法はありますか? ImageString ($im, 11, 10, 10, "オマエモナー", $color); とすると、イメージ内の文字が化けて出てきます。 どなたか宜しくお願いします。
835 :
sage :02/11/19 23:29 ID:aA08ojgX
初心者な質問ですいません。 ファイルが存在するかを調べるfile_existsというのがありますが、 ディレクトリが存在するかを調べるものはないのでしょうか? よろしくお願いします。
>>835 オープン出来るか出来ないかで判断できるだろ
>>835 file_existだとディレクトリも含まれる。
一般のファイル is_file()
ディレクトリ is_dir()
シンボリックリンク is_link() #Winでは使えない。
落穂拾い...
>>832 スレッド使うのが常套手段ですが、PHPではアタリマエのようにスレッドが
使えないので基本的に厳しいです。
ので、シェルを使ってバックグラウンドで走らせるしかないでしょう。「色々な処理」
が何なのかわからないので、もっとメタな解決方法はあるかもしれませんが。
というわけで
$pid = getmypid();
foreach ($urls as $url) {
`curl $url > /tmp/$url.$pid &`;
}
とかして後はリダイレクトされたファイルを処理する、くらいでしょうか。どうやって
個々のcurlが終了したかを判断するのもまた面倒ですが、とりあえずファイルサイズ
見るとかでもいいんじゃないでしょうか?とりあえず、ですが。
最後にファイルを消すのもお忘れなく。register_shutdown_function()とか。
>>830 どーしても、どーしても、とおっしゃるのでしたらパッチ書いて差し上げますが、あんまり
うれしいこと無いと思いますよ。Zend Engine2ではCase Sensitiveにしよう、という話も
あったのですが、後方互換性的に問題ありありということで却下になりました。
メリットとしては
(1)関数やオブジェクトテーブルのlookupが早くなる(今はtolowerして処理してます)。
(2)普通の言語っぽくなる(笑)
くらいしか思いつきませんが。
839 :
nobodyさん :02/11/20 11:59 ID:GqTHpGaW
PHPファイルをアップロードした時に、 パーミッションは644との認識なのですが、 Hファイルや、INCファイルも644としてよろしいのでしょうか? また、PHP、H、INCファイルをアップロードするには 転送モードはバイナリ?テキスト?どちらなのでしょうか?
>>839 ご自身で試すわけにはいかないのですか?
>>839 テキストエディタで開いてテキストファイルだったらテキストモード。
パーミッションは、拡張子だけじゃ分からん。
そのスクリプトでどう扱われているのかによる。
READMEを嫁
>>837 助かりました。ありがとうございます!
>>836 パーミッションによってはオープンできない物もあると思うのだが、
違うかな。。
843 :
nobodyさん :02/11/20 18:27 ID:eNXAFipW
844 :
843 :02/11/20 19:09 ID:???
>>831 ,838
何を意図していたかと言うと、
メソッドのオーバーロードが実装されるまでのつなぎとして、
function func(&$val)
{
$classname = get_class($val);
switch ($classname) {
case strtolower("MyClass1"):
.
.
case strtolower("MyClass2"):
.
.
}
}
とする時に、strtolower()がちょっと邪魔だっただけなので…
846 :
nobodyさん :02/11/20 23:33 ID:1jUBHxNp
こんばんは〜( ・∀・)
今日ウチも自宅サーバーに挑戦しようと思い、
とりあえずWindows-Apache環境でPHP入れて、php動くようになったんですが、
一つ気になることがあるんです。
Apache側の設定で、
LoadModule php4_module c:/php/sapi/php4apache.dll
AddModule mod_php4.c
AddType application/x-httpd-php .php .phps
PHP側の設定で、
;include_path = ".;c:/php/includes;c:/php/pear"
doc_root = "C:/Program Files/Apache Group/Apahce/htdocs"
extension_dir = "c:/php/extensions"
の3行を設定した末、phpinfo()による動作確認でページの表示は認められたんですが、
変数の受け渡しなどが全くできないのです。
たとえば
http://localhost/index.php?query=hoge のqueryが受け渡されないんです。
Apache環境に変えた理由は和製のAn Httpdを使用していたところ、
同じような現象がありまして困ってます(´・ω・`)
Apacheの.incが認識されていないかとアホなことを考え、
使わない環境も考えたんですが変数の受け渡しだけがどうもうまくいきません。
php.ini側の設定に問題があるのでしょうか。
それとも他に何か設定が必要なのでしょうか?
説明不足かもしれませんが・・・ご教授お願いします( ・∀・)ノ
ApacheのバージョンはApache 1.327です。
$_GET
848 :
846 :02/11/20 23:58 ID:9aYPHyGQ
どうも~ 言い忘れてましたが、現在もレンタル中なんですが、 そちらの方では変数の受け渡しは出来ましたヽ( ´¬`)ノ
849 :
846 :02/11/21 00:06 ID:XBf4tF8P
どうも~ 言い忘れてましたが、現在もレンタル中なんですが、 そちらの方では変数の受け渡しは出来ましたヽ( ´¬`)ノ
851 :
846 :02/11/21 00:35 ID:XBf4tF8P
>>847 ありがとうございます。
extract($_GET);
ですね〜
852 :
780 :02/11/21 01:07 ID:???
>>838 ありがとうございます。
正直、何を言われているのかサパーリなのですが(;´Д`)
頑張って勉強します。
やっぱスレッド使えないのは痛いですねえ。
ちなみに「いろいろな処理」というのは簡単に言えば
「配列に入れてソート」です。
データが複数のページにまたがっているので全部まとめてしまおうと。
PHPを使えば掲示板が作れると聞いたのですが どうすればいいのでしょうか? プログラミングとか初心者なんです。 昨日、店に行ってVisualStudioっての買ったのですが これからどうして良いのか分かりません。 お店の人はこれがあればプログラミング出来るとの事なんですが・・・
VisualStudio買っちゃったんだ……。すげぇな。 掲示板を作りたいんなら、メモ帳でいいとおもうよ、うん。
Visual P# ですか?
ネタネタ。
これを機にC言語で作ってみるとか。
JavaScript にすべきです。
>昨日、店に行ってVisualStudioっての買ったのですが >これからどうして良いのか分かりません。 これがホントならこの人は間違いなく・・・モゴモゴ 普通はPHP関連のHPを収集してPHPの環境等を調べて PHPをインストールして、HPにあるサンプルで2時間ぐらい遊ぶ そして、初心者に評判のいいPHP本を調べて購入して勉強 構文を覚え、これをするには何が必要かが分かるようになって 初めて市販の開発ソフトを購入→管理・運用が楽→ウマー
861 :
nobodyさん :02/11/21 21:49 ID:YPJ0mbwG
セッションを飛ばすところまでは何とかいったのですが、 一度飛ばして、そこから次のページへ飛ばそうとしても上手く飛びません。 また、FORMによるデータの受け渡しもまったくできない状態だと判明しました。 原因の心当たりがある方はいらっしゃりませぬか?
しかし、マニュアルに堂々と書いてあることを聞く奴らって どういう神経してるんだろうね?
864 :
nobodyさん :02/11/21 23:19 ID:1XZhJXxJ
こういう神経です
865 :
861 :02/11/21 23:21 ID:YPJ0mbwG
一度はセッションも飛ぶのですが、それ以降が上手くいきません・・・
勿論
>>4 も設定しました
>>865 ソースは?PHPのバージョンは?
もし自分が質問するほうじゃなくて
答えるほうの立場だったらその説明で十分だと思う?
>>866 >原因の心当たりがある方はいらっしゃりませぬか?
だから『俺は無い』とでも答えておけばいいんじゃねーの?
>867 無ければ答える必要ないんじゃねーか? あるやつが答えりゃいいだけだろ?
869 :
861 :02/11/22 00:03 ID:6zsUquR2
言葉足らずですいません 今回はLinux環境で動かしているのですが、まったく同じソースでWindows版においたときの動作確認はとっています。 PHP4.2.2です
870 :
nobodyさん :02/11/22 10:04 ID:HEeXMk8V
imap_setflag_full($mbox,"1","\\Deleted"); 上記で削除フラグがつけられると思ったんですが、だめでした。 ためしに既読のフラグをつけようと imap_setflag_full($mbox,"1","\\Seen"); をやっても新規のフラグのままでした。 一度フラグを削除してからでないとだめなのかと思い、 imap_clearflag_full($mbox,"1","\Recent"); imap_setflag_full($mbox,"1","\\Seen"); とやってもだめでした。 マニュアルもあまり詳細がのってないので前に進めません。 どなたかご教授ください。
871 :
>>870 :02/11/22 10:06 ID:HEeXMk8V
環境を書くのを忘れました。 OSはRedhat7.3 接続は {localhost/pop3:110/notls}INBOX でしています。 PHPのバージョンは4.2.3です。 よろしくお願いします。
>>870 imap_datele で削除マーク
imap_expunge で削除
としてたよ俺は。
873 :
> :02/11/22 10:21 ID:HEeXMk8V
>>872 削除ができるのは私も確認しました。
でも、
imap_datele($mb,"1");
$overview = imap_fetch_overview($mb, "1");
foreach($overview as $value){
$flag = $value->deleted
}
echo $flag;
imap_expunge($mb);
で、途中のフラグを表示してから削除してみても、
なぜか、新規フラグがたってました。
>>873 pop3での接続じゃむり...ってか、反映しないのではなかったかなぁ。それ。
最近使っていないので、ほとんど忘れてる。
875 :
>>870 :02/11/22 10:31 ID:HEeXMk8V
以下みたいにわかりやすくして、みてみましたがNGでした。 $mb = @imap_open($host, $user, $pass); $overview = imap_fetch_overview($mb, $msg_no); imap_clearflag_full($mb,1,"\\Recent"); imap_expunge($mb); print "<pre>"; print_r($overview); print "</pre>"; pop3だとフラグつけられないのかな? imap_close($mb);
876 :
>>870 :02/11/22 10:33 ID:HEeXMk8V
imapで接続したらあっさりフラグが変わりました。 ありがとうございました。
877 :
>>870 :02/11/22 12:50 ID:HEeXMk8V
でも、一度メールのヘッダを取得すると、Recentのフラグが消えてしまう。 プラス、Recentのフラグだけつけることができない。 なんで? 使用なの?
最新版で直ってないバグ。 gmdate()で漢字が文字化けする。 関数内でstaticを使い、同時に複数の同じスクリプトを走らせると 異常に重くなる。globalだと問題ない。
879 :
nobodyさん :02/11/23 20:34 ID:twAAlTTS
フォームから配列をhiddenで渡したいんですが。 配列はこんな感じで $val[0]=array("a","b","c"); $val[1]=array("d","e","f"); あって <input type="hidden" name="val[]" value="<? print serialize($val); ?>" > やってもうまくいきません。 目的はフォームで確認のために$valを表示させ、OKならPHPで$valを処理。 ヘルプお願いいたします。
880 :
879 :02/11/23 21:06 ID:???
自己解決致しました。
881 :
nobodyさん :02/11/23 21:11 ID:nnNnwbKG
>>879 自己解決したら解決法も書いておくと他の人に親切。
まだここ見てたら書いておいてみてくださいな。
882 :
880=879 :02/11/23 21:37 ID:twAAlTTS
883 :
nobodyさん :02/11/24 15:09 ID:rESUx17L
「goto ラベル」でラベルの位置までジャンプさせるようなものは PHPにはありませんか?
884 :
883 :02/11/24 15:29 ID:???
調べてみたのですが、どうもなさそうですね……。 エラー処理で使うわけではないので諦めます。
gotoなんて使い道あるのか?
PHPでホスト名を取得する環境変数がわかりません。 教えてください。 ちなみに PHP Version 4.0.6 で、Apache で CGI 動作しています。 $REMORT_HOST では取得できませんでした。。
887 :
の :02/11/24 20:58 ID:2iDKmUF0
Uxxxx.ppp.dion.ne.jpみたいな、fusianasan的なこの文字列は
phpから取得できないの?
>>886 とかぶってるのかも
echo gethostbyaddr( trim( $REMOTE_ADDR )); trimしなくてもいいのかな?
891 :
nobodyさん :02/11/25 01:15 ID:TRGgbFwY
893 :
nobodyさん :02/11/25 20:09 ID:MbgdCRNZ
phpでhtmlファイルの中身の書き換えを行いと思ってます。 AAAA.html -------------- <html><body> AAAA </body><html> -------------- ↓ AAAA.html -------------- <html><body> BBBB </body><html> -------------- こんな感じの事がしたいのですが、スクリプトの書き方が途中までしかわかりません。。 <?php $fp = fopen("./AAAA.html" , "w"); fwrite($fp , "test"); fclose($fp); ?> これだと、AAAA.htmlは -------------- test -------------- になってしまいます。。良い書き方を教えていただけませんでしょうか。。
読み込んで 置き換えて 書き込む
,,.. -──- 、, あはははははは!あはははははははは!
,. ‐'"::::::::::::::::: ....:``'-、
>>893 って本物のアホだな!あはははははは!
,/::::::::::::::::::: ....::::::::::::::::::::::::ヾ:、 ,....,
/::::::::::::::: ..:::::::::::::::i、::::::::::::::::::::'、':,. / ヽ
/::::::::::: ....:::::::::::::::::::::i:::!`、:ト、::::::::::::i i! / i
i ...::::::|'、ヽ;::::::::::::::|,!:!__リ,,'iヽ::l''、:'、 / /
| ..::::::::;:::i!:i ヾ:、ヽ:::::::::| リ , -─ リ i;il:ヽ, i /
l:::::::::::::::i',i ':i ,メ、 \;:l '゙ `、 !::::/l ...::::::/``ヽ
l::ヽ:::::ヽ:i,レ',.゙-‐'''' ',/'/..::::::::::/ l'ヽ;、
i:::::>、:ヾ,' / _,.. -‐'ヾi ,レ'::::::::::;r':.. / i_\
i:::i. `'‐,ゝ i" '! ,.‐''" :::::::::::i゙::::::::.../. ノ 'i\
!::\ `ヽ ':, l{ ..:::::/::L,. ‐'":::::;/ ! l
l::::::::`''‐r\ ヽ.,__,.ノィ'‐-‐''"'ォ‐--,゙弋''''"::::::;.ノ l
|::::::::;ィ:::}、 ``'''─--、-‐ニ┤ ___ハ,`''ーヽ-'=‐''"::: ,,/
!::::::/ i:::|、\ ヾ´. i ヽ 、''‐-、_::::::::::::::::: /
i:::::/ i:::ハヽ`''‐、/l__\,| / ヽ--、,.ニ=‐--‐'"
896 :
893 :02/11/25 20:25 ID:MbgdCRNZ
>>894 置き換えの部分がわかりません。。
どんな感じなのでしょうか。。
898 :
893 :02/11/25 21:36 ID:???
exec ("touch ./AAAA_2.html"); $fp = fopen("./AAAA.html , "r"); $fp2 = fopen("./AAAA_2.html" , "w"); while (!feof($fp)){ $okikae = fgets($fp , 4096); $after .= ereg_replace("AAAA" , "BBBB" , $okikae); } fwrite ($fp2,$after); exec ("mv ./AAAA_2.html ./AAAA.html"); こんな感じでできました。スイマセン。
わざわざ exec 使うこと無いだろ PHPにも、touch rename は用意されてる
900
>>898 正規表現使わないんだったら
str_replace
の方が良いようです。
phpは、これからの言語です。必ず正規表現で・・・
名前が日付のファイルを作りたいんだけどどうやったらいいの? 20021126.txtってみたいなの いい初心者サイトって無いかな?
ある晴れた昼下がり 市場へ続く道
荷馬車がゴトゴト
>>903 を載せてゆく
可愛い
>>903 売られてゆくよ
悲しそうな瞳で観ているよ
ドナ・ドナ・ドナ・ドーナ
>>903 を載せて
ドナ・ドナ・ドナ・ドーナ 荷馬車が揺れる
>>903 $hizke.txt ただ日付を入れればいいと思うけど。
907 :
ぽぽんた :02/11/27 17:46 ID:32F4cqjQ
ちょこちょこ質問で見かける fsockopen についてなんですが・・・ fsockopen でデータを取得すると、どうも(低い確率ですが) 一部文字化けしませんか?私の取得方法がおかしいのかとか 考えましたが、サンプルとかと比べてもそれほどおかしなやり方は していないと思うのですが・・・・。 過去ログや、googleで調べても出てこないのですが、他の人は こういう現象が起きたりしていないのでしょうか。 【手順】 ・fsockopenで目的のURLをオープン。 ・各種パラメーターを fputs で送る。 ・while でループして fgets でデータを取得 ・ソケットをクローズする。 ってな感じです。 $sock = fsockopen( "www.xxxxx.xxx", 80 ); fputs( $sock, "xxxxxxx\n" ); fputs( $sock, "xxxxxxx\n" ); fputs( $sock, "xxxxxxx\n" ); while( !feof( $sock ) ) { $str = fgets( $sock, 4096 ); echo $str; } fclose( $sock ); ちなみに、一度ソケットを利用すると再び同じPG内で ソケットを利用しようとしてもオープンできません。 後片付けが悪いのでしょうか? よろしくお願いします。
>>907 HTTPヘッダの改行コードは
\r\nでおながいします。
909 :
ぽぽんた :02/11/27 19:18 ID:32F4cqjQ
>>908 nobodyさん
ありがとうございます。
サンプルが \n だったのでそのままでした。
で、早速直したのですがやっぱりだめです。
データは「とりあえず」ほぼ正しく送られてくるのでhttpヘッダを
送る時点の問題では無いようです。(でも、今後ちゃんと\r\nにします:汗)
なんでしょう・・・一部の文字が崩れて文字コード崩れのような状態に
なってしまうんです。100文字に1文字とかそんな感じの頻度なので
結構、目立ちます。
例えば・・・htmlソースそのままで表示すると
------------------
でn
34b
ネければ、
--------------------
となります。原文は「でなければ」です。
他にも変な崩れ方をします。
「指落 1000 ヨっ」って表示されます。
これは「指輪っ」が正しいです。
なんなんでしょうねぇ・・・・
性器表現ハァハァ
パーミッションについて質問。 safemodeでchmod使おうと思ったら chmod failed: Operation not permitted とか言われました。 ブラウザでサーバサイドスクリプトを使ったときって、その他の扱いになるんですか? サーバ内で処理してるからオーナーじゃないのですか? あぅー、同アカウント内のスクリプトでしか見れないファイルつーのを作りたいYO
nobodyさん
913 :
nobodyさん :02/11/28 09:04 ID:F7kZgWD6
>>907 ひょっとしてWin鯖なら\nで良いです。詳しくは分かりませんが。
914 :
bloom :02/11/28 09:44 ID:RNMw186q
Windows が \015\012 ですぜ。 \012 でも良いけど。
916 :
ぽぽんた :02/11/28 13:45 ID:nkeBXKRh
>>915 nobodyさん
鯖はLinuxです。確かにCRLFはWinの改行コードですね。
それはそれで大切な議論なのですが、どっちにしろ
文字化けまくります。内部的な問題なのかなぁ(socketモジュール?)
PG細かく組まなくても単純にヘッダをfputs() で送って
fgetsで取得して表示するだけでも化けちゃうんですよね。
file()でURLを指定して読み込むと普通に読めるんですよね。
ちなみに、今回はPOSTデータを送る必要があったので
fsockopen()を使ってhttpヘッダをぶち込んでいます。
相手鯖からのデータを待っていなくちゃいけないのかなぁ。
ブロックモードとか関係ないと思うし・・・・(泣)
917 :
nobodyさん :02/11/28 14:15 ID:PUGto0Nk
918 :
の :02/11/28 16:05 ID:BEW1IJeN
>>909 php のバージョンは?
4.2.3 だと mb 系を有効にすると一部文字化けが起きるバグありと聞いてます。
919 :
ぽぽんた :02/11/28 16:18 ID:IiE4hQoQ
>>918 の さん
php のバージョンは 3.0.18-i18n-ja-3 です。
日本語処理を i18n系の関数を多用しているので 4に
移行していません。
その 4.2.3 のバグは、 mb系を利用していると起きるバグなのでしょうか?
それとも mb系を有効にしているだけで socketデータ取得時に
(mb系の関数を使わなくても)文字化けが起きてしまうようなものなのでしょうか。
SJISでよくある文字化けの問題であれば SJIS <-> EUC の絡みの
どこかで特定の文字だけ文字化けするはずですよね・・・・
まだ特定の文字だけなのか調べていないのでちょっと調べてみます。
有名どころで「表示」とか。
そういえば、毎回同じ[個所]で文字化けが起きていた気がする・・・・
「特定位置」でなくて「特定文字」という可能性はなぜか考えていませんでした。
920 :
ぽぽんた :02/11/28 16:56 ID:IiE4hQoQ
・・・お恥ずかしい。自己解決しました。 言い訳させてください(爆) 1年ほど前、とあるサイトのページを取得しようと思ったのですが、 cookieを使ってたり、サンプルにあるヘッダ情報だけではうまく データが取得できなかったので、「カンニング」したんです。 ブラウザ(IE5)で閲覧中の送受信パケットをダンプしてhttpヘッダをコ ピーしたんです。で、それを編集してPGに組み込んだ、と。 賢明な方なら原因はすぐに分かりますよね。 1年近くずっと悩んでたのにごく簡単な理由でした・・・ httpヘッダが・・・・ HTTP/1.1 に・・・・・ えぇ、笑ってください。いいですとも。かなり大馬鹿ものですよ。 httpプロトコルが違ったのに動いていた方が不思議ですね・・・ HTTP/1.0 と HTTP/1.1 とでは同期の取り方が微妙に違うんでしょうね。
921 :
nobodyさん :02/11/29 00:25 ID:Fg6tlzE0
922 :
nobodyさん :02/11/29 01:17 ID:lP9MNlfe
PHPに関して一つ質問させてください。 と記述すると$naに名前が出力されるものなのですが、、、 echo"ようこそ<br>$naさん"; とすると名前が出力されず、 echo"ようこそ<br>$na<br>さん"; とすると正常に出力されます。 PHPでは変数を使う場合は、 変数の前後に記述しては行けないもの等の決まりなどがあるのでしょか? PerlでのCGIは理解しているのですが、 PHPは初めてなので混乱しています。 お力をお貸しいただければ幸いです。
923 :
nobodyさん :02/11/29 01:23 ID:lzLul13h
phpで掲示板つくったんですけど 書き込んだあとに、再読み込みを押したら同じ内容が 自動的に書き込まれました つまり、POSTで送信するとその状態が残っているような感じ なんです。これを回避する方法はないかしら
924 :
nobodyさん :02/11/29 01:30 ID:CsjprMSL
>>922 × echo "ようこそ<br>$naさん";
○ echo "ようこそ<br>".$na."さん";
925 :
nobodyさん :02/11/29 01:46 ID:CsjprMSL
>>923 ひとつの案として、メッセージを書き込みするページが
開いたとき $_SESSION["kakikomi"] = "mada" にしておいて
書き込むページで
if ( $_SESSION["kakikomi"] == "mada" ) {
kakikomi( $_POST["message"] );
$_SESSION["kakikomi"] == "moukaita";
} else {
echo "二重投稿エラーです。";
}
ってのはどう?
926 :
の :02/11/29 02:42 ID:vqpWO9fR
927 :
nobodyさん :02/11/29 06:02 ID:QnsCph4W
disk_total_spaceって自身が置いてある上の階層は表示できないの?
>>922 '$naさん'が一変数の扱いなのれす
やるなら、
>>924 か
echo "ようこそ<br>{$na}さん";
でどだ
929 :
bloom :02/11/29 08:57 ID:Ep+NyYTS
930 :
nobodyさん :02/11/29 10:27 ID:a3WbsO8J
>>924 >>928 ありがとうございます。
$na = 名前 となる場合
<?echo"<center>{$na}</center><br>";?>
と記述するのが良いのか
<?echo"<center>".$na."</center><br>";?>
と記述するのが良いのか、どうなのでしょう?
どちらでも同じ事なのでしょうか?
931 :
hmk :02/11/29 10:58 ID:+pV4MPpt
>>928 ,930
{$na}では駄目です。${na}です。
ダメじゃないけど漏れならこうする <CENTER><?= $na ?></CENTER><BR>
934 :
nobodyさん :02/11/29 16:51 ID:FGwKAXnr
phpで質問です htmlに出力するときはどっちが高速ですか? (例1) <? テスト ?> (例2) print"テスト";
> (例1) 何の意味があるのか小一時間問い詰めたい。
小一時間どころか三日三晩問い詰めたい。
937 :
nobodyさん :02/11/29 18:03 ID:FGwKAXnr
if(a == a){ <? テスト ?> }else{ print"テスト"; } a=aの場合と a=nullの場合と どちらが表示が速いでしょう
実行してみりゃ分かる(w<小一ヶ月問い詰められる理由
939 :
nobodyさん :02/11/29 20:02 ID:rdc6a4ct
初心者が質問し、初心者が答える
|∧∧ |・ω・`) |oωo |―u' 見守る初心者
941 :
nobodyさん :02/11/29 20:52 ID:FGwKAXnr
$chcodeの値を出したいです perlのソースですがphpに訳せる天才はいませんか? $new=3; $old=10; $num1 = 7777; $num2 = 77; ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time); $key = "uhreri"; @key = split(//, $key); $date_num = sprintf("%02d%02d%02d%02d%02d",$mon +1,$mday,$hour,$min,$sec); $chcode = ($date_num + $num1) * $num2; $i = 0; $chcode =~ s/./sprintf("%02x",ord($&)^ord($key[$i++ % @key]))/ge;
よし初心者が答えてやる <? テスト ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=shift_jis"></HEAD> <BODY></BODY></HTML> こんなのが出力されるよ! print"テスト"; テキストで print"テスト"; と出るよ! htmlは例1だから答えは例1!
>どちらが表示が速いでしょう エラーメッセージが出るけれど、いいの!? >perlのソースですがphpに訳せる天才はいませんか? 凡人もいるよ!
超初心者が思うに $chcode = ($date_num + $num1) * $num2; $i = 0; $chcode =~ s/./sprintf("%02x",ord($&)^ord($key[$i++ % @key]))/ge; これはおかしくない?最初の$chcodeで時間と何かの数字で計算して代入しているのに また、$chcodeに何かを代入するの?
945 :
の :02/11/30 01:38 ID:tS4FEdrL
perl の =~ ってのは正規表現の適用 (置換 or マッチング) 指示でっせ。
s/ だから php なら、$chcode = preg_replace(...,,$chcode) ってパターンだな。
書き換えは簡単だけど、正確に読むのはダルいんでパス。
---
俺的ポータルサイトを作ろう
http://mysite.ddo.jp/
946 :
nobodyさん :02/12/01 03:25 ID:2VKLUjr4
947 :
nobodyさん :02/12/01 10:25 ID:iDh7XpXh
PHPで、gzip圧縮してブラウザに返す方法ありませんか?
949 :
946 :02/12/01 10:48 ID:2VKLUjr4
情報追加です。 現在のphp-4.1.2-7.1.6をインストールしたままgd-2.0.1-7をインストール しようとすると、「libgd.so.1.8はphp-4.1.2-7.1.6に必要です」と言われて 拒否られてしまいます。 強引に入れると確かにapache起動に失敗します。 gd-2.0.1-7のインストールファイルリストを見てlibgd.so.2.0.0だけなので いやな予感はしていましたが、、、。 今度はPHP関係をまず全てアンインストールして、gd-2.0.1-7から入れると インストールはできるのですが、php-4.1.2-7.1.6をインストールしようと すると、「libgd.so.1.8はphp-4.1.2-7.1.6に必要です」と言われて、 今度はPHPがインストールできなくなってしまいます。 私のような素人考えからいくと、「gd-2.xを必要とするPHP4のRPMパッケー ジがあれば、、」などと考えてしまうのですが、ちょっと的外れでしょうか?
たぶんRPMの依存性で入らないってことかな。 後でどうなっても知らないけど、 gdのページには、 A very high degree of backwards compatibility with existing gd 1.x code has been maintained, at both the source code and binary level. ってあるから無理やり入れてもよさそう。 libgd.so.1.xにシンボリックリンク張るのを忘れずに。 尚、レジストリの修正は自己責任でお願いします。
951 :
946 :02/12/01 12:08 ID:2VKLUjr4
>>950 ありがとうございます。
つまり、「gd 2.x は、1.x とソースコードもバイナリレベルも似ていて互換性も
保ってます」ってことですね。
最後の2行の意味がよく分からないのですが、libgd.so.1.xにシンボリック
リンクを張るのがどういう意味をなすのでしょう?
レジストリ修正っていうのはPHP4のRPMパッケージをいじるっていうこと
でしょうか? 、、、ちょっと私にできるかどうか、、、。
952 :
nobodyさん :02/12/01 12:44 ID:EpowQ2LG
ちょっと伺いたいのですが 無料ホムペスペースのsendmailは PHP4で使えますでしょうか?
953 :
nobodyさん :02/12/01 12:49 ID:Ympa0jkR
>>952 当然使えます。sendmailもqmailも設定ひとつです
954 :
952 :02/12/01 12:53 ID:???
サンクスです! 早速、スクリプト探してきます!!
955 :
初心者 :02/12/01 15:01 ID:IYJM+D46
>>947 自分も丁度気になっていたところ。
ob_start("ob_gzhandler");
で良いと思うんですが。
良い。
変数宣言強制したい。
>>947 今のPHPの設定を目を皿にして確認してみよう。
ただし、PHPでgzipコンプレスすると正常動作しなくなるスクリプトが少なからず出てくる。
(クライアント側ブラウザに圧縮されたバイナリデータが展開されてしまう)
スクリプトを修正すればなんとかなるとは思うが。
そろそろ新スレか?
経験上、995まで大丈夫。(w
精神衛生上、970くらいじゃないか?
961 :
nobodyさん :02/12/02 00:30 ID:eE3XhUq7
POSTされた変数から手動で改行を取り除く処理で、 foreach($_POST as $key => $value){ $_POST[$key] = str_replace("\n", "", $value); } ↑のように書くと意図したように動かない foreach($_POST as $key => $value){ $_POST[$key] = str_replace("\n", "", $_POST[$key]); } ↑のように書くとちゃんと動く 同じように見えるんだけどなにか違うの? \nとかじゃなくてただのアルファベットとかだとちゃんと前者でもちゃんと動作するんみたい。 何故?誰か教えて。
うちの環境(php-4.1.2-7)だとうまく動いた。 \nじゃなくて、\r\nに変更したけど。
Part2 が立ったのは 995 Part3 が立ったのは 980 Part4 が立ったのは 999 Part5 が立ったのは ……HTML 化待ちで、漏れは読めない
964 :
961 :02/12/02 04:43 ID:eE3XhUq7
>>962 試してみた。
$_POST[$key] = str_replace("\r\n", "", $value);
だけだと成功
$_POST[$key] = str_replace("\r\n", "", $value);
$_POST[$key] = str_replace("\n", "", $value);
$_POST[$key] = str_replace("\r", "", $value);
3つ書くと失敗
後ろの$valueを$_POST[$key]に変更すると成功
php-4.2.2なんだけどなー。なんでだろう。
965 :
nobodyさん :02/12/02 09:45 ID:vgT4ee9m
ダダダダ、ダダダダ、ヨザーー。 正規表現
966 :
nobodyさん :02/12/02 23:01 ID:2uvkz+AI
最近PHPの勉強をはじめて、自分用に電車の時刻表を作ってます。 そこで祝日(成人の日)の判定が分からないです。 1月第2月曜日ってのはどうやって判定したらよいのでしょう? 教えてください。
第二日曜が14日でなけりゃ第二日曜の次の日。 第二日曜が14日なら第二月曜は8日。
968 :
ノウバディ :02/12/02 23:56 ID:yCCT0waL
レッツPHPのアクセス解析に、 CGIBOY同様の訪問回数、初回訪問日などを 誰かつけてください。 おながいします、。
969 :
nobodyさん :02/12/03 00:53 ID:F9qCnjkA
966です。
>>967 さんありがとうございます。
簡潔に書けそうなすばらしいロジックですね。
ただ、第二日曜を判定するロジック(書き方)が分からないのです。
教えてクンですみません。PHP4でのこの辺の書き方教えていただけないでしょうか。
970 :
nobodyさん :02/12/03 01:26 ID:Q35J3m80
$timestamp = mktime(0, 0, 0, $month, 1, $year); $first_day = getdate($timestamp); if($first_day[wday] == 0) $second_monday = 8; else $second_monday = 15 - $first_day[wday]; かな? 1日が日曜日なら第2月曜は8日、それ以外なら2週間後の今日から 最初の日曜日までの日数を引いた日、っていう感じ。 たぶん合ってると思う。
ごめん、なんか自分で見直してみて説明変だな。 まあ、そんな感じで。
$year = 2002; $month = 1; $the_day = happy_monday($year,$month); echo $the_day; function happy_monday($year,$month){ $weekday_1st = date("w",mktime(0,0,0,$month,1,$year)); $weekday_1st == 0 ? $sunday_1st = 1 : $sunday_1st = 8 - $weekday_1st; $monday_2nd = $sunday_1st + 8; return $monday_2nd; }
>968 レッツPHPの人にお頼み申せ。
974 :
nobodyさん :02/12/03 16:07 ID:F9qCnjkA
>>966 です。
>>970 ,972 ありがとう。休日(ダイヤ)か平日(ダイヤ)かの判定ができるようになりました。
こんな感じです。
//-----------------------------------------
//休日か平日の判定
function is_holiday($year,$month,$day){
$ls_day = sprintf("%02d/%02d",$month,$day);
$sflg = "weekday";
$holiday = array("01/01","02/11","03/21","04/29","05/03","05/05","07/20","09/15","09/23","11/03","11/23","12/23","12/30","12/31","01/02","01/03");
for ( $i = 0; $i < count($holiday); $i++ ) {
$holiday[$i] = holiday_shift($holiday[$i] . "/" . $year );
}
$holiday[16] = "01/" . sprintf("%02d",happy_monday($year,1));//成人の日
$holiday[17] = "10/" . sprintf("%02d",happy_monday($year,10));//体育の日
for ( $i = 0; $i < count($holiday); $i++ ) {
if ($ls_day == $holiday[$i]) {
$sflg = "holiday";
break;
}
}
return $sflg;
}
//-----------------------------------------
//ハッピーマンデー対応
function happy_monday($year,$month){
$weekday_1st = date("w",mktime(0,0,0,$month,1,$year));
$weekday_1st == 0 ? $sunday_1st = 1 : $sunday_1st = 8 - $weekday_1st;
$monday_2nd = $sunday_1st + 8;
return $monday_2nd;
}
975 :
nobodyさん :02/12/03 16:07 ID:F9qCnjkA
974の続き //----------------------------------------- //祝日が日曜日の時には月曜日が休み function holiday_shift($in){ $t = split("/",$in); if(date("w",mktime (0,0,0, $t[0], $t[1], $t[2])) == 0) { $holiday = sprintf("%02d/%02d",$t[0],$t[1]+1); } else { $holiday = sprintf("%02d/%02d",$t[0],$t[1]); } return $holiday; }
976 :
nobodyさん :02/12/03 19:51 ID:R/9PtWVb
htmlファイルから、 たとえば <html><body><table><tr><td>文章</td></tr></table></body></html> このようなファイルで<table>〜</table>までを取り出したいときにはどうしたら良いでしょうか? この場合は <table><tr><td>文章</td></tr></table> を取り出せればいいのですが 宜しくお願いします。
977 :
nobodyさん :02/12/03 20:18 ID:PNt+pMvy
>>976 <table>から</table>にマッチする正規表現で抜いてくればいいんじゃない?
978 :
nobodyさん :02/12/03 23:16 ID:vkKrixb3
JpGraphをやりたくて、PHP徹底攻略実戦を買いました。 インストールしている途中でPHP.iniのインクルードパスのところで いきづまってます。PHP.iniのインクルードバスがコメントになってる からです。どうすればいいのですか? Linux7.3です。LinuxもPHPも素人です。 7.3にPHPは既に入ってました。 <? phpinfo(); ?>は動作しました。
//削除
980 :
うえ〜ん :02/12/04 05:35 ID:XOwW5my4
こういうやつでなんで読み込んでくれないんでしょう? 全っ然わからん。PHP歴4時間・・・ -----test.php <HTML><BODY> <?php $filename = "/home/hoge/hoge.dat"; $fp = fopen ("$filename","r"); flock ($fp,1); $contents = fread($fp,filesize($filename)); flock ($fp,3); fclose ($fp); print $contents; ?> </BODY></HTML>
"home/hoge/hoge.dat"
"./home/hoge/hoge.dat"でもいいけど。
(´-`).。oO { エラー処理すればすぐ分かるのになぜしないんだろう
そろそろ次スレきぼんぬ。
つーことで、テンプレ追加・修正案募集中。
987 :
:02/12/04 14:04 ID:xBoKBvCa
>>980 $fp = fopen ($filename,"r");
ネームかパスかはちょっと悩むところだね。
WebServer の基本認証のユーザー名とパスワードって 取得できるのかなぁ?
げっつ990!(ワラ
1000取りage!!!!!!!!!!!!!!
993 :
980 (そろそろ新スレ?) :02/12/04 16:26 ID:XOwW5my4
>>980 です。ありがとうございます。色々試してみました。
けど・・・まだダメなんです。
教えて頂いたとおりに、
$filename = "./home/hoge/hoge.dat"; とか
$filename = "home/hoge/hoge.dat"; と
やってもダメでした。
ただエラーが表示されるようになって、
「No such file or directory 」といわれます。
読んだままファイルの指定の仕方が間違ってるみたいなんですが・・・
で、ご指摘頂いた /home とルートからフルパスで書くところをhome/と
していますが、どういった理由なのでしょうか?
それともそんな書き方はもともと出来なくて、全て相対パスで書くべき
なのでしょうか?
http://www.php.net/manual/ja/function.fopen.php を見ると $fp = fopen ("/home/rasmus/file.txt", "r");
のようにルートからフルパスで書いてあります。
test.phpとhoge.datを同じディレクトリに入れて
$filename = "./hoge.dat"; としてみたら、エラーは全く出ない
のですが、
<HTML><BODY></BODY></HTML>
とだけ見えて内容を全然読んでくれませんでした。
ちなみに
>>987 さんの言うとおりに4行目はこうしてみました。
$fp = fopen ($filename,"r");
質問ばかりで申し訳ないのですが、ご教授願います。
>>989 オレも知りたい・・・
994 :
989 :02/12/04 16:37 ID:???
Apache モジュールとして動作してればいいらしい。 phpinfo 見ると、、、Server API が、CGI になってた(鬱 どやってApacheモジュールにするのかなぁ?
>>989 Apacheモジュール版なら
$HTTP_SERVER_VARS['PHP_AUTH_USER'], $HTTP_SERVER_VARS['PHP_AUTH_PW']
とか
$_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']
で取れるだろ。
>>993 で、/home/rasmus/file.txt は有るの?
996 :
995 :02/12/04 16:53 ID:???
しもた。先書かれた。
>>994 root権限あるの?
997 :
995 :02/12/04 17:00 ID:???
長らくお待たせしました。やっと1000取り合戦場になるようです。 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、やっぱやんなきゃダメか? ,,、,、,,, /三√ ´兪)/ \________________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \今更やる気でねぇ…………よ。。。/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( ;) (ι ) ( ;) )
1000GETずさー
ここに 乂1000取り合戦場乂 としての価値はありません。 ,,、,、,,,  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ \∧_ヘ ,,、,、,,, やっぱや〜めたっと > / \〇ノゝ ,,、,、,,, ,,、,、,,, ________/ /三√ ゚д゚) /三/| ゚U゚| \ \エーーーーーーーッ!?/ ,,、,、,,, U (:::::::::::)∪ ,,、,、,,, ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ //三/|三|\ ( ) ( ) ( ) ) ∪ ∪ ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧,,、,、,,, ,,、,、,,, ( ) ( ) ( ) ( ) ,,、,、,,,
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。