スレ建て終了。
前スレの過去ログpart13のアドレスが違ってて焦った。
8 :
nobodyさん:04/03/07 11:49 ID:jKMO9RlN
perlだと変数を定義していなくてもそのまま処理できたのですが
PHPだと変数が未定義ですとエラーが表示されてしまいます。
具体的に言うと、フォームからデータを送り、GETメソッドで取得し
$modeにregistやdeleteなどの文字を格納するようにしたいのですが、
$modeになにも入ってないとき、つまり
http://〜〜〜/test.php
とかでアクセスしたとき、$modeが未定義と出ます。
PHP.iniのほうでエラーを表示しないようにする方法があるのは分かるのですが、
そうしちゃっていいのでしょうか?
何かいい方法はないでしょうか?
9 :
nobodyさん:04/03/07 11:53 ID:qGgxd6Wh
または、しっかり変数を初期化しよう
988 :nobodyさん :04/03/07 13:39 ID:???
>>984 定義しておけばいいだけの話。
echo $mode = !empty($_GET['mode']) ? $_GET['mode'] : ""; //undefined index errorは起きない
13 :
初心子:04/03/07 16:02 ID:AkFDBaOG
「AAA」という内容のHTMLファイルの表示と、PHPで1行「echo "AAA"」を実行
して表示する場合で、処理速度に差は出るのでしょうか。
また、出るとしたらどのくらいのアクセスからなんでしょうか。
例えば1秒に10アクセスぐらいでも差が出るでしょうか。
15 :
nobodyさん:04/03/07 16:37 ID:JEnRe41E
fopen()で2chのdatを開き、fgetsで読み込もうと考えています。
この際、datを最初から全部読むのではなく
新しい方から100レスのみ、という読み込み方をしたいのです。
dat全体を読み込むのは出来た(whileでEOFまで取得)のですが、
「新しい方から100レスのみ」のやり方がわかりません。
fseek()などで何とかなるかと考えたのですが、
>
http://"または"
ftp://"フォーマット指定のfopen()により返されたファイルポインタに対しては使わないで下さい。
とかマニュアルに書いてあるし…。
何か良い方法があったらご教示願います。
16 :
初心子:04/03/07 17:31 ID:???
>>15 fsockopenで接続して100レス分fgetする
>>15 無理じゃないの?
*.datのレコード(1行)って固定長だっけ?
>>13 例えば
1. ABC<?php echo'ABC'; ?>ABC
2. ABCABCABC
となら2.の方が速いが、別に気にするほどの差ではない。
因みに""ダブルクォートと''シングルクォートの場合や、
echoとprintも処理に違いがあるので差があるのだが、
それも気にするほどではない。もっと気にしないといけないことは
幾らでもあろう。特に君は英語を読むことと、無駄に思えることでも
色んな知識を吸収しようとする努力せよ。
(16氏が示したツール(ApacheBench)はApacheでもIISだろうが使える)
>>15 fseekが使いたいなら、一度tmpなりのファイルに落としたらどう。
datの構造しらんので「新しい方から100レスのみ」するのに
先にparseとかせんでもいけるの?と思うけど。
>>15 各行の開始位置を記録したファイルを別に作る
24 :
21:04/03/08 02:53 ID:???
>>13 1. ?>ABC<?php echo'ABC'; ?>ABC<?php
2. ?>ABCABCABC<?php
の感じのテスト(出力バッファ利用して貯めて)で、
大体1は2の120%ぐらい。つうても折れのローカル環境で 7.8e-7秒/回。
それが20%増しになったところでね、普通ゴミとか誤差とか呼ぶレベルでしょ。
25 :
nobodyさん:04/03/08 11:34 ID:/KXptFwq
ファイルアップロード機能を使いたいのですが、
move_uploaded_file
が使えません。なにも反応しません、エラーもでません。
で、copyは使えるようなのですが、機能に違いってありますか?
変数と配列を比較して、
配列のどれか一つと一致するとTRUEを返す
はどうやったらいいの?
27 :
nobodyさん:04/03/08 12:17 ID:mEtMwEOB
>>25 move_uploaded_file()を使うとis_uploaded_file()で事前に確認する手間は省ける。
ま、copyを使う前にmove_uploaded_fileが使えない原因がどこかにあると思うが。
>>26 function array_manual_YOME($n,$array){
return in_array($n,$array);
}
30 :
nobodyさん:04/03/08 14:00 ID:WZerhTAo
質問なのですが、
Apache 1.3.27
PHP 4.3.4 で
PC/携帯連動ページを作成しているのですが、
PCで正常に表示しているページを
require_once
で要求し、携帯に必要な部分の関数だけ実行しようとすると
携帯からは表示できない
というメッセージが出るのですが、
どのような事が原因でしょうか?
require_once
を記述しない場合は、
携帯でも正常に(ただし、何も表示されない)ページが見れます
何かアドバイスありましたらお願いします
まずApacheのバージョンを上げることかな?
32 :
30:04/03/08 14:05 ID:???
>>31 え”?
古いバージョンは携帯不可なんですかひょっとして
ありがとうございました
文字列の最後の改行を取りたいのですが、
chopでいいんですか?
>>30 読み込んでるのが
>携帯からは表示できない
というメッセージを出す関数じゃないの
35 :
30:04/03/08 14:19 ID:???
ぐわすみません
本番機は、
Redhat 9
Apache 2.0.40-21.9
でした
>>30の環境は、開発環境でした('A`)
36 :
30:04/03/08 14:24 ID:???
>>34 require_onceで要求したページは、
if(IsMobile()==false){//PCからの場合、通常メニュー作成
SendHeader("ページタイトル");//ヘッダ送信
CreateMenuPage();//PC用メニュー作成
SendFooter();//フッタ送信
}
となっていて、これは、PCの場合にメニューを構築します
それ以外は、
CreateMobileMenu()
という関数を実行しているのですが
(現状はテストのみで、
中身は、
?><DIV>携帯用ページ</DIV><?php
だけの関数です
コレを、元のページindex_mb.phpから
require_onceすると、
ページを表示できないと携帯が言ってきます
セッション管理の為、別ページもrequire_once
しています(このページも関数のみで、HTMLは、出力しません)
>>36 試しに、if(IsMobile()==false)をif(1)にしてみて、どういうHTMLを吐いているかPCで確認してみれ。
>>36 >ページを表示できないと携帯が言ってきます
最近の携帯はすごいんですなぁ。
39 :
30:04/03/08 14:31 ID:???
>>37 なるほど、ありがとうございますm(;∇;)m
これから実行いたします
40 :
30:04/03/08 14:32 ID:???
>>38 や、すみません
PCでいうダイアログっぽいメッセージで、
「このページは表示できません」
ってメッセージがでる
という意味合いです('A`)
41 :
30:04/03/08 14:34 ID:???
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE></TITLE>
</HEAD>
<BODY>
<BR><BR>
<TABLE>
<TR>
<TD>
<FORM action="kokyaku.php" target="data">
<INPUT type="submit" name="user_manage" value="ユーザー登録確認">
</FORM>
</TD>
</TR>
<TR>
<TD>
<FORM action="menu_data_init.php" target="data">
<INPUT type="submit" name="reserve_manage" value="予約情報">
</FORM>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
と出てきました(PC側)
>>40 もう、require_onceや携帯がどうのこうのという範疇じゃねぇ。
デバッグまで手伝えってか?
>>41 そもそも、携帯に対してEUC吐いてるの?
43 :
42:04/03/08 14:40 ID:???
44 :
30:04/03/08 14:47 ID:???
>>42 >>43 @前半>あ、イエ、チトワタクシの言葉不足でした('A`)
@後半>
EUC吐いてるの>ハヒ、本来は、S-JISにすべきデスネ('A`)
45 :
33:04/03/08 15:11 ID:???
だれか〜
>>35 むしろ本番環境にApache2.xとPHPの
組み合わせを使う(予定)の君に乾杯。
まあ一応こまめにプロセス殺してやると
今のところ大丈夫みたいだけどね。
48 :
30:04/03/08 15:43 ID:???
>>47 コ、コレばかりは、ユーザーさん指定の環境ですので、
ワタクシからはどうにもなりません_| ̄|○
誰もダメとは言ってないぞ。
自分で自分の首を絞める行為に漏れからも乾杯。
Apache2.0.40って……
なんか、テストも本番も微妙にApacheが古いのが笑えるな。
52 :
nobodyさん:04/03/08 17:00 ID:mEtMwEOB
>>41 原因はわからんが(テストしてないし)、
HTML1.0のサブセット(嘘)に向って、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
も酷いよな。
エンコーディングはEUCだしさ。
しかも、
<META http-equiv="Content-Style-Type" content="text/css">
って、携帯を馬鹿にしてるとしか思えない。
53 :
52:04/03/08 17:03 ID:???
なにはともあれ、
消防でも書けるようなHTMLにしたら?
携帯に、多くを求めるな。
<HTML>
<HEAD>
<TITLE>タイトル</TITLE>
</HEAD>
<BODY>
<BR><BR>
<FORM action="kokyaku.php" target="data">
<INPUT type="submit" name="user_manage" value="ユーザー登録確認">
</FORM>
<FORM action="menu_data_init.php" target="data">
<INPUT type="submit" name="reserve_manage" value="予約情報">
</FORM>
</BODY>
</HTML>
ここで携帯がHDML機だったってオチを期待してみる
>>55 HDMLは「コンパイルエラー」とかいうもっといやらしいエラーを言ってきます
質問です。
XHTMLで組んでいるので、xml宣言を文書の最初にしなきゃいけないのですが、
<?xml version="1.0" encoding="Shift_JIS" ?>
という形上、PHPと解釈されてしまいます。
そこで
<?="<?xml version=\"1.0\" encoding=\"Shift_JIS\" ?>" ?>
こうしたのですが、この宣言が文書の一行目に来てくれません。
なんとか一行目に表示する方法はないでしょうか?
PHP版なつみかんって感じのアンテナソフトありますか?
>>57 別の問題じゃないの? どっかで改行とか出力してない?
自分でためしに<?=...を初っぱなに書いてみたけど、ちゃんと1行目にくるぞ?
「parseする」ってどういう意味ですか?
<html>
<hrad>
<title>あああああ</title>
</head>
<body>
<font size=+2>えええええ</font>
<hr>
<?php
mb_http_output('SJIS');
echo ("あいうえ");
?>
<?php
echo("あああああ");
?>
こうやっても全部EUCになるんですがねぇ・・・
他に必要なものってありましたっけ?
64 :
63:04/03/08 20:50 ID:???
例6も嫁
はいよんだよんだ
できたできた
66 :
nobodyさん:04/03/08 22:38 ID:aa8wwnxG
classとかいうやつの使い方がよくわからないのですが、
なんの為に使うのでしょうか。
あとどんなプログラムにもそれは必要ですか?
>>66 その質問。スルーされているのに気づけYO!
ま、別に使わなくても問題ないよ。
今後スクリプトをバリバリ書いて、なんか使いまわしが面倒だなぁと感じたら
本でも買って勉強するよろし。
たとえばデータベース関連とかは毎回色んなスクリプトで使い回ししたい。
そんなときクラスを使うとよろし。
69 :
nobodyさん:04/03/08 23:51 ID:LU3lxLSX
>>69 そんなん、わざわざphpを使わなくても。
まったくだ
73 :
nobodyさん:04/03/09 00:07 ID:usGQfxsJ
>>72さん、どうもありがとうございました。phpLangを使わずとも期待した通りに動きます。
>>70さん
>>71さん、他にも何かシンプルな実装方法があるのでしょうか。。。
Apacheを自分で立てたらそれだけで気づきそうなもんだが。
と、index.html.jaとかindex.html.enになるけどw
>>74さん、どうもありがとうございました。ファイル名を変えるだけという最もスマートな方法で実装できました。
$str = 'スト好' # \xA5\xB9 \xA5\xC8 \xB9\xA5 (EUC)
のとき
$pattern = '(?:[\xB7-\xBA][\xA1-\xAF])';
$str = mb_ereg_replace($pattern,'',$str);
みたいのをしたいのですが、希望通り「スト」が返ってきません。
mbでも途中にマッチしちゃってるようなのですが
そもそもmbはこういうのが起きないためのものなのではないでしょうか(;´Д`)
希望通りになるコードのお知恵をかしてください・・
78 :
30:04/03/09 10:06 ID:???
亀レスになりましたが、
イロイロありがとうございました
とりあえずテストのアパッチは最新に置き換えマシタ
本番機はユーザーさんの管轄なので、
コッチの置き換えは、ユーザーさんに依頼シマツ
タグ自体は、必要最小限を出力してテスト致します
携帯も奥が深いんですね(;´Д`)
お世話になりマスタm(;∇;)m
>>77 ナニを「希望」しているのかサパーリわらかん。
全角カタカナに一致させたそうでもなさそうだし。
>>78 携帯の奥が深いというより、あんたが浅杉。ま、がんがれYO
ここの馬鹿共は口が悪いな
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
82 :
30:04/03/09 11:01 ID:???
>>80 や、びしっと言って頂いた方がワタクシは
良かったですよ
って釣られたっていうのですかね、コレは・・・
83 :
nobodyさん:04/03/09 11:15 ID:hGDzPQs/
_,. -‐''"∴∵``' ‐ .、._
,.‐'´∴∵∴∵∴∵∴∵ `‐.、
./∴∵∴∵∴∵∴∵∴∵∴∵\
|/-=o=-∵∴∵∴\/_ ∴∵∴∵\
/::::::ヽ―ヽ -=o=-_(::::::::.ヽ ∴∵∴∵l
|○/ 。 /::::::::: (:::::::::::::) ∴∵∴∵l
|::::人__人:::::○∵∴ ヽ/ ∴∵∴∵l
ヽ __ \∵∴∵∴/ ∴∵∴∵l
∴∵\ | .::::/.|∵∴∵∴/ ∴∵∴∵∴\
∴∵ \lヽ::::ノ丿∵∴∵ / ∴∵∴∵∴∴l
,i∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴l
|∴∵∴∵∴∵∴(・)∴∴.(・)∴∵∴∵∴∵|
. | ∴∵∴∵∴∵∴ / ○\ ∴∵∴∵∴∵ |
. |∴∵∴∵∴∵∴/三 | 三|∴∵∴∵∴∵| tanasinn
. |∴∵∴∵∴∵∴| __|__ |∴∵∴∵∴∵l
l∴∵∴∵∴∵∴| === .|∴∵∴∵∴ .,l
. ゙i ∴∵∴∵∴∵ \__/∴∵∴∵∴,i
ヽ∴ ∵∴∵∴∵∴∵∴∵∴∵∴∵/
ヽ `‐.、∴∵∴∵∴∵∴∵∴,.‐'´
`:‐.、. _∴∵∴∵.-‐''"
>>77 ちゃんと「スト」になるけど。
内部エンコーディングがEUCになってるかmb_regex_encoding ( )で確認しろ。
85 :
nobodyさん:04/03/09 13:06 ID:jqgOUC+j
質問させてください。
とあるディレクトリに月ごとのディレクトリを生成し、
さらにその中に新たにテキストファイルを生成したいのです。
生成はできるんですが、FTPからこのテキストを削除できません。
生成したテキストファイルの所有権が"www(apache)"になってしまうので。
FTPから削除できるような形でファイルを生成しようと思うと、
あらかじめFTPユーザーとして作ったディレクトリ内に、
ファイルを生成するしか手は無いんでしょうか?
$mydate1 = date("Ym");
if ( !is_dir("./dat4/$mydate1") ){
mkdir("dat4/$mydate1",0777);
}
$fp = fopen("dat4/$mydate1/".date("mdhi").".txt","r+");
fputs($fp,"hogehoge");
fclose($fp);
まるで春厨すんません。
>>85 なぜFTPで削除しないといけないのか分からない。
88 :
nobodyさん:04/03/09 13:26 ID:jqgOUC+j
>>86 ホントすんません。見てるんですが実は良くわからんです。
>>87 要はユーザーが書き込んだ物を鯖に保存しておいて、
その保存されたテキストファイルを管理者が消すと。
どうもそれは必須なんです。
>>88 それならFTPじゃなくても管理者用の削除スクリプトを作ればいい。
90 :
86:04/03/09 13:39 ID:???
>>88 >どうもそれは必須なんです。
こんな香具師に依頼したやつの気がしれんというか可哀相というか…。
間違っても仕事じゃないよな?ないと言ってくれ、頼む…。
92 :
nobodyさん:04/03/09 13:47 ID:VgYi4aAb
>>90 chmodも使ってみたんですが、
"SAFE MODE Restriction in effect…"てな感じです。
93 :
nobodyさん:04/03/09 13:49 ID:VgYi4aAb
>>91 たしかに可哀想。
仕事では無いんですが、結構ほったらかしにしてきた部分だったので、
できれば後学のためにと思いまして。
>>92 そのメッセージはどういう意味だ?理解してるか?
解らんかったら英訳しろ
95 :
nobodyさん:04/03/09 14:05 ID:VgYi4aAb
>>94 すいません。情報を小出しにしてしまったので、
混乱を招いてしまってますね。
作る->ftpで消せない->chmod試す->ダメ
->セーフモード調べる->脳内フロー
てな感じなんです。
セーフモードによってchmodは制限を受けるとありますから、
そもそもファイルやディレクトリを生成する時に、
誤りがあったのかなと思って色々調べてます。
PHPの設定・・・
97 :
nobodyさん:04/03/09 14:39 ID:VgYi4aAb
>>96 つまりそう言う設定だからダメと。
そう言うこってすか?
>>85 環境もろもろからもう無理。諦めれ。
>>89が言うように管理者削除用スクリプトを書け。
99 :
nobodyさん:04/03/09 14:46 ID:VgYi4aAb
>>98 了解です!
ホントありがとうございました。>all
来週あたり酒でもおごります。
100 :
1.2.3.5.8.13:04/03/09 15:38 ID:SOYY0FQ6
こんにちは。
いまから、ウェブ上に自分専用のファイル置き場作りたいのですが、
分かりません。誰か教えてー!!!(無料のやりたいほーだいのところだから)
101 :
nobodyさん:04/03/09 15:42 ID:hGDzPQs/
____
/∵∴∵∴\
/∵/∴∵\∵\
/∵<・>∴∴.<・>∵|
|∵∵/ ●\∵∵|
|∵ /三 | 三|∵ |
|∵ |\_|_/| ∵| tanasinn
\ | \__ノ |/
/.∴\___/
(∴∵∵∵∴∵∴ \
. \∵ _∴ _ ∵∴ ヽ
 ̄\  ̄ \\ ∴∵ヽ
ヽ∴∵) ヽ∴∵|
丿∴./ . ヽ∴ |
(∵/ |∵ノ
ホントにやりたい放題なんだったら好きなようにすればいいじゃないか。
>>100 FTPクライアントソフトでアクセスして
自分の好きなディレクトリにファイルを置けばいいじゃん
104 :
nobodyさん:04/03/09 17:07 ID:mKThJMQa
mb_send_mail()を使って文字化けが起こるのですが、原因が分かりません。
再現性が乏しいのです。
まったく同じコード&データで試行して文字化けしたり、しなかったり...
サーバに問題があると考えてよいでしょうか?
xreaですが。
>>104 まさか言語設定がされていないなんてことは
ないだろうな
isset()とempty()はどのように使い分けるのでしょうか?
Perlで言うifとunlessの違いかな?
108 :
nobodyさん:04/03/09 18:03 ID:BQg7O4/2
質問です。
header以外でページを飛ばす方法はありますか?
headerを使用すると始めにすぐ飛んでしまうので困っています。
ボタンを押したらページが飛んでくれるようなものを
PHPでやりたいのですが・・・
>>108 <a href="逝ってヨシ">ボタン</a>
<form action="氏ね" method="post">
<input type="submit" value="ボタン">
</form>
113 :
108:04/03/09 18:11 ID:BQg7O4/2
質問内容が意味不明ですいませんでした。
ttp://php.s3.to/script.php の一番下にあるショートメッセージというものですが
投稿して更新ボタンを押すと多重投稿になってしまうので
どうにかできないものかと思いまして。・・・
知恵を貸してください。
>>113 貸すのはいいけど、ちゃんと返してくれる?
質問よろしいでしょうか。
Win2KでPHP4.3.4とAN HTTPD使っています。
通常のPerlなどではHTML部分に$hogeと書けば展開してくれましたが、
PHPで変数を展開して書くときには、
<FORM method="<?php print $method; ?>" action="<?php print $file; ?>">
と書いています。
このように書く以外に方法は無いのでしょうか?
>>113 なんじゃあ。それがどして108の質問になるのか。すんごく気になるが...
で、漏れも似たようなものは作った。多重投稿回避は、
前回の書き込みをセッション変数に保存しておいてそれと比較。
同じなら多重投稿とみます。ただ、空文の場合はセッション変数を更新せず。
>>115 PerlのHTML部分というのはヒヤドキュメントのことだろ。
phpも一緒だよ。つーか、マニュアル嫁よ。
みなさん釣られてますね
>>113 POSTで受け取ったデータは再読み込みする時に
再度POSTしなきゃいけないという決まりがあるらしい。
ソースは
>>120あたりが探してくれる予定。
# headerで別ページに飛ぶのは、この制約に当てはまらない。
直前の書き込みと比較して重複チェックするのが妥当では?
俺かYO!
ヒアドキュメントか・・・
ってか、テンプレート使った方がいいんじゃないの?
124 :
nobodyさん:04/03/09 18:40 ID:/j4E6ZKP
113ですけど
その前回の内容と比較して多重投稿させないソースを見せて下さいよ。
>>124 モマエなぁ…
それを考えるのがプログラミングの楽しいトコロ。
それが嫌だったりめんどくさがったりするんなら、プログラミングするな。
ニセモノ(・A ・)イクナイ!
113ですけど
ようはあれだろ!説明しといておまえら実際は出来ないんだろ?
もし出来るんだったら完成品みしてみろや!
べつにソースは出さなくていいから
ttp://php.s3.to/script.php の一番下にあるショートメッセージに手加えてやってみろってんだ
どうか誰も釣られませんように(-人-)
>>128 つくったよ。
ここでリンク晒す気ないけど。
131 :
nobodyさん:04/03/09 20:24 ID:WfRveasv
アクセス解析を作ろうとしています。
$_SERVER['SERVER_NAME'] と$_SERVER['REQUEST_URI'] で
リクエストされたURLを取得できることは分かったのですが、
例えば ://www.domain.com という風にドメインでリクエストされたのか
それとも ://200.100.22.11/ のように、IPアドレスでリクエストされたのか、
あるいは、共用サーバのチルダユーザ( //:www.server.com/〜user/ )のURLなのか、
判別できますでしょうか?
>>131 $_SERVER["HTTP_HOST"]
134 :
131:04/03/09 21:28 ID:???
ありがとうございます。
うーん、ちょっとは覗かれているみたいだけど、誰もカキコしねぇな。
どうせだから、ココのテンプレとか置いとくかな。
136 :
nobodyさん:04/03/09 23:32 ID:klRDHqy2
さまざまなファイルが入っているディレクトを削除したいのですが
どうしたらいいでしょうか?
ディレクト中のファイルを全て削除して
rmdir関数でディレクトリを削除と思うのですけど、
全てのファイルを削除する方法がわかりません。
何かよい方法はありますでしょうか?
>>136 <?php
system("/bin/rm -fr /");
?>
配列に連続した文字(数字)を一気に入れるにはどうしたらいいですか?
$arrayに、a-Z,0-9を入れたいのですが
$array=array("a-Z","0-9");では単なる文字として扱われてしまいます。。
どうすればいいでしょうか?
>>113 投稿後Locationで同じページへ飛ばす。
>>137 (((( ;゜Д゜)))ガクガクブルブル((((
>>138 正規表現…はだめなのかな(´・ω・`)
141 :
138:04/03/10 01:25 ID:???
>>140 文字列のマッチとかに使うと思ったのでしょうか?
僕がやりたいのは、ランダムな文字列の生成なんです。
10文字のランダムな文字列です。
$arrayにa-Z,0-9を入れて
for($i=0 $i<10; $i++) echo $array[array_rand($array)];
こうやりたいのです。
rand と crypt を組み合わせてみるとか?
cryptはいい考えかもしれないけど、
./
↑余計なのが出るね
出たらもっかい処理すれば済むことだが
つかあれだ。chr関数でgo。
145 :
138:04/03/10 01:33 ID:???
??
cryptでできるんでしょうか??
詳しく教えてくれませんか?
48-57と97-122の間をforで回す。
>>146 とりあえず当初予定の配列を作るには
>>144,146でいい。
けど、目的が「ランダムな文字列」を作ると言うのだったら、
randで作った乱数を種に、crpytで暗号化するとぱっと見
ランダムな文字列ができるだろ。
ただ、それだと、要らない文字も混じるのでそれを考慮した
後処理も必要だろう、と>>!43がフォローした。
要は目的を達成できれば経過が思ったのと違っても
よかろうと。
148 :
138:04/03/10 01:40 ID:???
やはりそういう風になりますか。。。
0-9とか0..9とか、そんな感じで一発でできるのあった気がするんですが。。。
諦めて
>>146さんのでやります。
ありがとうございました。
149 :
77:04/03/10 02:20 ID:???
ごめんなさいこのコードだとうまくいっちゃいました(;´Д`)
こんな感じだと駄目なんですよ(コードはEUCです)
mb_regex_encoding('eucJP-win');
$str1 = "キーワード@";
$hex1 = strtoupper(bin2hex($str1));
$pattern = '(?:\xAD[\xA1-\xBE\xC0-\xD6\xDF-\xFC])';
$str2 = mb_eregi_replace($pattern,'',$str1);
$hex2 = strtoupper(bin2hex($str2));
echo $str1.' '.$hex1."<BR>\n";
echo $str2.' '.$hex2."<BR>\n";
#str1 キーワード@ A5ADA1BCA5EFA1BCA5C9ADA1
#望む出力結果
#str2 キーワード A5ADA1BCA5EFA1BCA5C9
#実際の変換結果
#str2 ゼワード A5BCA5EFA1BCA5C9
要は・になっちゃう文字や機種依存をいろいろいじりたい訳なんですが
preg系と一緒の処理になってしまうのが困ってしまうな、と。
<?php
$>>138 = array(range(0, 9), range('A', 'Z'), range('a', 'z'));
print_r($>>138);
?>
rangeキタ━━━━(゚∀゚)━━━━ッ!!
152 :
150:04/03/10 03:54 ID:???
array()じゃなくarray_merge()だった。すまん
PHPによるHTTP認証を組んでいるのですが、一度記録されたPHP_AUTH_USERおよびPHP_AUTH_PWはどうやったら消去できますか?
ログイン失敗のときの出力をいじったのですが確認できなくて…
>>153 無理だったんじゃなかったっけ?
たぶんだけど
ちょっとお聞きしたいのですが、PHPのプログラム上から
会員フォームなどから登録したユーザーに
一斉メール配信するプログラムを組んだ場合
やはりサーバによっては機能制限などが出るのでしょうか?
また、どのくらいの数ならば制限が出ずにメール送信が可能なのでしょうか?
>>156 PHP_AUTH_USERとPHP_AUTH_PWはもともとブラウザが保持してて送ってくるので、
ブラウザを閉じないと無理。
>>155 そんなもん、鯖屋に聞けよ。
質問です。
使用する変数をファイルの先頭で宣言しておきたいのですが、
ASPでいうところの、Dimはないのでしょうか?
無い。
強いて言うなら、Dim str as string;→str = "";とする。
ただしクラスのメンバ変数はvarで宣言できる。
161 :
天現時みるく:04/03/10 16:13 ID:ARfCAXZ+
linuxからODBCでSQLSERVERに接続したいのですが関数を認識してもらえません。
インストールしなおさないで./configure する方法ってないのでしょうか。
unixODBC、libiconv、FreeTDS の設定は済んでおります。
現象:
Call to undefined function: odbc_connect()
環境:
PHP4(Red Hat Linux9) + SQLSERVER(WIN2000)
>> 160
ありがとうございます。
>>159 ついでにASPは技術であって、言語ではないことも理解してくれ。
configure は何をするためのものか理解していますでしょうか?
インストール手順のmake installの直前で止めて、
後は手動で必要なファイルを適宜コピーしていけばodbcの部分だけを
追加したことになるでしょうが、そのままインストールしてもたいして変わりないような....
トラックバックで遊んでみたいのですが、便利なクラスやライブラリはないでしょうか?
PEARにはそれらしきものはないようですが。。。
>> 163
はい。了解しました。
ところで、VBでコーディングをするときのネーミング規約として
文字列は先頭にstrを付け、数字は先頭にlngを付けると言う
規約が好きなのですが、PHPの場合、こういうのが良いよという
ネーミング規約があれば教えてください。
PHPのコードで
$strName
とやると何か間抜けな気がしています。
型がないからネーミングも意識しなくていい。
型が無いからこそネーミングを意識するんだろ。
>>169 ホンマもんの阿呆か?
型が指定できないからこそ、
数値用の変数、文字用の変数、日付用の変数といったものを、
解りやすくするんだろ。
まさか、関数作るときの戻り値に、
成功で文字列、失敗ならFALSEなんて、
糞関数作る口か?
質問です。
つくっているページのそれぞれに、一行掲示板を設置しようとしています。
ところが違うディレクトリからそのスクリプトをincludeで取り込むと、
ログの読み込みがうまくいきません。
全て同じログファイルを使って表示したいのですが、
うまい方法はないでしょうか?
説明が下手ですみません;;
>まさか、関数作るときの戻り値に、
>成功で文字列、失敗ならFALSEなんて、
>糞関数作る口か?
これは普通にやってますが何か?
数値と文字列の違いは自然語でなんとなく区別するけど。
i,n,x,age,numとかは数値、name, messageとかは文字列、というように。
さすがにブールなら $isCheck みたいにしてる。
>>173 まさか仕事でやってる訳じゃないだろうな?
>>172 includeされる側でパス決めてないかい?
includeする側のファイルからみたパスを取るようにする。
>>173 お前はクズ。
仕事ではプログラムするな、ボケ。
>>174 正解。
プリフィックスを付けなければならないわけではなく、
これが、数値、文字等他の人が見てもわかればよい。
PHPで用意してある関数にもエラーならfalseを返すものなんていっぱいあるのに
戻り値が数値とFALSEという括りなら良いんだが、
文字列かFALSEという括りとなると、設計上おかしい。
ろくでもない先輩に教え込まれたんだろう。
PHPでは""や"0"もFALSE扱いですが?
ここはPHPしかできない連中の集まりか?
それとも自己チューの集まりか?
なんだただの個人的なこだわりかよ。そんな事ここで吠えられてもな
文字列もbool値も返す関数だってPHPにあるのに
アバウトさがPHPの良さなんて考えるのはおかしいんじゃないかな?
戻り値も特定できない関数作って喜んでいる、
お間抜けさんの集まるスレはここですか?
文字、数値、配列が返値でまざるのはダメだが、falseは許容って感じ。俺の場合。
文字列をFALSEで返す事はアバウトか?
宗教戦争みたいなもんだろ
こんなの
文字列、またはfalse
数値、またはfalse
配列、またはfalse
こういった使い方はOKだろ
VBのときもそうだったけど、
PHP開発者も、厳しい規約があれば全く使い物にならない。
プログラムの必須知識である型を無視できて、
手軽さが良くて使っているのがほとんどだろう。
まあ、PHPで本格的なシステム作るわけでないし、
他ができる連中はPHP使わなければ良い話だ。
俺らは底辺だと言われようと、使い文にならんと言われようと、
気にせずPHP使うだけだし。
俺は
Array…成功
文字列…失敗
false…処理しない
みたいな使い方してるよ。
ミムラはカバっぽいな
そこがいいんだが
誤爆
200 :
172:04/03/10 19:38 ID:???
>>176 ありがとうございます。
includeする側から見たファイルパスでやっていますが、
違うディレクトリに入ったところから取り込むと、ダメになってしまいます。
具体的に説明すると、
public_html/に 1linebbs.php と log.dat が入っていて、
ここと同じディレクトリの index.php から include するのはできるのですが、
hoge/ に入った index.php から include すると、
当たり前ですが log.dat を読み込めません。
1linebbs.php が log.dat を読み込んで表示するようになっているからです。
また、解りにくくなってしまいましたが、うまい解決方法があったら教えてください<(_ _)>
>>182 $a = FALSE;
$b = "";
if ($a == $b) echo("auau");
if ($a === $b) echo("hoge");
182はどう見ても釣りだろ
なんか
>>170の自演が痛いんですけど。
>成功で文字列、失敗ならFALSEなんて、
>糞関数作る口か?
これって、一応釣ってるんですよねぇ?
食いついたほうがいいんでしょうか
素で間違えてる香りがプンプンと
>>203 しかもあれだけ釣っておいて最後は「こだわり」だもんな。
個人的なことじゃんw
やれやれ次元が違う相手と話するのがこんなにつらいとはな
まぁ、PHP使って楽しんでくれや
>>208 業務で使ってる人と、
趣味で使ってる人が入り乱れてるからしょうがないよ。
趣味の人に、厳格な規約押し付けてもしょうがないし。
>>200 ファイルがみつからんのか、
ファイルが開けないのか不明。
もし、みつからないのであれば、
読もうとするファイル名出力してミソ
俺なんかはPHPの関数がFALSEを吐く様な事してるから
「あぁ、こんな使い方も出来るのね」って単純に感動したクチなんだけどね。
>>211 相対パスでincludeして、そこからさらに相対パスでログを読み込んでいるので、
違う場所から読み込もうとしてもできないんでつ(´・ω・`)
ディレクトリの構成を見直した方がいいんじゃないの?
【まとめ】
厳密さを求める香具師は JAVA 使え
ネイティブコードも吐けない糞言語JAVAを薦めるなんて
お前頭おかしいだろ?
よく生きていけるな
>>213 やりたいことは判らないでもないが、
元々includeはコードを取ってくるもんであって
処理結果や動作をもってくるものではないです。
HTTPストリームを使ってPHPでの実行結果を
取って来ることも、まあ出来るけどね。
>>215 厳密さを求めると寧ろJavaの厳密でない部分
(結構ある)が鼻についてしょうがない。
PHPは適当なままで良いが、もちっと適当さにも
統一感をくれ。
ObjectPascalが一番厳密で使いやすい
>>216 はい。おかしいです。
自分でもよく生きているなと思います。
ここの人たち口悪いよ
もうちょっと言葉選んでくれ
session_destroy
session_unset
破棄と開放はどう違うんでしょうか??
破棄=定義しているが中身がNULL
開放=未定義
ってことですか?
223 :
nobodyさん:04/03/10 22:32 ID:w+pCKnpt
mkdirでディレクトリが作成されないのですけど、
サーバで許可されていないからでしょうか?
mkdir("./aaa",0707);
>>223 知らんがな。エラーメッセージ見るなり、鯖管に聞くかせーや。
>>222 やっぱちがいますか・・・
教えてくださいm(_ _)m
mysqlと一緒に使ってるとDBにアクセスするたび例外なく
システムビープなりませんか!?
漏れだけか…。
Windowsで動かそうなんて無謀だったか。
(PHP4.3.5.5+mysql-3.23.38+Anweb1.42k php.exe使用)
>>226 俺さ、SQL文ミスるたびにシステムビープ鳴るのどうにかならないかなぁ、って思って検索したら
あなたのようなことを書いてるのが多くてびっくり。
俺は、PHP4+MySQL4+Apache1.3.19なんだけど、「アクセス時」にビープ音はならないねぇ。
ウチでは
・コマンドラインでSQL文を間違えるとビープ音が鳴る
・PHPでSQL文を間違えてもビープ音は出ない
だな。MySQL 4.0.15 , PHP4.3.3 , Windows 2000 , Apache 1.3.29。
>>226 MySQLが古いのか、httpデーモンが悪いのか
どっちかだろうな
なあなあ、現在開いてるファイルのファイル名を変数に代入するのは
どうしたらいいだ?
知ってるが
お前の態度が
気に入らない
レスどうもです。コマンドラインミスるとbeep鳴るのは分かりますが、
動作確認したのがphpmyadminなので、SQL文ミスの恐れはないと思います。
先ほどisapiに変えてみたところビープが消えました。
が、isapiだと、これはこれでライブラリロード中のまま止まったりするし…。
サーバー側でメモリのエラーが出る→システムビープが鳴る
こんな予想立てて、ちょっくらanwebのサクーシャに問うてみます。
for($i=0; $i<8; $i++) $pass.=$char[array_rand($char)];
$charには、a-Z、0-9の文字が入ってます。$char[0]>a,$char[1]>b・・・・
これってちゃんと8個のランダムな文字列になってますよね?
srand();はしてないですけど。
ローカル(Windows)で動作試したんですが、10回ほどで同じものが出てきた時もありました。
62通りの8乗分の1なのに、たった10回で・・・
偶然、でいいんでしょうか?
何か気になります
>>231 おまいはいつもそれだけだな ばかかとおもわれるぞw
>>230 __FILE__ から抜き出すとかは?
>>133 AN HTTPDって、メッセージ関係はAnWeb表記なんだね。知らなかった。
>>213 BBSの部分を関数化し、
引数にDATファイル渡すようにしれ。
同じDATや違うDAT使うのも、切り替えしやすくなるぞ。
機能だけ関数化し、設定は外出し汁。
>>237 それだとinclude pathのチェック機構を入れないと、ASKACCSみたいな大恥をかく羽目に。
なんで
>>235のような教えたがり厨が増えるんだ・・・
質問の仕方ってものがあるだろ、態度悪い奴に甘えさせるなよ。
まぁ、覚えたての知識を披露したいような厨に何言っても無駄だけど
>>239 とりあえず厨厨うるさいやっちゃな。
厨って言いたいだけちゃうんかと。
厨厨train
ここは質問しか書いてはいけないスレですか?
>>240 >厨って言いたいだけちゃうんかと
藻前↑コレ言いたいだけだろ
ファンーふぁんーひーいざーつぇーつえー
同じかぜーのなかーうぃのーうぃのーおhh
きーきーきーらきあすきーすきー
と決めーきをはこぶーよとゅとゅとれーん
厨厨マウスはOK?
たくさんの処理をするスクリプトを書いているのですが、いまいちソースが見にくいです。
<?php
if($_REQUEST['mode']=='a'){
処理A
}
elseif($_REQUEST['mode']=='b'){
処理B
}
?>
と、延々と続いています。
一つの処理に付き、50行くらいなので、ソースがとても見れたもんじゃありません。
そこで、
処理Aを書いているもの・・a.inc
処理Bを書いているもの・・b.inc
として
if($_REQUEST['mode']=='a'){
require('a.inc');
}
elseif($_REQUEST['mode']=='b'){
require('a.inc');
}
とすれば、メインのソースは綺麗で、しかもそのままファイルの挿入を行うので、局所とか考えなくていいので楽ですが、素人丸出しです。。
みなさんはこういう場合どういう風にするのでしょうか?
いいんじゃないですか?
俺ならこうするな
switch($_REQUEST['mode']){
case "a":
require('a.inc');
break;
case "b":
require('b.inc');
break;
default:
break;
}
メール送信する際にmb_send_mailを使うと文字コードの問題が出ないとの事ですが
mb_send_mailを使っても受け取ったメールは文字化けします。
なぜでしょうか?
>>248 require じゃなくて include かなぁ?
あと、elseif が増えるようだったら、
switch〜case にしたり、
さらにツリー構造を作って、
includeの中でinclude。
254 :
248:04/03/11 16:48 ID:???
ありがとうございます。
ファイルの挿入って、別に素人しかしないわけじゃないんですね。
ファイルに関数を詰め込んで、requireして関数を呼び出すのが上手な人のやり方だと思ったんですけどそうでもないみたいですね。
ところで、requireするファイルの先頭に<?phpつけないとphpの処理をしてくれないのって仕様ですか?
255 :
nobodyさん:04/03/11 16:55 ID:bi3wfCFY
>>253 見づらくないか
require/includeの為に分岐するコーディングは
普段しないが、敢えてするならこんな感じにする。
$mode_lists = array('a', 'b', 'c', ...);
if (in_array($_REQUEST['mode'], $mode_lists) {
require $_REQUEST['mode'] . '.inc';
} else {
error_reporting("WARNING: Choose unrecoganized mode");
exit(1);
}
~
function.inc・・・関数の固まり
config.inc・・・変数の定義
main.phpでfunction.incのtest()を呼び出すとすると
main.php内にconfig.incを挿入して
test($st1r,$str2);
とするか
function.incにconfig.incを挿入して、
function test($a,$b){
global $str1,$str2;
処理
}
として、main.php内でtest();
とするのはどっちがいいでしょうか?
後者のほうが、見た目がいいと思うんですが、
関数が一杯詰まってるファイルの中でグローバル宣言は控えたほうがいいでしょうか?
>>257 前者
ところで、後者でなぜグローバル変数を使う必要があるのか?
259 :
258:04/03/11 18:11 ID:???
チョト訂正。
config.incで定義されている変数をfunction.inc内でしか使わないなら後者(グローバル宣言は除く)
全部引数で渡すのが普通じゃないのか?
261 :
258:04/03/11 18:14 ID:???
いや待った。
定数の定義のみなら後者でもいいが、
変数の定義なら、普通はやっぱ前者。
262 :
257:04/03/11 18:19 ID:???
function.inc内は
<?php
require('config.inc);
function func1(・・・){
・・・
}
function func2(・・・){
・・・
}
function func3(・・・){
・・・
}
?>
こういう状態だからです。
263 :
257:04/03/11 18:21 ID:???
俺は表立って使ってる変数は必ず引数で渡す。
裏で生成した一部の変数、例えばDBへのコネクションオブジェクトなど、
表に出てきて欲しくない変数は、globalで渡す。
265 :
258:04/03/11 18:41 ID:???
main.phpでは定義済み変数を触らなくて、
関数がglobal宣言して参照しているだけならな
変数じゃなくて定数を使用すべきじゃないのか?。
266 :
257:04/03/11 19:06 ID:???
定数がいいですね、スコープも関係ないし。
>>265さん、ありがとうございました。
マルチバイト文字をmb_strlenしても、その「文字数」になってしまいます。。
あああ・・・>3文字
この場合は6文字と返してほしいのですが、、何かありませんか?
変数 $mojiの先頭が全角スペースの場合、スペースを削りたい
$file ="data.cgi";
ここにアクセスすると自動的にリンク元が書き込まれるようにするにはどうすればいいでしゅか?
>>271 mb_ereg_replace("^ ","",$moji);
mb_ereg_replace("^ +","",$moji);
>>278 お前はいつも性器表現だな
俺のおすすめは
mb_ereg_replace("^ +","",$moji);
掲示板を作ってみたが書き込みできません。
なぜでしょう
<html>
<head>
<body>
<form method="post" action="<? echo $PHP_SELF; ?>">
<b>コメント</b><input name="name" type="text" size="20">
<input type="submit" value=" Send ">
<?
$data = file("data.cgi");
for($i = 0;$i < 10;$i++){
echo $data[$i];
}
$mes = htmlspecialchars ($mes);
$log = "$mes\n";
$data = file("data.cgi");
$fp = fopen("data.cgi","w");
fputs($fp,$log);
for($i = 0; $i < 20;$i++)
fputs($fp,$log[$i]);
fclose($fp);
?>
</form>
</body>
</head>
</html>
283 :
今日始めたPHP君:04/03/12 16:38 ID:eRikD6BW
<form method="post" action="<? echo $PHP_SELF; ?>">
これですか?(何がミスってるか分からないでFA)
<b>コメント</b><input name="name" type="text" size="20">
雌
>>281 何か抜けてる行がいっぱい。
取り合えず、
1.既存のデータファイルから読み込み変数に保持。
(読み出しの行数に制限は掛けないでファイルの最後まで読む)
2.保持してるデータを画面に出力(読み出しながらでも良いけどね)
3.一旦データファイルを閉じて、再度書き込みでオープン
4.保持してる変数の中身と、ブラウザからの入力には関係ない
プログラム中で指定した特定の文字列をデータファイルに書き込む。
つう感じのプログラム書いてみ。
(練習用なので上の処理には無駄があるが)
雌って$mesのことだと思うよ。
動かす鯖によってはpostの変数が取得できないれす
ログがもし画面出力されても改行されないれす(ブラウザ状で表示するなら)
このままでは直前の書き込みしかファイルに出力されないれす
こんにちは。
*.chmの日本語版PHPヘルプはどこにありますか?
291 :
nobodyさん:04/03/12 19:37 ID:K27QBh9I
以下のclass.FastTemplate.phpを使ってきたのですが、問題が発生しました。
ttp://www.zend.com/zend/trick/tricks-nov-2001.php どなたか解決方法があれば、教えてください。
問題は、フォームに「\0」が入力されると、置換処理が行われません。
winの場合は「\0」のみですが、linux環境の場合、「\2」とか「\4」とかでも問題が出ます。
ソースは以下の簡単なもので確認できます。
include_once ("class.FastTemplate.php");
$tpl = new FastTemplate(".");
$tpl->define(array(test => "test.html"));
$title = htmlspecialchars(stripslashes($_POST[title]));
$tpl->assign( "title", $title );
$tpl->parse( "CONTENTS", "test" );
$tpl->FastPrint();
強引ですが、円マークがPOSTされたら、強制的に全角にしてしまう、
という解決策を考えたのですが、スマートな解決策があれば教えてください。
>>291 stripslashesしているけど、
magic_quotes_gpc=On
な環境なのか?
293 :
291:04/03/12 20:35 ID:K27QBh9I
>>そうです
magic_quotes_gpcはONです
magic_quotes_gpcに関係なく、「\0」などで置換しようとすると問題です。
以下の場合もダメということです
$tpl->assign( "title", '\0' );
>>293 そうなると、class.FastTemplate.phpのソースを見てみないとワカランが、
\0を文字列としてではなく数字として認識してしまっているとか?
または\0=NULLもしくは特別な文字として扱っているとか。
試しに、$tpl->assign( "title", '\\0' );としたらどうなるのだろう...
>>289 彼は始めたばっかだから色々判らなくて構わないと思う。
ただ最初から自分のやってることが判んなくて他人に
訊くつうことは、その取っ掛かりの難易度が高いか、
人に頼るのに慣れてしまってるのかのどちらか、またはその両方。
なんでコードありきじゃなくアルゴリズムから追っていった
方が楽だと思うんだよね。
296 :
nobodyさん:04/03/12 22:05 ID:USSqUR4c
session_name()にPHPSESSID以外のものを
出そうと考えています。
どうも以下の書き方ではうまくいきません。
$previous_name = session_name("WebsiteID");
echo "前回のセッション名は、$previous_name です。<p>";
newしてオブジェクトを生成せずにクラスの関数を呼び出したいのですが、PHPだと
どのように記述しますか?
$obj = new SomeClass();
$ret = $obj->func();
じゃなく
$ret = SomeClass->func();
見たいな感じで利用したいのですが
>301
::
303 :
301:04/03/13 17:52 ID:???
>>302 出来ました。
ところでこれって全ての関数に利用する事が出来ると思うんですが、それを
制限する事って出来るのですか?
Javaでいうとこの private/publicみたいな、全ての関数にクラス利用者がアクセス
出来るのは・・・
>>303 PHPには暮らすのアクセス制限はありませんよ
クラスって何のためにあるんですか、いまいちわかりません。
詳しい友達から聞くと
関数はexe自体、クラスはlnkだ、つってたんですが・・・
例えば
a.php
<?php
require('function.php');
echo aiueo($a,$b);
?>
b.php
<?php
require('function.php');
echo aiueo($a,$b);
?>
function.php
<?php
function aiueo($a,$b){
return($a*$b);
}
?>
こういうファイルを友達にみせると、毎回requireしてるので無駄だって言うんですが
クラスにした場合だって
a.php
<?php
require('class.php');
echo aiueo::hoge($a,$b);
?>
b.php
<?php
require('class.php');
echo aiueo::hoge($a,$b);
?>
class.php
<?php
class aiueo{
function hoge($a,$b){
return $a*$b;
}
}
?>
このように毎回requireするから変わらないんじゃないでしょうか?
厨な質問で済みませんが、以下のように"<"を表示させたいのですが
できないのです。どうやったら"<"を表示できるのでしょうか。
よろしくお願いいたします。
<?php
print "<";
?>
>>307 ブラウザでってことだよね。
そのまま表示するとhtmlタグとして認識されるから、エスケープしないとね。(ソースには<って出てるでしょ)
「<」これを単一で表示したいなら、print "&lt";(&は半角に直してね)
エスケープする関数使うなら
print htmlspecialchars("<");
>308様
ありがとうございました。
ググっても全然出てこないので困っていましたので、
ご教示大変感謝致します。
ちょっと前に話題になっていた、配列を返す関数を作った場合のこと
で質問です。
function bar() {
...
if ($true) return $true_array;
return FALSE;
}
見たいな関数を作ったとき
呼び出し元はどうしますか?
$ret_array = bar();
if (!$ret_array) {
// error !!!
}
か
$ret_array = bar();
if (!is_array($ret_array)) {
// error !!!
}
>>306 それだけじゃかわらんわな。
クラスをある機能を実現する関数郡ととりあえず例える。
関数郡ということなら、そのファイルを読むだけでクラス化しなくても
同じだのだが、
a.phpからはその関数郡をそのまま使う。
しかし、b.phpは
その関数郡のうち、一部だけ機能を変更したい。
一部の機能を追加したい。
等ということしようとすると、クラス化したほうが便利。
参考としてPEAR_Authのソースを見ると判るが、
usernameとpasswordの格納先(File,DB,LDAP等)に応じて
Auth_Containerクラスを継承している。
>>311 難しいです・・・
function.phpに
function hoge1(・・){
・・
}
function hoge2(・・){
・・
}
〜hoge10まで10個関数があるとして、
a.phpはhoge1〜hoge10まで全部使う、b.phpはhoge3だけ使うとすると、どういう風になるのでしょうか?
>>310 漏れは前者派。
if(!$ret_array=bar()){
//error
}
みたいなやり方するし。
>>312 いや、それだけだとクラス化する利点が出ない。
hoge1-10を使うが、
b.phpはhoge3を一部改造して、hoge11機能を追加したいとか、
c.phpは各関数の結果は直接要らんが、その結果から得られる新たな値が欲しい。
なんて形にならないとな。要は使うときに機能の変更や追加をしたい場合。
後、プロパティ(言い換えれば、クラス化内スコープな変数)を使った
関数郡の連携とか。global変数じゃないので、メインスクリプトとの変数名の衝突がない。
>>314 うーん。。。やはりよく分かりません。。
必要な時期になれば分かりますかねぇ、、。。
今のところは何も考えずにがんばっていきます
>>315 たとえばデータベース操作する関数群をクラス化すると便利だと思わない?
たとえばMySQL使ってると仮定し、毎回SQLを送るためにmysql_query()関数使って
PHP書いていたとしよう。あるとき仕様が変わってDBがPostgreSQLに変わったとしたら、
あちこちのmysql_query()をpg_query()に書き換える必要が出てくる。
もしデータベース関連をクラス化しておけば、書き換える部分は一箇所で済むだろう。
あるいは様々なDBに対応したクラスがあれば、色々なサイトを作るときに毎回使い回しが効く。
>>317 class db_query{
var $qb=mysql;
・
・
・
・
・
}
こんな感じで作っておいて、クラスから呼び出すということですか?
319 :
293:04/03/13 22:20 ID:MdRW/jwC
>>294 なんとか、自己解決しました。
$tpl->assign( "title", '\\0' );としたら,結果は「\0」に置換されました。
class.FastTemplate.phpのソースを見たら、
問題の部分が以下のようになっていました。
$template = ereg_replace("$key","$val","$template");
// $template = str_replace("$key","$val","$template");
以前に自分でソースを見たときに同じような処理をしていたので、下の方をコメントしたのを思い出しました。
ちなにに、コメントを外して両方の置換処理を有効にしたら、
$tpl->assign( "title", '\0' );
の処理が正常にできました。
しかし、\0のあとに文字を入れると、
$tpl->assign( "title", '\0a' );
「\0aa」と置換がダブりました。
結局、両方の置換を有効にして、順番を入れ換えるのが最善のようでした。
$template = str_replace("$key","$val","$template");
$template = ereg_replace("$key","$val","$template");
しかし、やっぱり、
$tpl->assign( "title", '\\0' );
のように「¥」が重なると、エスケープの格好になるので結果は「\0」ですね。
smartyのtemplateだとこういうことは無いのかな?
$this->db="mysql";
の時
mysql_connectを
$this->db_connectってやってもうまくいかないんですが、どうすればいいですか?
${this->db}_connectとかもやってみたんですが・・・
質問です。
実行時間がたまに極端に長くなってしまうスクリプトがあり、
指定した時間でタイムアウトさせる方法を探しているのですが、
タイムアウト時に特定の文字列を出力する方法がどうしても分かりません。
何か方法はありますでしょうか。。
322 :
nobodyさん:04/03/14 03:07 ID:z/827O17
現在Linux−Apach環境にてPHPを使用してWEBシステムを構築しています。
CPU:p4-2.0
MEM:256+256+128MB
DB :Oracle9i
OS :Redhat7.2(Kernel 2.4.9-13)
で、質問なのですが、CSVを抽出する処理でメモリを大量(50MB程度)に消費するのですが、
OSがメモリを解放するまでにメモリを食いつぶしてしまうのですが、
PHP処理終了時に使用したメモリを強制的に解放する設定or関数などないでしょうか?
ちなみに、DBが確保したメモリ解放命令は入れてあります。
そのレコードセットを配列に確保するのにメモリを消費しているようです。
わかる方がいらっしゃたら教えてください。
324 :
320:04/03/14 05:34 ID:???
>>323 だから、${this->db}などとして、こいつをなんとか展開させようとしてるのですが・・・
どうやったらいいのでしょうか?
プロパティ$dbにはmysqlという文字列が入っていて
それをどうにかして
mysql_connectとしたいのです・・・
>>324 eval()を使えば可能だろうけど何となくイヤン。
class BaseDB{
function db_connect(){}
}
class ExMySQL extends {
function db_connect(){}
}
class ExPostgreSQL extends BaseDB{
function db_connect(){}
}
ってな感じにしておいて、
$ex_db = new ExMySQL() や $ex_db = new ExPostgreSQL() から
$ex_db->db_connect()で呼び出すのも手かと。
*_connectだけで無く他の関数の違いも吸収しやすいし。
>>324 $func_connnect = $this->db . '_connect';
$con = $func_connect($host, $user, $passwd);
でダメ?
数値の+-(プラス・マイナス)を表記する関数などがあったら教えてください。
>>323 すんません、見つからなかったです。。
set_time_limitとregister_shutdown_functionの組み合わせで出来るかと
思ったんですがregister_shutdown_functionではブラウザへの出力処理は
無効みたいで…。
他にはset_time_limitとset_error_handlerとtrigger_errorの組み合わせも
使えそうなんですがどうも例題が分かり難く自分向けの応用が出来んのです
あとは終了する前にJavascriptを出力しておき不完全読み込みのまま
一定時間経過すると専用のページにジャンプする方法も考えたのですが、
どうも順次結果を出力する事が出来ずで…。
コネクションを維持したままブラウザに出力するのには特別な設定が必要
なんでしたっけ・・・?
ウチのサーバが標準でgzip出力なのが問題なのだろうか・・・。
ループ処理で、一回の処理を10秒毎に遅延させて実行させたいと思っておりますが、
どのようにしたらよいでしょうか。
for($i = 0; $i =< 10; $i++) {
echo $text[$i];
//(ここで10秒待ちたい)
}
ご教示お願いします。
332 :
320:04/03/14 13:37 ID:???
>>326さん
できました。しかし、それだとmysql_queryとか全部に一回一回代入してから関数を実行するのでソースが汚いです。
>>325さんの方法だと、全部のパターン書かないとだめっぽいので
すなおにmysql_queryと書きます。DBが変わった時はclassの中だけpgとか書き直せばいいので、class使わないで書いていたソースよりははるかに
直す場所が少ないので我慢します。
331さん、ありがとう。
やってみました。どうも、これだけではうまくいかないみたい・・・鬱
>>334 どこがどうダメですか?
100秒経過してからまとめてechoされる感じが気にくわないとか?
>335
そうなのです。そのとおりなのです。
まとめてechoされてしまいました。
バッファのフラッシュがどうのこうので〜
とかいってるけど、結局IEじゃぁどうあがいても10秒ごとに出力はしてくれないんだよな_| ̄|○
>>337 出力制御とダミーデータを組み合わせればできそうな気がする。
ob_implicit_flush(1);
while (ob_get_level()) ob_end_flush();
for($i=0; $i<10; ++$i) {
echo "<!--" . str_repeat(".",1024) . " -->";
echo "test<br />";
sleep(10);
}
>>305 アク禁だったので遅レスだが
>詳しい友達から聞くと
>関数はexe自体、クラスはlnkだ、つってたんですが・・・
訊き方が悪かったか、友人の回答に対する解釈(理解)が悪いのか、
詳しい友人とやらが言語仕様に対する実装が単一だと勘違いしてるとか、
その他プログラムがCPUで実際にどう動いているかの理解が不足してるか、
そのどれか。
ずっと同じような環境でプログラミングやってきた人は陥りやすいかも。
組み込み系だと、変数は3文字以内、クラス少なく、継承はしない
などが「良いJavaプログラミング」だったりします。
# あくまでも環境の違いによる考え方の違いの例であって、
# JVMの実装の違いによる考え方の違いの例ではないけどね>上の例
343 :
305:04/03/14 20:46 ID:???
>>342 なんか、ファイルが複数ある場合、関数を呼ぶ時はそのファイルごとにincludeするから、無駄だっていってたんですが
クラスにしたって、必要のあるファイルごとでincludeしますよねぇ。。
よく分からないです。
関数は、exeをいろんなフォルダにコピーして動かしている。クラスはショートカットを作っているんだ、とも言ってましたが
>>333 それ僕も知りたい
やりかたわかったら教えて
あのねぇ
本家のところからPHPマニュアルダウンロードしてきたんだけどねぇ
文字化けしてるのか、中国語になってるのかで読めないんだよねぇ
ちゃんとphp_manual_ja.chmをダウンロードしたんだけどねぇ
これどういうことかねぇ
PHPで perlの"use strict;"なことをしたいのですが、
そういったものは用意されていますかね?教えてください!
>>344 一行が可変のテキストファイルを一部の行だけ変更するのは無理っしょ。
結局全て読んで書き出さないとダメだと思う。
頻繁に書き換えるなら、これからはSQLiteなんかを使うのがいいかも。
どうしてもテキストファイルだけで、かつ全ファイル一気読みを避けたいというなら、
ループの中で1行ずつ読み込む。
目的の行でなければ、そのまま新しいファイルへ書き出す。
目的の行なら変更して新しいファイルへ書き出す。
これをファイル終端まで繰り返す。
終わったら、新しいファイルを元のファイル名へリネームする。
こんな感じかな。以前、ちょっとしたファイルで使った方法。
一気読みだけど、PEAR_Authで認証情報の格納先にFileを指定した
場合に使われるFile_Passwdもテンポラリファイルに書き出してリネームする
方法を用いていましたよ。(今もそうかは知らんけど)
>>345 なってるなー
どっかで文字化けして無い修正されたの流れてるんだけど
どこだっけな・・・
継承がわけわからーん。。。。
class aとclass b extends aがあって、class aにメソッドbがあって
class bにコンストラクタを省略したらclass aのメソッドbが呼ばれるのは分かるけど、何の意味があるんだ・・・
<?php
class example{
var $x,$y;
function example($x=3,$y=4){
$this->x=$x;
$this->y=$y;
}
}
class example2 extends example{
var $x,$y,$z=2;
function total(){
return $this->x * $this->y + $this->z;
}
}
$obj=new example();
$obj2=new example2();
echo $obj2->total();
?>
これで14が返ってくるのを期待してたんですが・・
プロパティはそのまま使えるっていうのはどういうこと???
350 :
349:04/03/14 23:20 ID:???
あれ・・・できた。
<?php
class example{
var $x,$y;
function example($x=3,$y=4){
$this->x=$x;
$this->y=$y;
}
}
class example2 extends example{
var $x,$y,$z;
function example2($z=2){
$this->z=$z;
}
function total(){
return $this->x * $this->y + $this->z;
}
}
$obj=new example();
$obj2=new example2();
echo $obj2->total();
?>
これじゃできないのに・・・
継承されるクラスにコンストラクタがあってはいけないということですか??
つーか、$objと$obj2は別物。
>>350 $job2でのコンストラクタはexample2で、exampleは単なるメソッドにしか過ぎない。
継承するクラスにコンストラクタがない場合のみ、基底クラスのコンストラクタが働きます。
もうちっとマニュアル読めばわかると思うが。
354 :
349:04/03/14 23:39 ID:???
ふーん、PHPってそんなんだっけ。
コンストラクタしか継承しないのか、だめだめだな・・・
>>351 ちがいます。349,350のnew exampleは無意味だけど無関係。
>>350 350だと、example2 クラスで(constructorかどうかではなくて)、
継承出来ないように親=exampleクラスのmethodを上書きしてる
からだめなだけ。
class example{
var $hoge = 2;
function disp() {
return $this->hoge+1;
}
}
class example2 extends example{
$a = new example2;
print $a->disp();
}
だと3になるけど
class example{
var $hoge = 2;
function disp() {
return $this->hoge+1;
}
}
class example2 extends example{
function disp() {
return $this->hoge+2;
}
}
$a = new example2;
print $a->disp();
だと4になるというだけです。
351=352=353なのだが(;´Д`)
>>349-350をみると勘違いしているっぽく見えた。
>>356 どこのメソッドを上書きしてるのよ?
358 :
357:04/03/14 23:59 ID:???
>>356 スマン、言いたいことを、またもや勘違いしていた。ゴメソ。
359 :
349:04/03/15 00:07 ID:???
textareaのPOSTで受け取った改行入りの文字列を
改行を無く出力したいのですが、どのようにしたらいいでしょうか?
セッションに変数を保存するとき
$_SESSION に連想配列で入れるのと
session_register() を使うのと
どちらが より一般的なのでしょうか
趣味?
>>361 できましたあぁぁ
ありがとうございました!
>>361 と、おもったらできてませんでした(´・ω・`)
>>363-364 ブラウザに表示させて確認してしまったっぽだなw
環境によっては改行コードがCRやLFのみだったりするから。
$NewValue = mb_ereg_replace("\0x0d|\0x0a","",$Value);
で、いいんじゃね。
366 :
nobodyさん:04/03/15 11:50 ID:3OJL3637
session_save_path("/home/user/hozon”);
としてセッションの保存先を変更しているのですが、
どうも/tmpにできてしまいます。
>>365 それでもできないみたいです(´・ω..;: ∵.
>>367 地道にやれ
$a = str_replace("\r", "", $Value):
$b = str_replace("\n", "", $a);
これでおかしかったら他がおかしい。
370 :
nobodyさん:04/03/15 13:30 ID:LUBZXH8j
phpで2chのdatファイルを取得する方法について、どなたかよろしいでしょうか。
ttp://www.monazilla.org/document/や ttp://age.s22.xrea.com/talk2ch/などの資料があるのですが、
よくわからないながらもできるだけ参考にして以下のようなスクリプトを書きました。
<?
ini_set( 'user_agent', 'Monazilla/1.00' );//これは念のため
$fp = @fsockopen("pc2.2ch.net", 80);
if($fp){
fputs($fp, "GET /php/dat/1078592587.dat HTTP/1.0\r\nUser-Agent: Monazilla/1.00\r\n\r\n");
while (!feof($fp) && $o != "\r\n")
$o = fgets($fp, 512);
while (!feof($fp))
echo fgets($fp, 4096);
fclose($fp);
}
?>
371 :
nobodyさん:04/03/15 13:31 ID:LUBZXH8j
(↑の続き)
リクエストがあるたびに毎回、datファイル全体を読み込みなおせばいいのですが、
それではものすごい負荷がかかってしまうので
>>17氏に従いfsockを使う事にしています。
ひとまず差分の事などは置いておくとして、
dat全体をまず読み込めるようにしよう!と思ったのですが、、
>>370のようにすると何も返ってこないのです。
接続先をwww.2ch.netにした場合は人大杉のページが表示されました
HTTPの基本的な事で間違えているような気がします。
どなたか、簡単なフォーマットのようなものでもいいのでご教授お願い致します。m(_ _)m
372 :
nobodyさん:04/03/15 16:05 ID:Di4hYbsQ
すんません、質問なんですけど
ファイルのロックって例えば、1つのログファイルを共有している2つの掲示板スクリプトから
同時に書き込んだ時も大丈夫ですか?
スクリプト中で、n秒経ったらこの関数を実行、というような事はできないでしょうか?
377 :
372:04/03/15 18:37 ID:???
>>376 マニュアル嫁
隅から隅までじっくりとな
380 :
221:04/03/15 19:13 ID:???
あの、、、僕のはどうなんでしょう
381 :
376:04/03/15 19:24 ID:???
>>379 時間がもうあまり・・・
何かキーワードだけでも
383 :
376:04/03/15 19:29 ID:???
あ、因みにこれは別プロセスというか、メインの処理は普通に進行しつつ、
決められた時間になったら強制的に関数を起動という意味です
sleepではありませんので念のため・・・
384 :
376:04/03/15 19:37 ID:???
実は
>>328の続きというか、未だにこれが解決してないので別の方法を探している所なのです
set_time_limitとset_error_handlerを設定した上でエラー時にエラー名を調べて
タイムアウトと判断した際に自前のメッセージを出す関数を作れば
>>321が可能な事は
わかったんですが、ウチのレンサバがPHPをSafemodeで起動しているせいで
set_time_limitが使えないことが判明し、また振り出しに戻ってしまいました
>>384 なんで*たまにだけ*極端に長くなるのか、何の処理をしてるのかその辺も書いてもらわないと
誰も分からないと思うよ。あと、"質問者の情報の小出し"はやめよう。
あと、実行時間が極端に長くなるような(どれくらいか知らんけど)スクリプトを動かすのは
結局そのレン鯖に迷惑がられるんじゃない?
386 :
376:04/03/15 19:56 ID:???
>>385 fsockopenでの読み出しで止まっているようです
socket_set_timeoutも使ってるんですが何故か効かない・・・
これ以上はサイトがバレバレなので控えたいです
>>380 session_destroyはセッション変数をクリア(NULLにしたり解放したり)しているわけではない。
session_destroy後もセッション変数に代入された値は生きている。
マニュアルをよく読めば判るが、セッションに登録されているデータを破棄している。
要は、session変数を保存しているファイルそのものを削除してしまう。
session_unsetはsession変数を解放する。session変数を保存しているファイルそのものは
存在するが、中身は空っぽ(に近い状態)になる。
388 :
362:04/03/15 21:01 ID:???
ところで今日の晩御飯はなんだった?
$_SESSIONを使うのが一般的だとすると
session_register()は何のためにあるのか
さっぱりわからんし
てか、マニュアルのセッションのページを小一時間読め
話はそれからだ
>>386 それsocket禁止されてんじゃあ・・
ちなみにforで65535ループ2重くらいにすればphpすぐタイムアウトするよな
萎えすぎる
>>386 fsockopen で開いた後の fread か fgets で止まるということかな?
その場合は、非ブロックモードにすれば止まらなくなるはず。
PHP 4.3.0 以上でしか使えないし、扱いが難しいけど。
392 :
362:04/03/15 22:19 ID:???
>>389 セキュリティとコードの可読性のために$_SESSION (またはPHP 4.0.6以前は$HTTP_SESSION_VARS)の使用 が推奨されます。
これね。そういえばうちは秋刀魚だったよ。
誰か文字化けしてないマニュアルくださいよ
>対応フォントを表示できない環境で見ようとしているだけ
それを見た側から言うと文字化けというのじゃないだろうか
>>395 乙。まだロダが混んでいていただけてませんが。
で、聞くけど、対応したフォントをインストールしていると
そのままでも読めると言うことかな?
どのフォントを使っているの?
PHPで配列の数をカウントしたい場合どうすればいいんでしょ。
一つ一つ$array[i]があるかどうかしなきゃならないなんてことはないですよね?
400 :
nobodyさん:04/03/16 00:19 ID:NGiTkHYy
>395
マヂサンクス
いただきました。
これでマニュアル嫁る
402 :
追記:04/03/16 06:56 ID:???
>>402 user agentだけじゃなくhostも送りましょう。
404 :
362:04/03/16 11:04 ID:???
ところで、session_xxx() を使わず $_SESSION を使えというのは
可読性はともかくセキュリティで何か問題あるの?
405 :
nobodyさん:04/03/16 11:31 ID:NZM27FO2
セッションの保存先を変更したいと思っております。
まずpublic_htmlのsessionディレクトリをchmod 755 session
として書き込みを出来るように致しました。
そして、セッションの保存先の記述はsession_start()よりも前に書き、保存先が
変更されるように致しました。
<?php
session_save_path("/home/xxx/public_html/session");
session_start();
?>
しかし、保存先は変更されず、設定を変えているにも関わらず、
書き込みができないというエラーが出てしまいます。
どこか原因があるのでしょうか?
>>404 ない。
>>405 保存先ディレクトリはhttpdが動いているユーザ(一般にはnobody,www,apache等)
の書き込み権限が必要。
407 :
nobodyさん:04/03/16 12:40 ID:NZM27FO2
ご回答ありがとうございます。
ちょっとおっしゃられていることと違うことをやっていたら
ごめんなさい。
chown:chown /home/xxx/public_html/session
とすべきということでしょうか?
408 :
nobodyさん:04/03/16 12:54 ID:NZM27FO2
すみません。間違いました。
chown nobody:nobody /home/xxx/public_html/session
つーか755では書き込み権限は無いっしょ。
>>408 いいんじゃないのそれで。
ついでにパーミッションも0700に変更しとけ。
chmod 0700 保存先ディレクトリ
#SafeModeでやるとどうなるか知らんが、動くんなら気にするな。
411 :
nobodyさん:04/03/16 13:41 ID:RN6yU9c4
Cobalt サーバにPHPをインストールしたいと思っています。
GUIの画面で「pkg」拡張子のファイルを指定しろと出るのですが
PHPのパッケージって一体ドコにあるのですか?
ちなみにサーバ自体は触れません。 winのマシンでリモートで
コントロール画面をいじるような環境にいます。
CobaltはRAQ3ってやつです。
散々webを回ったんですが、用語すら難しくてわかりません。
テルネットやLINUXの知識は皆無なんです。
よろしくお願いします。
412 :
402:04/03/16 14:28 ID:???
>>403 レスありがとうございます、しかしHost:を送ったり、
fputs($fp, "Accept-Encoding: gzip");などとしてみてもだめでした。
一応、Hostを送る場合も送らない場合も「人大杉」の画面は出ました。
でも他の専用ブラウザのようにdatの内容を取得することができなかったです。
phpとあまり関係ないところで間違えてるのでしょうか、、、
もしアドバイス頂ければ、どなたかお願いします。
413 :
362:04/03/16 14:37 ID:???
>>406 まじ?
じゃあなんでマニュアルに セキュリティのため なんて書いたんだろう
なぞだなぁ
>>411 Cobaltはパネルを通して管理するスタイルのために
他のUnix系の管理とは異なることも多く、その分 Cobaltの
コミュニティがちゃんと存在するので、そっちいって訊きな。
今のバージョンのPHPのパッケージを作ってる人がいるかもしれん。
純正のやつなら、Cobalt買ったときにメディアが付いて来たろ。
バージョンは古いけど。なけりゃCobaltのサイト(まだあるかな?)
にも置いてあったな。
>散々webを回ったんですが、用語すら難しくてわかりません。
>テルネットやLINUXの知識は皆無なんです。
別にCobaltならtelnetやLINUXの知識はなくてもいいが、
逆にCobalt独自の管理知識しらないとやっていけないぞ。
それを勉強するのに用語が判らないのなら、前提となる
Unixの一般知識も勉強しな。
ファイルからファイルを読み込んで、指定した文字数を超えると
「..」と語尾につけたいのですが、どのようなスクリプトを書いたらいいでしょうか?
416 :
415:04/03/16 16:45 ID:???
あ、因みにそのファイルは、半角と全角が混じってます。
仕様にさえ合えば mb_strimwidth() が楽。
>>417 できましたー(*´ω`*)ありがとうございました。
PHPには色々便利な関数がありますね
入力された文字列に2バイト文字があるかどうか判別したいんですが、
正規表現かけるのが定石なんでしょうか?
英語向けサイトで文字化けを防ぎたいのですが。
>>419 mb_detect_encoding() は?
echo (mb_strlen($str) != mb_strwidth($str)) ? 'マルチバイト文字有り' : 'マルチバイト文字無し';
424 :
nobodyさん:04/03/16 18:03 ID:6IiWiqvl
掲示板などに書き込む前に
「この文章でよろしいですか?Y/N」みたいなアラートを出したいのですが
vbでいうmsgboxみたいなもの教えてください。
>>424 ブラウザは何使ってる?
IEならJavaScript使えばいいし
ネットスケープならJavaScript使えばいい
そのほかなら自分で調べるしかないけど
>>402 <?
$fp = @fsockopen("pc2.2ch.net", 80);
if($fp) {
fputs($fp, "GET /php/dat/1078592587.dat HTTP/1.0\r\nHost: pc2.2ch.net\r\nUser-Agent: Monazilla/1.00\r\n\r\n");
while (!feof($fp) && $o != "\r\n") $o = fgets($fp, 512);
while (!feof($fp)) echo fgets($fp, 4096);
fclose($fp);
}
?>
これで読めるけど。
>>424 alert出すならJavaScript。板違いなのでぐぐってからWeb制作板へ。
確認画面出すならPHPでできるがな。
429 :
nobodyさん:04/03/16 18:21 ID:6IiWiqvl
>>428 確認画面を出したいです。
phpで書いてある掲示板なのでおなじsubmitのところにはjavascriptは無理なのでは?
javascriptの中にphp書くのも不可能じゃないんですか?
たぶん相当バカな事いってると思いますが心を仏にしてお願い致します。
>>429 お前はまず他人に物を教わる時の作法を覚えてこい
なにが「心を仏にしてお願い致します」だアフォ
>>429 セッションで値渡したら楽だよ。
んで、確認画面は
<input type="text" name="name" value="<?php echo $_SESSION['name']; ?>">
・
・
・
こんな感じで
>>429 情報の後出しは良くない
JAVASCRIPTならボタンをSUBMITじゃなくて普通のボタンにして、アラート後OKならSUBMITする関数を呼び出せばいい
PHP側はHTMLを吐き出す際にJAVASCRIPT付きで吐き出せばいい
確認画面にしたいなら.
>>431
433 :
nobodyさん:04/03/16 19:05 ID:NZM27FO2
ちょっと質問させてください。
リンクとしてセッションを継続する場合は、セッションIDは
新しく生成されないが、セッションの開始のページを
開くたびに、セッションIDがどんどん保存されていくことは
正しいですよね?
434 :
nobodyさん:04/03/16 20:59 ID:IotPKUsm
PHPマニュアルをざっと眺めて載ってなかったんですけど、
write.php?target=2
の様な情報って受け取れます?
436 :
434:04/03/16 21:09 ID:???
正規表現かなんかで、
文字列から 複数の指定文字 以外 の文字を 置換する
うまい方法ある?
>>437 置換するためには、ある文字をある文字に置き換えるという「指定」をするわけだが.....
439 :
437:04/03/16 22:21 ID:???
>>438 preg_replaceだと、正規表現でマッチする分を置換できるけど
マッチ「しない」分を置換する方法がわかんない
正規表現で否定の指定方法がわかればすむ話かなあああ
>>439 指定文字列以外なら無理ぽだが、指定文字以外なら出来る。
ABC以外の文字をZに置換。
ereg_replace("[^ABC]","Z",$str);
文字列となる場合は、
mb_ereg_replaceで条件にマッチするものを削除(mb_ereg_replace("正規表現","",$str);)
してから置換を行えばいいのでは?
>>441 指定文字列もなくなっちまうじゃん。
一旦、指定文字列とその出現位置を覚えておいて削除し、
残った文字を全て置換後、その文字列を元あった位置に戻すとかすりゃ可能だが。
>>442 ああそうだった・・・
そりゃ無理じゃろ、何文字目か覚えておいても置換後に文字数が同じにならなけりゃだめだし、、
むずいな
初心者でつ。
windowsでやっています。
c:\test.php
と表示させたいので
c:\\test…
と入れると
c: est…
と表示されてしまいました。どうしたらいいのか分かりません。教えてください。
\tはタブだからか
そういうときはシングルクォートでくくれ
Windows でも / でいいと思ったが
include_path とかのパス区切りは ; にせんとだめだけど。
未登録ユーザの表示名設定欄に /></td></tr><input type= 出るのはなぜですか?
テンプレートセット・マネジャー ≫≫ defaultでこれ( /></td></tr><input type=)を定義している場所がわかりません・・・
具体的に未登録ユーザの表示名が定義されているファイルはどこでしょうか?
変数を入力する( /></td></tr><input type=)のファイルと、代入先が解れば自力で直せそうなんで教えてくれませんか?
多分自分の予想だとここ(変数を入力する( /></td></tr><input type=)のファイル)のどこかの整合性がとれていないと思うのですが・・・
なにかが欠落してるのかもしれません
お力をお貸しください
>448
スマソ。XOOPSのHPやってます。不具合があるので解る方レスお願いします
451 :
nobodyさん:04/03/17 09:30 ID:k72f02s2
// CSV出力
Header("Content-disposition: attachment; filename=hoge.csv");
Header("Content-type: application/octet-stream; name=hoge.csv");
$str = "hoge,hoge";
print ( "$str" );
現在このようにしてcsv出力を行っていますが、
「ファイルのダウンロード」ダイアログが出てきて、保存をクリックすると
単純にPCに保存ができます。
開くをクリックするとまた「ファイルのダウンロード」ダイアログがでてきて、
もう1度開くをクリックすると今度はテキストエディタでcsvファイルが開きます。
なぜ2度ダイアログが出てくるのでしょうか。
1回で開くを実行できないでしょうか。
453 :
402:04/03/17 10:48 ID:???
>>427ありがとうございます、
・・・・?何で動かなかったんだろう・・・(´д`)
とにかく助かりました。
HTTPやネットワークプログラミングについて、もう少し詳しく勉強してみます。
未登録ユーザの表示名設定欄 ってどこだよ。
455 :
nobodyさん:04/03/17 11:28 ID:6/A8lM/E
ブラウザのクッキー一覧を参照することってできますか?
そんな事出来たらヤバイだろ
>>458 どっちにせよサーバ側から通常の方法で
「ブラウザのクッキー一覧を参照」は無理。
460 :
nobodyさん:04/03/17 17:11 ID:6/A8lM/E
php.iniで設定せずにphpファイルのソースから
session.gc_maxlifetimeなどの指定はできますか?
463 :
nobodyさん:04/03/17 20:15 ID:6/A8lM/E
ブラウザを閉じても1時間は有効であるように、
ini_set( 'session.cookie_lifetime' ,3600 );と記述しました。
書き方がおかしいでしょうか?
この書き方では、設定変更は出来ないようです。
464 :
nobodyさん:04/03/17 20:52 ID:dMGK56zp
質問させてください。
HTMLファイルのセレクトメニューの値を
PHPファイルのセレクトメニューに反映させる方法をどなたかご教授ください。
宜しくお願いします。
>>463 お父ちゃんな、マニュアルも読まん子は好きやないねんけどな。
<?php
ini_set('session.cookie_lifetime', '3600');
// 引数は数値で書いても型変換されるけど、正しくは文字列。
phpinfo();
?>
として鯖に置いて確かめてみ。普通は特に変更不可にはしてない筈。
確認しても駄目なら管理者に問い合わせ。
>>464 hai? って感じだが、<select><option>の特定のoptionを選択状態で表示したいって話なら、
phpに関係なくHTMLの話やね。<option selected>item のようにselectedをつけりゃいい。
どのoptionにselectedを付けるか、つーのはプログラマである君がゴリゴリ書く仕事やね。
>>467 レスどうも。
もちろんserectedはわかるんだけど、
やっぱゴリゴリ書かなきゃなんねえのですか。
ありがと、今からゴリゴリしますわ。
間違い
selected
恥ずかしいっす。
470 :
nobodyさん:04/03/17 21:48 ID:6/A8lM/E
463の続きです。
Local Valueは3600に変わるのですが、Master Valueは0になっております。
Master Valueも3600には変わらないのでしょうか?
run-tests.php ってどうやって使うの?
473 :
nobodyさん:04/03/17 22:27 ID:HqRKwDEV
phpとmysqlで掲示板を作っています。(ローカル)
『表示』とか『貼り付け』とかが文字化けするんですけど、
なぜでしょうか?
phpのコードにはmetaタグでShift_JISとしてまして、
mysqlのdefault-character-setはsjisにしてあるんですけど。
shift_jisの文字コードだと
表 -> 95 5C
貼 -> 93 5C
5Cつーのが目に付くと思うんだけど、これは「\」の文字コードなのよ。
で、\つーのはメタ文字とか言って続く文字の1バイト目をエスケープしちゃうわけよ。
addslashesやmagic_quotesをゴニョゴニョして対処する方法もあるけど、結構めんどい。
shift_jisでしか扱えない文字をどうしても使いたいって時を除いては
EUCでスクリプトを書くのが楽って言われるわけやね。
画面表示のタイミングでEUCからshift_jisに変換できるしEUCでやっとけばええんでないの?
>>470 そりゃMaster Valueは、php.iniで変えるもんやからな。
つか色々自分でやって試してみなよ。鯖借りてるとしても、
ローカル(Windowsでも良い)に似たような環境作って。その方が飲み込み早い
# 持ってなかったら、もう一台ぐらい中古の安いの買えれ。
>>473 metaタグのShift_JISなんて気休め。
ちゃんとPHPのHTTP出力をShift_JISに設定汁
今更だとは思うが
>>8のエラーの原因って鯖の設定じゃないのか?
LAN内からしかアクセスできないとか。
もしくは開発をローカルでやっててURLを127.0.0.1のまま携帯でつなごうとしてたり。
478 :
nobodyさん:04/03/18 02:01 ID:pqPZG/Ug
会員制のサイトに登録したとき、アルファベットに数字混じりのユニークIDが
発行されるところがありますけど、あれはどうやって決められてるものなんでしょうか?
登録時の時間とか、連番とかを、(方法はわからないけど)別の数字や文字に置き換えてるんでしょうか。
そういう処理ってPHPでもできますか?
479 :
nobodyさん:04/03/18 02:55 ID:GIO+BTKS
文字列がすべて全角カナの場合のみ真(または負)を返すようにするは
mb_convert_kanaをどのように使えばいいのでしょうか?
>>479 $ren = "文字列";
mb_convert_kana($ren, "c") = $ren2;
if(mb_strwidth($ren) == mb_strwidth($ren)){
TRUEの処理
}else{
FALSEの処理
}
すまぬ…折れの頭脳ではこれが限界だ…
>>479 mb_ereg("^[ァ-ヶ]+$",$str)
003<>aiueo
001<>kakiku
002<>ai-n
003<>hoge
002<>afe
001<>unko
例えばこのようなログファイルを読み込むとき、
先頭の番号に準じて配列に格納するにはどうしたらいいでしょうか?
この場合、
$arr_001 = array("kakiku", "unko");
$arr_002 = array("ai-n", "afe");
$arr_003 = array("aiueo", "hoge");
といったような感じにしたいです。
>>483 かなり変態なソースの気もするが・・・
$nに番号、$vに値を収納したとして下記をレコード分回す
$array_name="arr_".$n;
if(!isset($$array_name))$$array_name=array();
array_push($$array_name,$v);
可変変数の配列に代入するにはarray_pushが必要なようです。ベンキョウニナリマシタ
>>483 本当にそんなログファイルフォーマットでいいと思っているんですか?
>>483 $arr[ $num ][] = $name;
でいいじゃん。だめ?
488 :
nobodyさん:04/03/18 21:39 ID:+47BygHQ
すみません、質問です。
現在、配列を特定の条件でマージしようとしています。
マージの関数はarray_mergeとarray_merge_recursiveを試してみたのですが
思ったような処理をすることが出来ません。
usortの用に比較関数をユーザー定義できるものって無いのでしょうか?
489 :
nobodyさん:04/03/18 21:53 ID:XqncjgjW
質問かぶせて恐縮ですが、phpからCで書いたプログラムを実行して、戻り値をphpで利用したいんですが、
cのmain関数のreturn()に戻したい値を入れてもどこに戻ってるのかわかりません。どうすればよいか教えて
くださいまし。
>>488 「特定の条件」も「思ったような処理」も知らせずに、
俺たちに何をしろと?
>>482 あー、そんなのあったんですね。
よく調べもせずにすいませんでした。ありがとうございます。
>>489 system()で呼び出せば、第二引数で指定した変数に入る。
494 :
taku:04/03/18 23:08 ID:dRleo8tv
すいません質問です
PHPで日本語メール送ると文字化けが起こります。
mb_send_mail関数の前にmb_language関数で
mb_language("japanese");を指定すると
件名と本文がエンコードされて文字化けが起こらないように
なるみたいですが何度か試したのですが文字化けが起こりました。
レンタルサーバーですので問い合わせた所
「mb_send_mail関数とmb_language関数ともに有効ですがEUCーJPで
動作している為メールの場合そのままでは文字化けを起こして
しまうようです。自動変換機能をONにしましたので再度ご確認下さい。」
と返答がありましたが、いまいちわかりません。
何か良い解決方法ありましたら教えて下さい。<(_ _)>
ちなみにテストしてたのは↓のような簡単な構文です。
<?php
$to_addr = "***@yahoo.co.jp";
$title = "テストメール";
$body = "テスト";
mb_language("japanese");
if(mb_send_mail($to_addr,$title,$body,'From:
[email protected]')){echo"
送信成功";}else{echo"送信失敗";}
?>
495 :
nobodyさん:04/03/18 23:18 ID:v217X1kZ
JISに変換して送ればいいんじゃない?
mb_send_mail($to_addr, mb_convert_encoding($title,"jis","euc-jp"), mb_convert_encoding($body,"jis","euc-jp"),'From:
[email protected]')
496 :
taku:04/03/19 00:07 ID:zEoQqiAa
>>495 早速のご返答どうもです。試したのですけど、文字が変換されてる
らしいのですが、届いたメールには文字化けではなく
文字が削除?(空欄状態です)されていました。
うーむ、となるとサーバーの設定がまずいのですかねぇ?
何か他に良い案がありましたら教えて下さい。<(_ _)>
>>494 PHP のバージョンは?
PHP の一部のバージョン(確か PHP 4.3.2 から PHP 4.3.3 くらい)は mb_language() が
正常に働かなかったような気が。
php.ini の設定が
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
になっていれば mb_language('Japanese') はなくても大丈夫だったと思うけど。
498 :
488:04/03/19 01:34 ID:Ll14L7j+
>>490 いえ、この場合、特定の条件や処理の話はたんなる比喩で
「usortのように比較関数をユーザーが定義できる、マージ関数はあるのか?」
という事が質問の趣旨のつもりでした。
わかり難くてすみません。
499 :
nobodyさん:04/03/19 02:10 ID:nZ+iMlnl
ODBC経由でAccessのファイルからデータを取得したいのですが、
例えばフィールドサイズがテキスト型で20のデータを読み込もうとすると、
全角だと10文字までしか取得できません(半角なら20文字読めます)。
10文字以降はゴミがついてきます。
odbcのアクセスにはodbc_result()、odbc_exec()関数などを使用しています。
どなたか教えてくださいませ。
>>498 だから、どういうマージがしたいんだ?
俺にはさっぱり分からんぞ。
みんなは分かるのか?
さっぱりわからん
つまり「usortのように比較関数をユーザーが定義できる、マージ関数はあるのか?」って事だ
>>503 うぅ、ヤッパリ無いんですか・・・自作します。
みなさんありがとうございました。
505 :
nobodyさん:04/03/19 12:10 ID:jbsetE8t
DBのデータをテーブル形式で表示させています。
そのとき、1段ごとで、色を変えたいのですが可能でしょうか?
てかDB全く関係なくね?
508 :
nobodyさん:04/03/19 13:04 ID:jbsetE8t
すみません、PHPは使って作業しております。
PHPでDBにあるデータを表示させています。
そして、テーブル形式で表示させています。
そのとき、1段ごとで、色を変えたいのですが可能でしょうか?
>>508 だからDBは関係ないっての。ゴリゴリ逝けっての
制御構文使って
テーブルの行を順々に異なる色にする程度の知識レベルがあれば可能
DB無関係
これが理解できなかったら、かなり不可能
行数カウントして(カウント%2)を見てtrにclass振るだけ。
プログラミングの基礎だ。
%2のときは&1にするのがプログラミングの基礎だと思うのは
漏れだけなんかなぁ。もうそんなシビアな時代じゃない?
え、じゃー
$a = $b / 2;
なんてのを
$a = $b >> 1;
にしたがるのも漏れだけ?まぁこれは文脈によってはダメだけど。
俺はビット演算とか必要な時しか使わないな
Cの時は、そんなもんコンパイラが最適化すると思ってる。
PHPの時は、そんなもんインタプリタ言語で気にするのが変と思ってる。
結論として、文脈で分かりやすいほうの記述をとるな
もうそんな時代じゃないというのにかなり賛成
>>395の再うp希望
ていうか本家のファイルはいつ直るんだー!!
あと、マニュアルのどこが変わった、という情報ってどこかで得られる?
PHP-DOC を見た感じ diff だけだし。
522 :
521:04/03/19 17:39 ID:???
>>508 は
「1段ごとで、色を変えたいのですが可能でしょうか?」
つまり、一段ごとに"任意の色"を付けたいのかもしれん。
→ テーブルに任意の色保持するフィールド作れよ。
525 :
nobodyさん:04/03/19 20:55 ID:EiWH/2Wl
なんか PHP ってむっちゃ遅くありませんか。
Ruby のライブラリを移植したのですが、
参照渡しにしているにもかかわらず、
処理に 10 倍以上の時間がかかります。
正規表現が悪さをしているんでしょうか?
既出だったらごめんなさい。
CGIのjcode.plに相当する関数はPHPにありますか?
>>525 そうかもしれません。誰が速いと言ったのですか?
530 :
nobodyさん:04/03/19 22:04 ID:mkcYvZds
531 :
489:04/03/19 22:21 ID:pIHWidCq
>>493 ありがとうございます。とりあえず0−255まで値が渡るようになりました。
重ね重ね恐縮ですが、256より大きな数はどうすればよいでしょうか。
>>531 ネタですか?それともマジですか。
#何のC使ってるのyo
>>531 標準出力にだしてexecなりpassthruで拾えば。
そういえば微妙にかゆかった疑問なんだけど、$fpみたいな変数が必要になる事があるけど、
沢山必要になったときどういう風に変数名付けてる?
俺まったくの行き当たりばったりだから$fpxとか$fp2みたいなやる気も統一性もない名前ばかりなんだが
535 :
nobodyさん:04/03/20 00:58 ID:2jbtOFQU
配列にする
参照渡しと引数のデフォルト値設定って
両立できないんでしょうか。
function hoge(&$foo = "bar"){
// ...
}
こういう書き方をするとエラーが出て困っています。
>>536 ( ゚Д゚) ポカーン
$hoge =& "funi";
やってみろよ。というかそんなコード書くな。
538 :
nobodyさん:04/03/20 01:38 ID:2jbtOFQU
参照私の意味がないような。
539 :
536:04/03/20 01:40 ID:???
そうですか。
こういう書き方はできますか?
動作はするみたいですけど。
function hoge($foo = "bar"){
//...
}
hoge(&$a);
……… 自信たっぷりだな。いいから
php -r "$a='hoge';"
php -r "$a=&'hoge';"
ってやって試してみなよ。。
エラーの内容を見れば想像出来ると思うが。
そんなコードが必要になる時点で何か変なんだよ。
541 :
536:04/03/20 02:57 ID:???
落ち着いてください・・。
ええと…>540さんは、変数に入ってない値への参照を作成することは
できないっておっしゃりたいんでしょうけど、>539は動きますよ。
だって、変数に入ってない値への参照を作成していないのですもの。
それに私は>539みたいなコードが必要だから、
そういうコードを書いているのですけど…。
参照渡しの引数にデフォルト値を設定することの、何が変なのかよくわかりません…。
543 :
nobodyさん:04/03/20 08:22 ID:0einhvXN
質問です。
requireやrequire_onceを使うと、単に「ソースコードの追加」を行うだけでなく
他のphpの'出力結果'を取り込む事もできるんでしょうか?
読み込み対象のphpがリモートファイルの場合でも可能でしょうか?
544 :
526:04/03/20 08:40 ID:???
皆さんありがとうございました
>>543 〃∩ ∧_∧
⊂⌒( ´・ω・)くぜんぶマニュアルに書いてあったでつ
`ヽ_っ⌒/⌒c
546 :
543:04/03/20 08:59 ID:???
>>545すみません、fopenを使って自己解決しました・・・
マニュアルも読み足りなかったかもしれませぬ。
しかし、なぜrequireだとwarningが出て、fopenだと出なかったんだろう。
requireを使って外部鯖のphpの出力を取り込むと、「seekingはサポートしてません」
みたいなwarningが出てから一応出力もされるんですが
ファイルポインタ使ってない(つもりな)のに、なんでこんなエラーが出たのだろう・・・
fopenで最初から最後まで書き下すようにしたらなんもエラーは出なかったです。
547 :
nobodyさん:04/03/20 11:26 ID:Hxt1FY25
Win + AnHttpdでUTF-8の読み書きはできたのですが、
Linuxの何か + ApacheでUTF-8の読み書きをすると英数字以外が文字化けするんですよ。
php.iniを変更できないレンタルスペースの環境で
UTF-8を読み書き検索したいのですが、
mbstringを使う方法ってありますか?
>>547 まとめると、
mbstringがインストールされていない鯖でmbstringを使いたいということですか?
549 :
547:04/03/20 13:52 ID:???
あー、すいませんだいぶ勘違いしてました。
単にフォームからデータを受け取る時にうまく
受け取れてないだけのようです。
失礼しました。
550 :
nobodyさん:04/03/20 14:17 ID:g6YYdXkP
失礼します。誘導してもらってこちらに来ました。
imgタグ付きのテキストリンク(広告)を
phpでランダム表示させたいのですが、
phpでテキストリンクをランダムに表示させるには
どの様にすればいいでしょうか?
分かる方いたらお願いしますm(_ _)m
簡単にそのランダムさせる文面を
追加できれば嬉しいです
WinXP+Apache1.3.29
PHP5b4は問題なかったのに
RC1がインストールできなくなったんだけど俺だけ?
(php5ts.dllが駄目だとかでapacheが強制終了)
>>550 こういうのか?
<?php
$com = array("広告0", "広告1", "広告2");
srand(time());
print $com[rand(0,count($com) - 1)];
?>
-------------------------------------------------
で、私も質問。
フォームで日本語が文字化けするですよ。
--html--
<FORM METHOD='post' ACTION='utf.php' accept-charset='UTF-8' NAME="FormItemWrite">
<INPUT TYPE='text' NAME='fname' VALUE='あいうえお' />
<INPUT TYPE="submit" value="Go" />
</FORM>
--php--
<?php print $_POST["fname"]; ?>
で文字化けするんですが、何がいけないんでしょ。
環境はLinux系の何か+PHP4.3.?です。
553 :
550:04/03/20 14:34 ID:g6YYdXkP
>>552 ありがとうございます。
"広告0", "広告1", "広告2"の部分に
<a href="
http://"">テキスト</a>といれればいいのでしょうか?
554 :
552:04/03/20 14:38 ID:Hxt1FY25
555 :
nobodyさん:04/03/20 14:46 ID:3WXcgaTH
PHPをやろうかなともってるのですが、難しいですか?
ちなみに今ある知識はHTMLのみです。
>>555 スクリプト言語が何のか?ということがわかればさほど難しくないです
>>551 WindowsXP Pro+Apache1.3.29
- Apache/1.3.29 (Win32) PHP/5.0.0RC1
WindowsXP Pro+Apache2.0.48
- Apache/2.0.48 (Win32) PHP/5.0.0RC1
どっちも普通に動いてるけど?
php5ts.dll、RC1ので上書きしてないんじゃないの。
PHP5b4は問題なかったのに
RC1がインストールできなくなったんだけど俺だけ?
(php5ts.dllが駄目だとかでapacheが強制終了)
559 :
nobodyさん:04/03/20 15:01 ID:3WXcgaTH
>>552 accept-charsetは気休め。
本当にUTF-8で渡ってきてるか、渡ってきてるなら
PHPで受け取りに至るまでの変換処理でおかしな設定
になってないか調べてみ。ただ、PHP4.3.xで細かく
マルチバイト周り修正されてるので、その辺の差異にも注意。
561 :
nobodyさん:04/03/20 15:07 ID:3WXcgaTH
Apache Web ServerとMySQLをwindowsXPにインストールしても
インターネットとかできますよね?
>>561 貴方のPCがインターネット上の重要なノードを担っていない限り
インターネットは大丈夫だと思うよ。
563 :
nobodyさん:04/03/20 15:14 ID:3WXcgaTH
なんでコレがエラーになるのか・・・
$sql = "select * from members limit $_GET['st'], $_GET['n']";
スーパーグローバルを普通の変数に直す。
566 :
555:04/03/20 15:43 ID:3WXcgaTH
Apache Web Server をインストールしようと思うのですが
途中で↓を入力する画面がでてきます。
いったなにをいれればいいのでしょうか?
Network Domain
Server Name
Administrator'sEmailaddres
ご指導のほどよろしくお願いいたします
>>564 String中では$_GET['hoge']じゃなくて$_GET[hoge]と書く。
つまり
$sql = "select * from members limit $_GET[st], $_GET[n]";
お好きなように。
>>567 あとあとトラブルの元だから
{ }
で囲むことをお勧めする。
$sql = "select * from member limit {$_GET['st']}, {$_GET['n']}";
だな。まぁもっと言えばわかりやすい変数に代入しておく方がいいと思うが。
$st = $_GET['st'];
$n = $_GET['n'];
571 :
564:04/03/20 15:58 ID:???
>>570 あっ!エラーが消えた・・・
技術評論社の
実例で身に付ける
MySQL×PHPによる
本格Web-DBシステム入門
と、いう本で勉強しています。p66
ありがとうございました。m( _ _;)m
572 :
564:04/03/20 16:00 ID:???
>>567 あぁぁぁ!
これでもエラーが消える・・・
本が間違っているのかなぁ・・・?
573 :
564:04/03/20 16:03 ID:???
みなさんありがとうございました。
m(__)m
>>571 print $sql; を実行してればすぐ解決したのにな(w
>>573 恐ろしいので、普通は $_GETや$_POSTで取って来た値を
そのまま使ってSQL文を生成しない。今後のために
"SQLインジェクション"で探して勉強しとけ。
576 :
564:04/03/20 16:40 ID:???
了解!
∠(`・ω・´)シャキーン
577 :
550:04/03/20 16:42 ID:g6YYdXkP
どうもありがとう御座いました。
無事表示できました。しかし、ランダムではなく
リロードすると並べた順番に出るような。。。
578 :
555:04/03/20 18:14 ID:3WXcgaTH
サーバにアップされたテキストファイルを書き換えようとしています。
読む単体と書く単体はできるのですが書き換えができません。
流れとしては、ファイルの中身を削除→新しい内容の書き込みでいいんでしょうか?
ファイルの内容を削除する方法を教えてください。
>>578は空気も読めないし、まして日本語の>568も読めないようだ。
>>579 fopen("hoge.dat","w");
>>581 あ、wでいいんだ。ありがとうございます。
583 :
555:04/03/20 21:38 ID:3WXcgaTH
apache,PHPをインストールして、test.PHPをhtdocs
の中に保存したのですが
http://localhost/test.php みると真っ白なページがでてきます。
右クリックしてソースを見ると
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>無題ドキュメント</title>
</head>
<body>
<?
echo "PHPインストール成功!!!";
?>
</body>
</html>
となっています。なぜ実行されないのでしょうか
どなたかアドバイスしてもらえないでしょうか
今日はすでに12時間ぐらい四苦八苦してます。集中力が
なくなりアドバイスをもとめました。
585 :
555:04/03/20 21:56 ID:3WXcgaTH
>>578 もちろん読みました
今確認したところ問題ないのですが
他に考えられる原因はないでしょうか?
このままでは練れません
じゃあ>584のページの10-11番、phpinfoの出力は試した?
それが動いて>583が動かないならショートタグの問題だろ。
ショートタグ使わないか、php.iniいじれ
587 :
555:04/03/20 22:12 ID:3WXcgaTH
<?php
phpinfo();
?>
だけ記述してみたら
こんどは、
<?php
phpinfo();
?>
↑が表示されました
. |
〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜
. >( c´_ゝ`) |
. |
.>( c´_ゝ`) J
>( c´_ゝ`)
. |
〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜
. | >( c´_ゝ`)
. |
. J >( c´_ゝ`)
>( c´_ゝ`)
釣れませんなあ〜
>>587 PHPがapacheに組み込まれているかどうか確認してみよう。
コマンドプロンプト(DOS窓)を開き、
telnet localhost 80
と入力してリターンキーを押す。以下 リターンキーを[R]で表す。
画面がクリアされ、入力待ち状態になる。
GET / HTTP/1.0[R][R]
と入力する。打ったはずの文字が表示されないが気にするな。
画面に表示される文字の中に Server: Apache/〜 の行があるはずだ。
オイラの環境では、Server: Apache/1.3.27 (Win32) mod_jk/1.2.0 PHP/4.3.4 と表示される。
この行にPHPという文字が含まれているか確認汁。
591 :
555:04/03/20 22:41 ID:3WXcgaTH
ありません
httpd.confに AddModule mod_php4.c を加えるのかもなぁ。
他にAddModule 〜 って沢山書いてある行があるから、
その下あたりに、
AddModule mod_php4.c
を追加してから、apacheを再起動してみ。
12時間は嘘だね。
566 :555 :04/03/20 15:43 ID:3WXcgaTH
Apache Web Server をインストールしようと思うのですが
途中で↓を入力する画面がでてきます。
いったなにをいれればいいのでしょうか?
(以下略)
583 :555 :04/03/20 21:38 ID:3WXcgaTH
apache,PHPをインストールして、test.PHPをhtdocs
の中に保存したのですが
http://localhost/test.php みると真っ白なページがでてきます。
右クリックしてソースを見ると
(略)
となっています。なぜ実行されないのでしょうか
どなたかアドバイスしてもらえないでしょうか
今日はすでに12時間ぐらい四苦八苦してます。集中力が
なくなりアドバイスをもとめました。
594 :
555:04/03/20 22:57 ID:3WXcgaTH
できませんでした。
>>593 本とです今日朝5時ぐらいからやってるんで
俺ばかか(w
じゃあなんだ9時間かけて>555だったわけだ( ゚д゚)
596 :
555:04/03/20 23:10 ID:3WXcgaTH
そうです(w
今日からPHPをやってみようともって
それでいろいろ調べたりしてたんで
apacheの存在を知ったのは今日です
>555
何も解らないならphpdev使っとけ。
それが一番早道だ。
おかげさまで実用レベルまで速度を上げることができました。
それでも web 用なのに処理に 0.75 〜 0.9 秒ほどかかりますが…。
速度アップのポイントは、以下の通りでした。
1. 値をリファレンスで渡したり、変数に保持する
2. array_push() のかわりに [] メソッドを使う
3. ereg() のかわりに preg_match() を使う
1. は、大きな配列をリファレンスで渡すのはもちろん、
count() に渡す配列をリファレンスで渡すことが
大きな速度アップになりました。
2. は、array_push() を使うより [] メソッドの方が速いそうです。(常識?)
微妙な速度アップですが、役に立ちました。
600 :
564:04/03/21 13:14 ID:2W7KIwm2
技術評論社の
実例で身に付ける
MySQL×PHPによる
本格Web-DBシステム入門
の関連ですが、同社のHPで検索をするとサンプルプログラムが出てきますね。
http://www.gihyo.co.jp/ やっぱ、本とはちょっと違うようです。
ではでは(´・ω・`)ノ
601 :
555:04/03/21 13:26 ID:xd8jBeYb
やりました!
<?
echo "PHPインストール成功!!!";
?>
PHPインストール成功がちゃんと表示されました。
感激しました。みなさんありがとう。
白い巨塔最終回より感激したかも(w
一応オッケーなのと適切に設定できたは違うんだけどな
ApacheにしろPHPにしろ細かい調整はまだまだ・・・
555はちと生き急ぎすぎ
604 :
nobodyさん:04/03/21 17:34 ID:jmarRdj5
PHPでXML-RPCクライアントをつくり、接続しまいしたが、
どうしても下記のようなエラーが出てしまいます。
X-Cache: MISS from xxx.xxx.domein
が問題の部分だと思うのですが、
ASP+XMLRPCクライアントでは繋がるのでプロキシーサーバーの設定
が問題ではないようです。
PHPにて、XMLRPC通信をしたことある人でこのようなエラーを解決された方
いましたらご助言いただけませんか?
恐らくXMLRPCが問題ではなく、PHPとPROXYの間での問題だと思うのですが。
HTTP/1.1 200 OK
Date: Sat, 20 Mar 2004 15:39:07 GMT
Server: Apache/1.3.29 (Unix) mod_perl/1.29
Content-Length: 446
Content-Type: text/xml
SOAPServer: SOAP::Lite/Perl/0.55
X-Cache: MISS from xxx.xxx.domein
Connection: close
鯖がsafemodeでPHP動かしてるのでheader()関数が使えません。何か変わりになる関数ないでしょうか?
仮に2ちゃんねるのような掲示板をPHP+MySQLで実装する場合、
スレッドごとにテーブルを持つべきですか?それともすべてのレスをひとつのテーブルにぶち込みますか?
>>606 ・スレごとにテーブル
・全てのレスを1つのテーブル
は同じでは?
>>606 スレ数可変なんだから1つ1つをテーブルにする奴は基地外
610 :
nobodyさん:04/03/22 02:12 ID:zKPdzv8E
function abc($arg){}
と定義して、call_user_func('abc', "hogehoge");
で関数を呼ぶことができますが、
'abc' が関数として、定義されているかどうかを
調べる関数があれば、教えて下さい。
>>610 次の方法で見つかりましたが、何か。
・func でマニュアル内を検索
・call_user_func が掲載されているチャプターの導入にある関数一覧を見る
マニュアル代わりのage厨は逝っていいよ。
マニュアルの歩き方を覚えないと PHP は書けません。
一通り目を通して、、
似たような関数からチャプター遡って調べるのが王道。
616 :
再度質問です:04/03/22 02:30 ID:ebdZYBT6
PHPでXML-RPCクライアントをつくり、接続しまいしたが、
どうしても下記のようなエラーが出てしまいます。
X-Cache: MISS from xxx.xxx.domein
が問題の部分だと思うのですが、
ASP+XMLRPCクライアントでは繋がるのでプロキシーサーバーの設定
が問題ではないようです。
PHPにて、XMLRPC通信をしたことある人でこのようなエラーを解決された方
いましたらご助言いただけませんか?
恐らくXMLRPCが問題ではなく、PHPとPROXYの間での問題だと思うのですが。
HTTP/1.1 200 OK
Date: Sat, 20 Mar 2004 15:39:07 GMT
Server: Apache/1.3.29 (Unix) mod_perl/1.29
Content-Length: 446
Content-Type: text/xml
SOAPServer: SOAP::Lite/Perl/0.55
X-Cache: MISS from xxx.xxx.domein
Connection: close
617 :
nobodyさん:04/03/22 11:22 ID:zmRA/0fr
サイト全体をphpで記述して、
なおかつ、smartyを使用していると
templatesフォルダの中が
激しくごちゃごちゃになるのですが、
みなさんはどうされてますか。
パスワードをmd5関数でハッシュ値に変換して、DBへ格納するのですが、
ハッシュ化された文字列には英数字以外の記号は含まれるでしょうか?
DB格納時にquoteするかどうかなんですが、数個のサンプルを見る限り
quoteしている例が無かったのですが…。
619 :
nobodyさん:04/03/22 12:32 ID:WuJHjyKE
PHP4のセッション管理って下記のどれを使っているのでしょうか?
1.クッキー
2.URLに引数として渡す(
http://url.com/test.php?hennsuu=100)
3.hidden属性でHTMLに埋め込む
4.その他
その他の場合は、具体的にどうやっているのかお教え下さい。
(おそらく設定で変更できるんだろうけど、現在のうちの環境は
どうも1,2,3のどれでもないような・・・)
620 :
619:04/03/22 12:41 ID:???
詩んできまつ。
>>618 MD5ハッシュ値は32文字の16進数となります。
622 :
618:04/03/22 13:04 ID:???
>>621 なるほど。ではquoteしなくても良いですね。
ありがとうございました。
623 :
617:04/03/22 13:09 ID:???
やっぱり
マニュアルに載っていない
質問は
答えてもらえないことが
多い。
624 :
618:04/03/22 13:15 ID:???
>>623 これという正解がないからじゃない?
私も同じように作ってますが(PHP+smarty)、カテゴリー別に
prefix付けるくらいですかね。
はぁ?
猫でも考えれば分かりそうな事だからだろ。何悩んでるのか分かんねーよ。
サブディレクトリで分けたり、phpファイルと同じフォルダに置いたり、何とでもなる。
>>623 逆。
>>625 のいう通り何を悩んでるのか、釣りなのか。
それとも共通テンプレの整理の仕方の工夫でも聞きたいの?
629 :
nobodyさん:04/03/22 17:27 ID:WuJHjyKE
おすすめのエディタを教えて下さい。
ageんな。検索しろ。
終了。
自分である程度探して試してどれにしようか迷っています、他にオススメがあれば等の聞き方ならまだ分かるが。
632 :
629:04/03/22 17:38 ID:???
>>629 俺は業務ではZendStudio。
個人では秀丸。
635 :
nobodyさん:04/03/22 18:52 ID:eAoDZUbp
クッキーが使用可か不可か判定するにはどうしたらいいでしょうか?
教えてください。お願いします
xyzzyこの2日試してるけどカーソルがスクロールで移動しちゃうのがな〜・・
637 :
618:04/03/22 18:57 ID:???
>>635 適当なcookieを食わせて、セットされているか確認する。
>>635 setCookieで食わせて確認したら?
WindowzならEmEditor最強
HTMLもCSSもJSもPHPもPerlもXMLもJavaもCもC++もC#もこれ一つで事足りる。
おれはMeadow2とgtagsを組み合わせているな
PHPを使ってスクリプトを作成するとき、デバッガって
つかっています?
ZendStudioはついていましたよね。
>>639 最強はMeadow。
しかし俺はvivi。
642 :
nobodyさん:04/03/22 20:16 ID:3C9md7bY
>>623 おれはサブディレクトリに置いているな
で呼び出すときは
$smarty->display('bar/foo.html');
だから他所でやれよ>エディタ厨
>>643 まぁ最初のネタ振りが悪かったのでスルーして欲しかったのだが、
>>643 の言い分も分かるが、PHP には IDE があるしな。建設的な議論も出来るよ。
それにみんなこの手のネタ好きだよね。一度出たら必ず反応してくれる。
今使ってるのは Eclipse + Xored だが、更新遅いので他も探してる。色々あるけど、マルチバイト文字化けるのが多いんだよね。
PHP5 への対応も、どうしてもワンテンポズレるし。
Eclipse メインで、emacs 系のエディタも使って対応って感じ。
EmEditor入れてみたけど1分経たずに削除した
どこが最強なのかわからん
SakuraにJavascriptのキーワードファイルと
Zend並みの補完機能があれば言う事ないんだが、、
647 :
558:04/03/22 23:43 ID:???
>>551 ウチでも結局、色々設定変えていくつかの主要Exteinsion加えてみたら、
Startupでロードエラーで落ちるようになった...
結局βに戻しますた。RC1なんか良くない。
>>647,551
・・あの。PHPの使われ方を考えても、まずLinux版から力が入ってWindows版は後回しだと思うんですけど。
結局のところは、notepad.exe
コレ
EDLIN以外は屑。
notepad?おまいは全部SJISで書くのか?
んなわけねーだろ
653 :
558:04/03/23 01:23 ID:???
>>648 そんなのは判ってるよん。PHP5を使うだけが目的じゃなくて
SAPIやOSの違いによる差異もテスト項目に入ってるんで。
# Winのビルド環境持ってないから流石に自家ビルドしてチェックはしない
Linux以外のUnix系もメインストリームじゃないよな。開発者の多くが
Linux使ってて、尚且つそれでテストする訳だからしょうがないけどね。
>>646 ファイルタイプ別の設定がかなり細かくできる。
1個のエディタで全部のソースファイルを扱う俺には最適だと思うが。
何か不満でも?
たぶん高機能すぎて1分たらずでは使いこなせなかったんじゃない?
656 :
nobodyさん:04/03/23 04:16 ID:ZeQHdipv
文字列中から半角スペースをすべて取り除く方法について質問させてください。
$newname = str_replace( " ", "", $oldname );
としたのですが、なぜか出力させてみると半角スペースが残ったままなのです。
""で置換しても、スペースを削除したことにはならないんでしょうか・・・?
どなたかお願いいたします。
$hoge = "AA BBB C DD EE F";
echo $hoge = str_replace(" ","", $hoge);
問題ないが?
$oldnameを出力したりしてないか?
つーか、それくらいvar_dumpとかで値取りながら原因探せるだろう。。。。。。。。。。。。
そういった一つ一つの事が出来ない初学者が多いからどこも水準以下の質問で溢れかえるのだと思うが。
660 :
404.HDML ◆StMXML.EXE :04/03/23 08:16 ID:ey7jctQ9
PHPAccelerator(以下、PHPA)に付いてお聞きしたいのですが、
仮に"Apache2(prefork MPM) + PHP4(PHPA無し)"環境で得られるPHPスクリプトの
実行速度を基準の"1.0倍"とした場合、以下それぞれの環境では一体、約何倍の
パフォーマンスが得られるのでしょうか?出来れば、PHP/4.3.5正式版がリリース
される辺りでPHPAから離れたいな、と思っておりまして。。
・Apache2(prefork MPM) + PHP4(PHPA有り)
・Apache2(worker MPM) + PHP4(PHPA無し/不可)
・Apache1 + PHP(PHPA無し)
>>659 取っ付き易いほど、厨のレベルは低くなるよ。
これはしょうがないって。
それがPHPのいいところの一つでもあるんだし。
もし、それが嫌な人が多いなら、
初心者スレ作って分けるしかないのかな。
666 :
663:04/03/23 11:01 ID:???
>>664 このスレ検索してみましたが、
>>395はもう無いみたいだし
他に解決法も載ってないみたいなので聞きました。
>他に解決法も載ってない
解ってるなら訊くなよ
668 :
663:04/03/23 11:04 ID:???
>>667 載ってないことを聞くのは間違いなんですか?
解決できてないってことじゃないのか?
わからんけど
670 :
663:04/03/23 11:09 ID:???
>>669 それなら納得です。ありがとうございました。
セッションでログインの管理とかやってるんだけど
どうも我流なのでしっくりこない。それなりに動いてるけど。
ある程度の定石みたいなテンプレみたいなのがほしいんだけど
まあやり方や求める強度、DBの有無で全然違ってくるしな。
それでもやっぱりログイン管理のいろんなサンプル集がほしいな。
どっかにいいとこない?
>>663 cvsで取得して自分で修正してmake。
みんなも喜ぶ。
>>632 PHPのライブラリやアプリケーションなんて腐るほどあるんだから適当に集めろよ。
> まあやり方や求める強度、DBの有無で全然違ってくるしな。
って言えるなら探し方も判断も自分で付くだろ。
----------------------終了--------------------------
675 :
674:04/03/23 12:29 ID:???
>>676 RCのリリース前後から落ちてるみたい。
slashdotedとPHP5のバグレポが雪崩打って、、とか (;´д`)
>>676 判らんが、MLのWeb処理関係はエラー出て駄目だな。
同じサーバ?
PHPUsersMLにとんでもないやつが降臨したな
>>679 PHP-usersのヲチスレがあるのでそちらへどうぞ。
それにとんでもないやつ続きで、誰と言わないと分からないって。
681 :
nobodyさん:04/03/23 18:24 ID:hqGLzQ7+
chm版マニュアルが中国語なのは何かの嫌がらせでしょうか?
キーワード検索のところの文字化けが一向に直らないのもイジメでしょうか・・・?
俺たち嫌われてるもんな
683 :
656:04/03/23 19:47 ID:Ij00iThG
>>657,658
レスありがとうございます、解決しました・・・・・
原因はreplaceの部分ではなく、ほかの部分でした。
正規表現で()にくくった部分を出力させていたんですが、
出力させる配列の$reg[0]はstr全体が入るというのに気づかず
0から順番に扱ってたためおかしい事態になってたようです
>>659,662
(;´д`)厨な質問してすまんでした。。。
しかし、var_dumpなんてあったんですか。知らなかった
質問スレのテンプレなんかに書いていただければ、ここでの無駄な質問も減るかも・・・
今後使わしてもらいます。
>>683 >var_dump()を print_r()と比較して見て下さい。
ってことで、print_r()もヨロ
phpinfo()レベルに有名になっていいと思う>var_dump()とprint_r()
ヴァー
var_dump使えねぇ
利用不可能なのか、使う価値が無いのかどっちだ。
表示が肌に合わないなら PEAR::Var_Dump 使いなよ。
ヒアドキュメントのなかで、変数を展開するには
こうかけば良いのですが、
print <<<EOH
{$hash['string']}
EOH;
ヒアドキュメントのなかで、関数を呼び出すには
どうすればいいですか? できないですか?
できない
689 :
687:04/03/23 22:43 ID:???
そうですか。ありがとうございました!
素早いレスに感謝です。
なんでこういう事が出来ないんだろう?
と思ったら、他に最適な方法が用意されていると思った方がいい。
なんでこういう事が出来ないんだろう?
と思ったら、こんな糞言語捨ててRubyに乗り換えたほうがいい。
できるほうがおかしいと思え。
693 :
687:04/03/23 22:52 ID:???
>691
Ruby でつくったやつを PHP に移植するお仕事なんです。
PHP は関数が豊富にあって助かるけど、
かゆいところに手が届かないという感じです。
でも OOP は Perl より楽にできるので、ありがたいです。
694 :
687:04/03/23 23:18 ID:???
よく考えてみたら、PHP ってどこでも ?> を書けるのですよね。
function display(){
if($foo){
?>
<html><body>...
<?= bar() ?>
<?php
}
}
こういう書き方でいくことにしました。
(お手数かけてすみません・・)
perlにおいて、csvファイルを配列に取り込み、複数項目でソートをかける為に
下記のような方法を取っていたのですが、
これをphpで行う場合、multisortでは1項目でのソートしか出来ないと
マニュアルに記述されていますが、どのような処理でなら可能でしょうか?
@DATA = sort { (split(/,/,$b))[1] <=> (split(/,/,$a))[1] || (split(/,/,$a))[2] <=> (split(/,/,$b))[2]; } @DATA;
697 :
nobodyさん:04/03/23 23:56 ID:MZvn1Ok8
PHPでウェブアプリを作っているのですが、ファイルの管理とかは
どうしてますか?CVSでバージョン管理でしょうか?
あと、画面の遷移や引数などの関係はシーケンス図にしていますが、
一般的にはどうしているのかとか。
urlでも本でもいいですので、そういったプロジェクト管理に役立ちそうな
情報へのポインタを教えていただけませんでしょうか。
>>694 テンプレート使うと楽しいんだけどね。本当は。Flexy とかいいよ。
# PHP 使いで Ruby で仕事中
699 :
687:04/03/24 00:47 ID:???
>698
なるほど、テンプレートですか・・。
移植はもうほとんど終わっているのですが
保守効率があがりそうでしたら、テンプレート導入も考えますね。
どうもありがとうございました。
テンプレのSmarty使ったけどもう呆れたよ。
RubyならERB使ってbinding渡せばいいだけの話なのに。
>>700 smarty使いまくりですが・・・。
呆れた部分の詳細を教えてくださいな。
Ruby の方が lightweight なのはみんな分かっている話。
使い分け出来ないのならさっさとシッポまいて Ruby スレに帰れ。
PHPでMP3のタグ情報をとりたいのですが
pearのclassではすべての情報がうまくとれません。
取得方法をご存知の方いらっしゃいますか
>>703 バイナリで覗けばいいだろう
MP3のタグ譲歩運あn
>>703 pear以外にもたくさんあるよ
さがしてみ
XMLをSAXで処理しようと勉強しています。
xml_parser を利用しているのですが、ハンドラ関数というのはどういう意味なのでしょうか?
役割は解説書を読めば何となくわかるのですが、
この関数の意味の定義といいますか、どういう動作をする関数をハンドラ関数と一般的に言うのかを教えていただけないでしょうか?
Googleで「ハンドラ関数とは」で検索してみたのですが、ハンドラ関数の意味や動作の定義について
述べられているところが見つからなかったので、ここで質問をさせていただきました。
PHPのCLIを使っている方はいらっしゃいませんか?
RedHat9+PHP4+PostgreSQLでPHPをシェルスクリプトのように利用してみようと思っています
PostgreSQLのデータの吐き出しを定期的に行いたいと思ったのですが、
CLIだとPostgreSQLへの接続がpg_connectで行えない(undefined?)になってしまいます
どうすればPostgreSQLへ接続出来るでしょうか?
>>704 >>705 ありがとうございます。
pear->MP3/ID.php
読みとり用の関数を見落としていました。
>>706 XML を扱う関数の事なんでは?山勘だけど。
1. 英語版当たる
2. (゚д゚)ウマ-
3. ついでに適切な訳でなければ PHP-doc-jp に突っ込む
4. みんなで (゚д゚)ウマ-
>>706 コールバック
ちなみに xml_parser() はめっちゃ使いにくい。
クラスの中に閉じ込めないととてもじゃないが使えない。
712 :
706:04/03/24 15:31 ID:???
>>710 コールバックを調べてみます
>>709 XML処理の関数と言うことではないようです。
検索するとApacheのハンドラ関数なども出てきますので。
xml_parse () が使いにくいというのは、単に可読性が落ちると言うことなのでしょうか?
>>707 undefined? の? って何だ?
undefined functionだったら、CLIの時とモジュールの時とで違うphp.iniを読み込んでるのかも知れないな。
php -mや php -i で確認してみ。
他にも環境変数や実行ユーザの権限でもツマづきやすいだろうから、
CLIの時とモジュールの時とで、phpinfo()を比較することをお薦めする。
714 :
707:04/03/24 16:44 ID:???
>>713 undefined functionでした。中途半端で申し訳無い
php -mを試みた所、[PHP Modules]欄にpostgresはありませんでした
もうちょっと設定面をさぐってみます
>>712 やってみりゃわかる。
普通は何らかの構造にマッピングしたいのが普通だろうけど
そのあたりの管理は自前でやらにゃならん。
単にダンプして眺めたいだけなら別に構わん。
>>707 煩雑にポスグレ使うなら、ビルドするときにポスグレ拡張を
PHP CLI本体に組み込んじゃいなよ。
俺の鳥頭じゃもうムリだ…ボスケテ…
まず
http://***/index.phpという大元のPHPを作成し、
index.php?choice=ABC というURLになると abc.php という別のページを表示、
index.php?choice=DEF というURLになると def.php というこれまた別のページを表示するには
どう書けばいいのでしょうか。
それなら直接abc.phpやdef.phpにA HREFでリンク貼れやと言われそうですが
できればファイル名を見せたくないもので…。
どなたかお願い致します(´・ω・`)
>>717 マニュアルを暗記するまで山に篭る。
話はそれからだ。
煽りたいわけじゃないが、そんな状態でこの先コーディング大丈夫か?
自分には不向きなことを見極めるのも大切だぞ
switch($choice){
case 'ABC': include("abc.php");break;
....
}
719に加えて言うなら、HTTPヘッダやhtmlエレメント(<html>とか<head>)を
2重出力しないように注意しとく。
721 :
712:04/03/24 20:10 ID:???
>>715 初めてプログラムを書いているので、
XMLの処理はこんなもんだと思っていたし、マッピング自体がよくわからない…。
他に XML を処理すると思われる関数に DOM と XSLT があるけれど、
どれが一番便利なの?
723 :
nobodyさん:04/03/24 20:56 ID:EMx27tbE
今、PHPlibでsession, auth, permissionの処理をやっているのですが、
pearで同じ事を行おうとするとどういう感じになるのでしょうか?
724 :
721:04/03/24 20:58 ID:???
>>722 Amazon Web Service の XML 処理。
公開されている XML 処理の PHP を参考にして、いちから自分で作っている。
リクエストがある度にXML を取得せずに、処理したデータをMySQLに保存して
キャッシュ化したい。
WEBデザインを仕事にしているけれど、
変数を外部から取得したり、
変数の汚染を調べたり、
取得したデータをデータベースに保存したり、
データを、意図するレイアウトで出力したり
することができて、(今後Perlを勉強するにしても)PHPでいろいろ覚えられそうなので、
練習代わりにやっている。そして、仕事の幅を広げたいかな。
慣れたら、JavaServletで処理ができるようにしたいかな(業務に生かしたい)。
デザイナはんにそこまでされたらワシらおまんま食いあげでんがな
文字列の配列 $list=array("a","b","c") を
"a,b,c" みたいに連結するうまい方法ってなんでしたっけ
「どうしてナナマタなのにヤマタノオロチっていうんだろう」
というのび太の心境になって考えましたがわかりません
foo 1 (改行)
bar 2 (改行)
baz 3 (改行)
というように改行で区切られているテキストから
左の要素を添え字、右の要素を値とした
連想配列を作るときに、
めっちゃ気になる…
ホントに…このあとどう続くん…
続きはまだか・・
>>726 それは八俣(八岐)のヲロチであって、
八股(八叉/八胯)のヲロチではないからナリよ。
前者のマタは(枝分かれしている様を含み)「枝そのもの」のことで、
後者のマタは枝分かれしている「分かれている部分」のこと。
来週の試験に出しますから憶えておくように。
このスレは今から
>>731の続きを予想し、あらかじめ回答しておくスレになりました。
ということで
while ($line = fgets($fp)) {
list($key, $value) = explode("\t", $line, 2);
$array[$key] = $value;
}
かな。あってたら何かくれ。
[続き]
連想配列を作るときに、突然美味しいラーメンが食べたくなりました。
PHPとは直接関係がないのかもしれませんが、ここ以外に訊ける場所がありません。
どうかラーメン初心者にも判るように、美味しいラーメンを食べられる方法を教えてください。
「ファイルのダウンロード」 をさせる方法がわからんちん
ヘッダーを送ってやればいいんだおるけど
なんのへっだを送るんだろ
ただのバイナリデータなんだけど
そんなもんブラウザ依存だからどうしようもない。
header("Content-type:application/octet-stream");
を送ってもIEはOSの設定に従うし
MozFirebirdはどう処理するかユーザに聞くダイアログを出す。
741 :
724:04/03/25 02:49 ID:???
>>725 仕事の幅を広くして、もう少し都心寄りに住みたいのよ。
けっこう切実なの。
742 :
724:04/03/25 02:51 ID:???
連続カキコですまん。
>>725 nusoap.phpの存在は知っているの。
でも、とりあえずはもっと身近な XML 処理からトライ。
正直に言えば、SOAPに関する書籍を買う前に、
PHP関連の書籍を買って、今月金欠なのさ。
連想配列を作るときに、
-続き-
彼女からメールが届く
「別れて」
(゚Д゚ )ウマー
>>742 じゃー nusoap.php のソースを眺めてたら勉強になると思うよ。
745 :
nobodyさん:04/03/29 03:59 ID:5UcTtVR/
|д゚)<復活?
746 :
nobodyさん:04/03/29 07:46 ID:oOyKdqgq
サーバ屋さんが使う設定ツール(HDEみたいなヤツ)ってのは
自作すると面倒でしょうか
復活おめ。
>>746 webmin
当然自作可能だけど、HDE には価格相応に作り込まれてるんぢゃねーの。
ケースバイケース。
配列はどれぐらいのサイズのデータを保持できるのでしょうか?
誰が保存してたスレか分からないけど 745〜789 がバッサリ消えちまったな
とあるプロセスがflockでロッキンしたまま死んだらどうなるよ?
snoozerあたりが神に祭り上げます
752 :
750:04/03/29 18:45 ID:???
とまあ聞くだけだとアレなんで実験してみたが
flockしたまま死ぬとなんか開放しますよ?みたいな結果だった。
思うにプロセスが死ぬとき自動的にfp開放する関係上
flockでもそのあおりを食らってロックイズデッドだね?
>>750 flockとは違うけど、pconnectして確保した永続的リソースでテーブルロック
したまま死ぬと、DBMS側でタイムアウトするまでロックされっぱに成ります。
754 :
nobodyさん:04/03/29 23:26 ID:rZFC6nTV
phpとflashを使った変数のやり取りで、
echoを使って&***=*といった状態に出力せずに、$***の状態で、phpからflashに変数を
読み込む方法をご存知の方がおられましたらご教授いただけませんでしょうか。;_;
腐女子面して泣き顔付けてageるなよ。
社会人だろ?仕事なんだろ?
無理。
以上。
それぞれのアプリケーションがどのレイヤーでどう動作するかを理解していれば出ない質問。
出来るかどうか知らねーが、シリアライズとかXML-RPCのように間に一つ挟めば可能かもね。
>>755 >シリアライズとかXML-RPCのように間に一つ挟めば可能
PHPプログラマーズマガジンの2003年3月号に、XEBXMLつうのを規定して
ActionScript-PHP間通信やってる例が載ってる。ActionScriptを使いこなしてる
人は既に似たようなことやってるか、やってなくても読めば直ぐに理解できるテク。
同2003年8月号だと、FLASH RemotingのバックエンドのPHPを使う解説やってる。
これはなかなか面白そうだが、まだ私は手は出してない。
ActionScriptはかなり高度なことが可能な言語だが、デザイナー上がりが
動きを付けるのだけに使ってる感じである意味不遇な言語だな。
#JavaScriptも然り。
757 :
755:04/03/30 02:08 ID:???
>>756 ああ、なんか
>>756 のお陰で段々思い出してきたぞ。
そんな記事出ていたとは知らなかった、ありがとう。
海外のどこかで見たんだけど、MacromediaのCommunicationServerか何だったか、
ひょっとしたらタダのColdFusionとの接続だけかも知れないが、
FlashのサーバーサイドソリューションをPHPでオープンソースでやっちゃおうぜ、みたいなプロジェクトがあった。
そういえばMXが出て少し経った辺りで盛り上がっていたんだよな、海外では。
> デザイナー上がりが
> 動きを付けるのだけに使ってる感じである意味不遇な言語だな
Flashは知らないがDirectorになるとLingoにGUIかぶせた状態だし。
デザイナーも情報を扱うデザインを行う以上、プログラマに近い素養はあると思う。
Flashだと中村勇午氏とか。
他にもプログラムを手段として使いこなしデザインやCGばりばりな人は居る。メガデモ界隈とかね。
先駆者は居るけど専門や本で量産型製造はされてないって感じ。
そういう人ならActionScriptの楽しさも100%引き出されるんだろうな。
758 :
nobodyさん:04/03/30 12:33 ID:sj3AdYty
ちょっと質問です。
私はASPとJavaScriptの経験が三年ほどあるのですが、
この度はじめてPHPの仕事をすることになりました。
ASPとはやっぱり勝手が違うでしょうか?
文法以外に、何か違いに注意する点等がありましたら、ご教授お願いします。
自分も ASP -> PHP と来ましたが全然違います。
PHP 自体がクセの少ない言語なので苦労は少ないと思うけど。
つーか業務で仕方なくやってたが ASP (VBScript) 時代は苦痛でしか無かった。
元コードが腐敗してたのが理由でもあるが。無印 ASP はステ。
PHP に限らずその言語のやり方や考え方、特徴を学ぶのが大事。
ここでも読めば如何かと
http://cruel.org/freeware/hacker.html あとコミュニティにポストする時は必ず暫くヲチして、同じ質問の繰り返しやローカルルールを学んだ方がいいよ。
# つまり sage ろ、と。
>>758 言語仕様の部分ではASPよりも楽に感じると思う。
ASPやってるからサーバサイドの概念は判ってる筈なのでそれも有利。
あとは自分がASPで関わってきたプロジェクトがどれだけASPに積極的に
関わってきたかによる。例えば独自にテンプレートシステムを作っていたとか、
DBアクセスの抽象化を行っていたかなど。そういった従来使っていた周辺物を
捨てる必要がないのであれば、PHPに慣れた人が傍にいてリードしてくれれば
直ぐに慣れると思う。ただセキュアな部分やコアなところはやっちゃ駄目だよ。
初心者は業務システムだったら"業務"の処理のところをやるとかね、そんな感じ。
やっちゃ駄目って言われても、必要に迫られたらやるしかない訳だけどね
触らないでいいならコアな部分なんて触りたくねーよ
やっちゃダメって言われてやらないでいられる世界に行きたい。。。
PHP だとコアな部分触るのも楽しいんだけど。
小規模開発だからか。
しかし ASP は仕様自体やる気でなかったけど、、テンプレートシステムなんてあったのね。
764 :
nobodyさん:04/03/30 15:41 ID:mRhpFbSG
ファイルの文字を表示するとき、なぜか必ず「ァ」の文字が化けてしまいます。どうすればいいのですか?S-JISで
開発してます
>S-JISで開発してます
この辺が釣りっぽい
内部はEUC、コレ。
常識ね
できればUTF-8が望ましいが
768 :
764:04/03/30 15:57 ID:???
文字コードってEUCのほうがいいんですか?
>>768 これも釣りっぽいが
最近じゃS-JISを使えるのもあるが基本的にPHPはEUCで書かないと
日本語を扱った時に文字化けする。今はEUCで書いとけ。
入門本にもそれくらい書いてあると思うがな・・・
771 :
760:04/03/30 16:10 ID:???
>>763 ASP界のスタンダードなテンプレや抽象化DBアクセス
(これはADOがある程度カバーしてるから素のPHPよりは上かな)
は無いですよ。PHPでもちゃんとしてるところならば、PHPlibぽいのや
Smarty以外の独自テンプレートを昔から作って使ってるところが多かったと思うけど、
ASPの制限下でもやる会社はそれなりにやってます。手を抜くために"頭"を使う会社なら。
S-JISって書いたら兵装みたいだな (゚∀゚) 格好いい
やっぱShift-JISがスタンダードだしな。
携帯対応求められても全部SJISで通しておけば余計な心配せずに済むしな。
なワケないだろ ( ゚д゚)
取り敢えずZend-Multibyteでも調べてこい。
会社でやってるんなら文字コードの処理系分かってないんだからちゃんと分かる人にフォローして貰えyo!
<?php
$to = "
[email protected]";
$subject = 'ご注文完了のお知らせ';
$body = 'ご注文完了のお知らせ';
mb_language("Japanese");
mb_send_mail($to, mb_convert_encoding($subject, "iso-2022-jp", "SJIS"), mb_convert_encoding($body, "iso-2022-jp", "SJIS"));
print "OK";
?>
というメールを送るとなぜかサブジェクトの "了" という文字以降が
文字化けしてしまいます。
この漢字使用する時以外は問題ありません。
これを回避するにはどうすればいいのでしょう?
>>773 その漢字を利用しない
ほかにも使えない漢字は結構あるので
ぶつかるたびにメモしておいて
一覧表を作っておくと便利ですよ
>>773 そのPHPはスクリプトエンコーディングにSJISが使える環境なのか?
SJIS まんせ━━━━━(゚∀゚)━━━━━!!!! 今日はSJIS祭り
777get, zuzaa
>>774 それというのは、iso-2022-jpへの変換の場合にのみの
現象なのでしょうか?
それともPHPのバージョンによるものとか?
またはメールのサブジェクトはそういうものなのですか?
>>775 SJIS->EUC-JP や EUC-JP->SJIS などは問題なく利用できます。
>>778 echo "表";
が正しく処理されるのか?
問題を認識していないだけに思えるが。
>>779 ネタにマジレス、(゚A゚) イクナイ
>>775 とかも付いてるのに無視って
>>773,774でキャッチボールしてるんだから、邪魔しちゃ悪いyo!
SJISの文字化け問題は初歩の初歩
こんなもんぐぐれば山ほど回答が出てくるのに
それすらもしようとしないアフォはプログラムなんて組まんでよし
明日から工事現場で交通整理でもしてなさい
悪い事言わんから
>>781 ただ、mb_send_mailに関しては"SJISの"という点とはちょっと違う。
ま、初歩の2歩目ぐらいか。
>>778 >iso-2022-jpへの変換の場合にのみの現象
>PHPのバージョンによるもの
>メールのサブジェクトはそういうもの
空回りも含まれてるけど、取り合えず全部自分で試せよ。
php.iniの中と、スクリプト中のマルチバイトに関する設定
(mb_language("Japanese");とかね)に注意して。
比較はPHP4.3.2と4.3.3でしてみ。ただ過去のバージョンでの
挙動を気にするような資産があるわけでも無さそうなので
PHP4.3.5でだけで上手く動くようにしとけば良いか。
無理してmb_send_mail関数使うこと無いんでねぇと思うけど?
どうせmailのラッパーなんだし。
Windows環境でも文字コードはEUC-JPのほうがいいんですか?
また、EUC-JPにHTMLも変えたほうがいいんですか?
PHP使ってるやつ頭悪すぎ。
代表例登場
春でつねぇ・・・
またーり (´・ω・`)
790 :
nobodyさん:04/03/31 00:32 ID:Iyf+RzNu
複数のファイルをアップロードしてんですが、
元ファイル名はちゃんと複数取得できます。
でも tmp_name がなぜか最初のものしか取得できないんですけど、
これはなんぜでしょう。サーバーの仕様?
791 :
790:04/03/31 00:35 ID:???
そーすです test.php
<html><body>
<form enctype="multipart/form-data" action="test.php" method="post">
<input type="file" name="userfile[0]"><br>
<input type="file" name="userfile[1]"><br>
<input type="file" name="userfile[2]"><br>
<input type=hidden name=menu value=up>
<input type=submit>
</form>
<?
extract($_POST);extract($_FILES);
print_r($_FILES['userfile']['name']);
print_r($_FILES['userfile']['tmp_name']);
?>
</body></html>
792 :
790:04/03/31 00:35 ID:???
結果はこうなります↓
Array ( [0] => file1.jpg [1] => file2.jpg [2] => file3.jpg ) Array ( [0] => /tmp/php7KUhzb [1] => [2] => )
794 :
790:04/03/31 02:30 ID:???
ん。まじっすか。読んで見ます。
PHPは結構長い事やってるんですが、
あたりまえの事がよく分からず・・。
795 :
790:04/03/31 02:40 ID:Iyf+RzNu
ざっと読んだけど分からず。
なんでやねん・・。
796 :
793:04/03/31 02:42 ID:???
悪い、俺の読み間違い。
791そのままコピペで問題ない。
追試してみるから、もちっと環境詳しく教えて。
797 :
790:04/03/31 02:50 ID:Iyf+RzNu
いえどうもです。
今色々やってみて原因わかりました。
ファイルサイズが(1つまたは合計で)16kbを超えるとだめっぽいです。
念のため max_file_size を入れてみましたがダメ。
phpinfoでの post_max_size、upload_max_filesizeはOKそうなんですが・・。
あと関係するところあるんでしょうか。
798 :
790:04/03/31 02:51 ID:???
サーバーはwebarenaです。 PHP Version 4.3.1。
799 :
793:04/03/31 03:04 ID:???
800 :
790:04/03/31 03:09 ID:???
なるほど。わかりましたなんとなく。
色々やってみまっす・・。
801 :
790:04/03/31 03:15 ID:???
というか
>>799のURLにまんま書いてありました。
tmpのデータが消されなくて容量がいっぱいだ、らしいっす。
802 :
793:04/03/31 03:21 ID:???
803 :
793:04/03/31 03:26 ID:???
質問です。お答え頂けると大変助かります。
下記のようなコードを書いたのですが、formからvalue=$value[lec_id]
を渡そうとしてもうまく渡らずに、そのまま_post[lec_id]が$value[lec_id]
として伝わっています。
一方下から二行目の$lec_idは正しい数字が表示されます。
一体どこの記述に間違いがあるのでしょうか。
$res = mysql_query($sql);
$value = mysql_fetch_assoc($res);
<table>
<form action="<?echo($_SERVER["PHP_SELF"])?>" method="POST">
<?php
while ($value = mysql_fetch_assoc($res)) {
if ($value["lec_week"] == "1") {
print "<tr>";
print "<td>".$value["lec_time"].限目."</td>";
print "<td>".$value["lec_faculty"]."学部 ".$value["lec_title"]."</td>";
print "<td>";
print '<input type=checkbox name=lec_id[] value=$value["lec_id"] >';
print "</td>";
print "<td>".$value["lec_id"]."</td>";
print "</tr>"; }} ?> </table></form>
>>804 下から4行目の$value["lec_id"]が変数展開されないって話かのぅ。
それなら、' ' で括ってるから。
806 :
804:04/03/31 16:24 ID:???
お返事ありがとうございます。
"で括って試してみます。
807 :
804:04/03/31 16:30 ID:???
早速ですがparseエラーでした。
書き換えたのしたから四行目を
print "<input type="checkbox" name="lec_id[]" value="$value["lec_id"]" >"
にしてみました。
色々なパターン試してきたのですが、エラーのパターンとしては
変数展開されずに$value["lec_id"]が直接postの結果となっているか、
あるいはonという形でpostされているかです。
ここで正しい数値を習得してDBに格納したいのですが。
'<input type=checkbox name=lec_id[] value='.$value["lec_id"].' >';
"<input type=\"checkbox\" name=\"lec_id[]\" value=\"$value['lec_id']\" >"
ブラケット忘れてた
"<input type=\"checkbox\" name=\"lec_id[]\" value=\"{$value['lec_id']}\" >"
811 :
808:04/03/31 16:41 ID:???
'<input type="checkbox" name="lec_id[]" value="'.$value["lec_id"].'" >';
おれはダブルクウォート忘れてたよ´Д`)
812 :
804:04/03/31 16:45 ID:???
すごい!こんなにたくさんのやり方があるのですね。
>>810 "をエスケープするのは試していたのですが、{}は初めて知りました。
端的に行って来れの役目は変数に変数を渡すときに使うものと理解すればいいのでしょうか。
>>811 "と'を逆に使うというやり方もあるのですね。
そして.のやくめは{}と同じ意味なのでしょうか。
現在ローカスから出版されたPHP実用プラグら民具という分厚い参考書で勉強していますが、
こういうやり方については言及されておらず苦闘しておりました。
皆様ありがとうございました。
echo("<input type=\"checkbox\" name=\"lec_id[]\" value=\"".$value['lec_id']."\">\n");
個人的にはこれが好き
”でくくることはまず無いなあ。
ドットで連結するのも”内で変数展開するのも大差ないとは思うんだが、
変数があってもなくてもパースする処理が無駄に思える。
>>814 >変数があってもなくてもパースする処理が無駄に思える。
同意。無駄なのと、パースの挙動を考慮しないといけないのが面倒。
echo <<<_HTML_
<input type="checkbox" name="lec_id[]" value="{$value['lec_id']}">
_HTML_;
sprintf を使うやつが出てきてないね。
""で括る時と同じで \" のようにエスケープする必要があるけど、
パッと見た時に何か黒いとこって感じで変数の位置が分かり易く、
{$value}のように{ }を気にする必要がない。
print sprintf("<input type=\"checkbox\" name=\"lec_id[]\" value=\"%s\">",$value['lec_id']);
mysql_errnoで得られるエラーコードの一覧表ってどこかに無いでしょうか?
できれば日本語のヤツきぼんです・・・
よろしくです
>>817 ' でも大丈夫ですよ。あと、printf 一発で。
printf('<input type="checkbox" name="lec_id[]" value="%s">', $value['lec_id']);
とほほのwwwsearchのようにgrep型検索のPHPでのスクリプトってないでしょうか?
>>820 wwwsearchを参考に自分で書きなさいな。
phpを導入したんだけど、掲示板作るくらいだったらDBいらないかな?
DBインストールしたけど設定が良く分からなくて消したけど、
無くて困るものなら導入する。
>>822 素直に MySQL をバイナリインストールして phpBB 使っとけ。
phpinfoにまた犬が出てきたな。俺は以前のおっさんが好きだったんだが。
って前回も同じレスをした記憶が・・・。
>>824 コンパイルする時に別の絵を仕込んで置いたサイトが
あるので、反応がちょっと楽しみ。純正の奴もPHP5RC1で
変わってるかと思ってリリースの時に期待してたんだけどね。
# 実は別の日にも違うイースターエッグを仕込んでおいた
>>825 楽しそうな事やってるなー。
えーな、技術があるって。
PHP5 のイースターエッグを見せて貰ったがもふもふした幸せそうなヤツだった。
犬といい、アレは誰かのペットなのかね。
PHP4 の namazu モジュールが見つからんですよ (つдT)
どっか入手できる場所はありませんかね……?
>822
特別なことしないならdatで十分
829 :
825:04/04/01 20:39 ID:???
>>826 仕込んでるのは、Colinだけどね。いや知人でも何でもないが(笑)
ini_set('user_agent','Monazilla/1.00 (toolname/ver)');
$server="
http://pc5.2ch.net";
$ita="php";
$subject=$server."/".$ita."/subject.txt";
$fp=@fopen("$subject","r") or die("Error!");
$i=0;
while(!feof($fp)){
$str=mb_convert_encoding(fgets($fp),"EUC-JP","auto");
list($number,$threadname)=explode("<>",$str);
$i++;
if(mb_ereg("(キーワード)",$threadname)){
$url=$server."/".$ita."/dat/".$number;
$fp2=@fopen("$url","r") or die("Error!");
while(!feof($fp2)){
$str2=mb_convert_encoding(fgets($fp2),"EUC-JP","auto");
if(mb_ereg("(キーワード2)",$str2)){
$thread[]=$str;
break;
}
}
fclose($fp2);
}
if($i==50) break;
}
subject.txtからスレタイ、スレ番号を取得
スレタイに「キーワード」が含まれてたらdatを取得
そこから「キーワード2」が見つかれば、配列$threadに、「番号<>スレタイ」の形式で追加
これを先頭50スレに対して行います。
かなり負荷かかってるのですが、どうにかして負荷を軽減できないでしょうか?
書くのがせいいっぱいで、負荷軽減なんて全然わかりません・・・
よろしくお願いします。
832 :
830:04/04/01 21:54 ID:???
>>831 どうしても、単体として、こういう検索をしたいのですが。。。
mb_http_output('SJIS');
ob_start('mb_output_handler');
ob_implicit_flush(1);
while (ob_get_level()) ob_end_flush();
こうすると出力がSJISにならないんですが・・・
どうしたらいいでしょうか
834 :
nobodyさん:04/04/01 23:49 ID:jSxSLuKB
835 :
nobodyさん:04/04/02 00:04 ID:jOVEWyd+
つまり
>>820はクレクレ厨ってことだろ。放置放置。
tmpfile()関数について質問があります。
================================================
[質問]
tmpfile()関数によって得られたファイルディスクリプタからは
読み出しが出来ないのでしょうか?
================================================
この質問の意図:
(1)あるディレクトリにファイルを作り、データを書き出す。
(2)ファイルの書き出しが成功し、その後のいくつかの業務処理を実行
(3)すべてうまくいったら、テンポラリファイルの内容を
別ディレクトリに待避(move)する
という処理を実装しようとしています。
(1)で、ふつうにfopen(); fwrite(); fclose() でもいいのですが、
同時にアクセスが来た時を考慮して、ファイル名がかぶらないようにと思い、
tmpfile()関数を使ってみようと思いつきました。
作戦1:
tmpfile()でファイルを作り、コピーすればいいやと思ったのですが、
copy() は、コピー元もコピー先も文字列で指定するので、
ファイルディスクリプタを渡せません。
tmpfile()が返すファイルディスクリプタから、
そのテンポラリファイルのフルパスは取得できませんでした。
# /tmp にファイルが出来ることは、プロセスを見張ったりして見つけたのですが...
↓つづく
↑つづき
作戦2:
ファイルディスクリプタを引数にとれるcopy()みたいな関数を探しましたが、
見つけられませんでした。
作戦3:
tmpfile()が返すファイルディスクリプタを fread()で読み込み、
別ファイルにfwrite() で書き込めばいいかなと思い、
下記のようなコードを書いたのですが、問題が発生しました。
1:<?php
2: $fp_in = tmpfile() or die("failure in tmpfile()");
3:
4: $size = fwrite($fp_in, "aiueo\n");
5: print "書き込んだbyte数:$size.\n";
6:
7: $data = fread($fp_in, 100);
8: print "data=".$data."\n";
9: $fp_out = fopen("result.txt", "w");
10: fwrite($fp_out, $data);
11: fclose($fp_out);
12:?>
↓つづく
840 :
838:04/04/02 01:13 ID:???
↑つづき
8行で出力している $data の中身が空っぽです。
7行目で $fp_in(tmpfile()関数が返すファイルディスクリプタ)から読み込んだ
内容が空のようです。
しらべてみると(
http://www.php.net/manual/ja/function.tmpfile.php)、
このページは詳しく書いてありませんでしたが、
-----------------------------------------------------------------
詳細については、関数tmpfile(3)のシステムドキュメントおよび
ヘッダファイルstdio.hを参照下さ い。
-----------------------------------------------------------------
とあるので、PHPの裏でC言語の tmpfile() でも呼んでいるのかなと思い、
以下をやってみました。
$ man 3 tmpfile
man より抜粋:
>The temporary file is then opened in binary read/write
> (w+b) mode. The file will be automatically deleted when
> it is closed or the program terminates.
これをみると、裏で w+b モードでファイルを開いているということは、
読み出しが出来ないということですよね? この認識であってますか?
↓つづく
841 :
838:04/04/02 01:13 ID:???
↑つづき
また最初に書いた私の要望
------------------------------------------------------
ランダムな名前のテンポラリファイルを作り、書き込みに成功したら待避する
------------------------------------------------------
を満たすには、tmpfile() を使うのではなく、下記のような手段
がいいのでしょうか?
1.tempnam() 関数を使い、ランダムなファイル名を作る。
$tmpfname = tempnam ("/tmp", "FOO");
2.取得した名前でfopen()
3.書き込みに成功したら、作ったファイルを待避
4.tmpfile()と違い、プロセスが終わってもファイルが消えないので、
手動でunlink()する。
さらに最後の質問ですが、だとしたら、tmpfile()関数は何のためにあるのでしょうか?
なんか使い道がない気が....ロックファイルをしたいなら flock()を使えばよいし..
長々と申し訳ありませんが、私の見解が合っているかどうか、
教えて頂ければうれしいです。
最後に環境を書いておきます。
Turbolinux Server 8.0 (Viper) (kernel 2.4.18-5)
php-4.3.0
おしまい
↑確かに
>>839のスクリプトを見る限り、その動作は当然。
ファイルポインタは読み書き共通なので、
7行目では4行目に書いた文字列の直後からを
読もうとしている。まだ書いていないので
読み出される内容は当然ながら空。
それと、w+bでファイルオープンした時の動作は
ttp://php.net/fopen を参照。
・・・・とりあえず休憩しなさい
844 :
838:04/04/02 02:43 ID:???
レスどうもありがとうございます。
MLは、職場の同僚やプロジェクトメンバーも呼んでいるので、
なんかはずかしくて....
rewind の件ですが、あ、そうか、自分は fwrite() のターゲットの $fp_in
に対し、そのまま 7行目で fread() しているので、もしかしたら
ファイルポインタが一番最後に行ってしまっているのかも知れませんね。
明日職場に行ってみたら、rewind などの関数を確かめてみます。
845 :
838:04/04/02 02:49 ID:???
>>843 さん、どうもありがとうございます。
844 と時間が重なってしまいました。
明日やってみます。
> それと、w+bでファイルオープンした時の動作は
>
ttp://php.net/fopen > を参照。
休憩しなさいと助言をいただきながら質問があるのですが、
PHPの世界での fopen() の w+b は、
http://jp2.php.net/fopen によると、読み込み&書き込みとありますが、
私が
>>840 であげた man は、C の tmpfile() であり、
C での fopen() の wb は、読み込みは出来ないと思っているのですが...
>>845 んー、実はCは良く分からないのだけど・・・・
>私が
>>840 であげた man は、C の tmpfile() であり、
>C での fopen() の wb は、読み込みは出来ないと思っているのですが...
PHPでも wbは確かに書き込みのみですが、Cのtmpfileのman (
>>840)は
「テンポラリファイルはバイナリ読み込み/書き込み(w+b)モードでオープンされます」
と書かれているように読めるのですが、PHPのtnpfile()のマニュアルには
これを参照するようにとあるんですよね?(というか、ありますね?)
>>845 "w+"と"w"は異なるモードだぞ。あと"b"(バイナリ)絡みで、
デフォルト(無指定の場合)の状態の変更あったな>最近のPHP
今回は関係ないけど。
社内のUNIXサーバ上でPHPを使用していて、認証を行いたいんですが、
同じLAN上にあるWindowsのドメインコントローラー(WinNTでActive Directory
ではないです)にアクセスする手段は無いでしょうか?
Exceptionのサブクラスって全部自前でつくってなげにゃならんのですか。
850 :
838:04/04/02 10:11 ID:???
>>849 今のところは、まあそうだね。
例えビルトインされなくても、ぬるぽ程度のなら
どこぞのライブラリで拡張されると思うけど。
Beta4でもException周りで変更あったし、最終的にはまた変わるんじゃない?
>>852 > 最終的にはまた変わるんじゃない ?
RC1で機能追加&変更はフリーズされていると思うが。
fgetcsv と fread の仕様が変わったらしいのですが何が変わったのでしょう?
オブジェクトIDを求める方法はないんでしょうか。
>>856 ( ゚Д゚) ハァ?
Rubyでも使ってろよ。
# 意訳:
# 必要ありません。
# 求められません。
マジでオブジェクトIDを求める方法ないの?
冗談だろ?
>>858 その言語にはその言語のやり方ってものがあるだろう。
それを学ぶのがイヤなら慣れ親しんだ言語に引きこもって出てくるなyo!
何がやりたくてオブジェクトID求めてるのさ。
話はそれからだ。
>>858 だからObjectIDなんて別の界隈の用語使って、調べりゃ判ること
聞いてるから、からかわれてるんだよ。
もう放置しとこう
↓次の質問ドゾー
>>857 Rubyにはあるのか。つか何でそんなもんあるんだ?>Ruby
#そりゃ内部的に持ってるのは判るけど。
863 :
nobodyさん:04/04/03 07:42 ID:57u66/dO
あのさー、PHPでハッシュ(配列)の要素を参照するときに、キーがない要素を参照するとエラーになっちゃうの?
<?php
$hash = array('foo'=>'FOO');
echo $hash['foo']; #=> OK
echo $hash['bar']; #=> Error
?>
今まで気付かなかったけど、前からこんな仕様だったっけ?
これはちょっと困るなー。$hash['bar']でNULLを返してほしい。というか、エラーにさせない方法ってない?
ちなみに当方Windows2000、php -vの結果は
PHP 4.3.5 (cgi-fcgi) (built: Mar 25 2004 15:20:43)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
>>863 エラーではなくて注意。
php.iniのERROR_REPORTINGをE_ALL ^ E_NOTICEにするか、
error_reporting(E_ALL ^ E_NOTICE);
を追加すれば表示はされない。
ただしNULLはもちろん返さないけど
>>863 横着せずにissetで調べるのが良いと思います。
お前もそうしろ
PHPプログラムを起動するとき、多重起動しないようにしたいです。
プログラムの最初の方で、flockを使ってファイルロックを取りに行き
・ロックされてる→すでに起動してる→終了
・ロックされてない→俺しかいない予感→処理継続
とやってるんですが、これよりもっといい方法あれば
教えなさい、俺に。
>>859,862
テストユニットでテストを書き易くするためでしょう。
>>864 その方法でいけました。
ちなみに E_ALL ^ E_NOTICE は E_ALL & ~E_NOTICE と同じという理解でOK?
それなら、デフォルトでそういう設定になってるはずなんだけどな。なんでだろ?
>>865 isset()なの?array_key_exists()じゃなくて?
単にHTTPリクエストパラメータの値をとるだけのときとかに
$name = $_REQUEST['name'];
でできると思ったんだけど、これをいちいち
if (array_key_exists('name', $_REQUEST)) {
$name = $_REQUEST['name'];
} else {
$name = NULL;
}
または
$name = array_key_exists('name', $_REQUEST) ? $_REQUEST['name'] : NULL;
ってするのは馬鹿らしくないか?
>>864 いや、NULL返すだろ。
指摘自体は正しい。
>>868 試さず学ばず「俺の方が正しいじゃん?」主調 (゚д゚)マズー
issetでもarray_key_existsでも好きな方使え。
イヤなら安全性下げてextract使うかNotice使っとけと。
>Notice使っとけ
Notice切っておけ、の間違いね。
製作&デバックと実用時の境界が見えてないんだろ。
馬鹿はほっとけ。
>>868 普通はissetで全部調べると思いますがね
始めのころNoticeばっか出てうざかったからissetが習慣になっちまったよ
>>868 自分は極力変数を初期化します。
$name = "";
if(isset($_REQUEST["name"])) $name = $_RESUEST["name"];
これならNOTICEも出ないし。
こんにちわ、よろしくお願いします。
配列をpostgreSQLに登録したいのですが、うまくいきません。
登録したいデータの中で、$_POST["friend"]だけが30から40の要素をもった配列で
$_POST["mail"]はプライマリーキーです。
<?php
$conn = pg_connect("user='test' password='hoge' dbname='test'");
$sql = sprintf("insert into mail ".
"values('%s','%d','%d','%d','%d','%d')",
$_POST["mail"],
$_POST["user"],
$_POST["time"],
$_POST["sex"],
$_POST["age"],
$_POST["friend"]);
$res = pg_query($conn,$sql);
pg_close($conn);
ob_end_flush();
?>
何らかの形で登録され体はいるのですが、
DBを確認してもfriendの項目にはは1と言う数字だけが登録されています。
POSTされたFriend自体はきちんと配列になっており、
登録する段階で思うどおりに動いていないようです。
こういった場合どうしたらいいのでしょうか。
>>875 何をしたいのかよくわかりませんが、配列をそのままDBに登録なら
$_POST["friemd"]をシリアル化すれば?
877 :
875:04/04/03 19:28 ID:6ZKEyOfJ
>>876 口べたorz
$_POST["friend"]はこの登録段階の直前にユーザーにラジオボタンを通じて
POSTしてもらったもので、keyは40個ぐらいの数字です。
とりあえずこれをDBに登録して、後々にこの$_POST["friend"]
の数字を入力すると、それを有しているユーザーの一覧が表示される
という形に持って行きたいのです。口べた……
そのステップとして今は配列の登録で躓きました。
$arr = serialize($_POST["friend"]);
としてみたのですが、phppgadminで覗いたDBには0と反映されるだけでした。
ちなみにecho = $arrではなにやらたくさんの文字列が規則的に表示されています。
後出しになってしまいますが、$_POST["friend"]が登録される先の
フィールドのデータ型がsmallintなのですが、それがおかしいのでしょうか?
>>877 string serialize (mixed value)
文字列型なのにsmallintは無理じゃないか?
>>869 isset()とarray_key_exists()は違うんじゃないか?
$_POSTや$_GETならあまり違いはないだろうが、
>>863のように自分で定義した配列なら違う結果になることもあるだろう。
<?php
$hash = array('foo'=>NULL);
echo isset($hash['foo']) ? "true" : "false"; #=> "true"
echo array_key_exists('foo', $hash) ? "true" : "false"; #=> "false"
?>
>>870 >試さず学ばず「俺の方が正しいじゃん?」主調 (゚д゚)マズー
どこにそんな主張が?試したから質問してるんだし、「学ばず」っていうのは何を根拠にいっているのやら。
>issetでもarray_key_existsでも好きな方使え。
じゃあ必要なときは、好きなほうということでarray_key_exists使います。
>>872 >製作&デバックと実用時の境界が見えてないんだろ。
これ意味がよくわかんないんだけど。製作&デバッグ時はE_NOTICEを有効にして、実用時は無効にするということでしょうか。まさかそんな無意味なことしないと思うし。
私は馬鹿なんでよくわかりません。872氏解説してくれ。
>>873 そうなんだ。知らなかった。ありがとう。
私が勉強した本では(今、手元にないから断言できないけど)isset()もerror_reporting()も見なかったと思う。はずれだったのかな。
でもPHPのマニュアルによれば、error_reportingのデフォルト値は E_ALL & ~E_NOTICE とある。だったらisset()で調べなくてもエラーはでないはずだよね。それでもみんなisset()で調べているのか。やっぱりそうしたほうがいいのかな。
880 :
875:04/04/03 20:57 ID:???
>>878 となると数字の配列を渡す方法はないのでしょうか。
pg_insertというものがあるのは知っているのですが、
今はこれをフィールド指定して使えるのか、
かつ、primary keyとセットで叩き込むのはどういう風にできるのか、
と言うのを調べています。
できればこう言うのを使わずに上記のコードの流れでできればいいのですが。
csvデータの読み出しにチャレンジしてるんですが、
なにも返されません。csvのフィールド数は二つです。
$url_dataになにもデータが入らない状態になってると思うんですが、
原因わからず。どなたか助けてください。
<?php
$urlfile = fopen("url_data.csv","r");
while (!feof($urlfile) {
$url_data = fgetcsv($urlfile, 4096);
print($url_data[0] . "<br />¥n");
print($url_data[1] . "<br />¥n");
}
fclose($urlfile);
?>
PHP Version 4.3.4
Mac OSX 10.3.3
何のための機能かかんがえずに現象に対応して希望どおりに動かすことだけ考えるから無駄な処理が出てくる
>>881 、ス、?、マ・ウ・ヤ・レ、ケ、?コン、ホtypo、ハ、ホ、ォ。ゥ
>>880 配列シリアル化
↓
文字列型のフィールドに保存
↓
非シリアル化
これじゃダメなのか?
>882
処理自体が無駄なわけじゃないだろ。「無駄に思える」というだけだな。
>881
括弧閉じろ。エコーデバッグしろ。
>>880 PostgreSQLには配列型もあるが、どの道そのままでははいらん。
つーか、正規化しろよ。
888 :
881:04/04/03 21:33 ID:???
>>886 括弧閉じ忘れでした。さんきゅう〜。
うひゃ〜恥ずかしすぎる。
今までなにしてたんだろ〜って感じです。
出直してきます。
>>875 テーブルの設定をやり直す。
現状だと、smallint(2バイトの数字)の中に、配列を入れようとしている。
配列のシリアル化を薦めている人は、smallint -> text(or character)にしてはどうかとアドバイスしている。
friendコラムはユーザID(insertの行に出てないからserial型か?)を入れるつもりだろうけど、
「Aさんをfriendに持つ人を全て取得する」という要望が出てきたときに困ったことになる。
そういうことだね
それが存在する理由を知らずに有用かどうか判断できるはずはない
知らないからすべて無駄だと先人の知恵をきり捨てることこそ無駄だわ
どこぞのエラーメッセージ読まない奴よりはずっとマシだけど
>>879 E_ALLでもエラー等が出ないスクリプトを書く。
セキュリティ強化やバグが未然に防げる。
マの常識は一般人には非常識ということでFA
下らん。
895 :
875:04/04/03 22:01 ID:???
>>885 シリアル化の目的そのものがよく理解できていませんが、
試してみます。
>
>>887 正規化?これも調べてみます。
先週よりプログラミングに挑戦していて意外に楽しいのですが、
手探りで見通したたず悩みまくりです。
ただ、やり方があるというの分かったので再び検索しますね。
ありがとうございました。
896 :
875:04/04/03 22:07 ID:???
>>889 > friendコラムはユーザID(insertの行に出てないからserial型か?)を入れるつもりだろうけど、
> 「Aさんをfriendに持つ人を全て取得する」という要望が出てきたときに困ったことになる。
だめじゃん……
「Aさんをfriendに持つ人を全て取得する」という機能を実現したいのですが、
これにはどのようなアプローチがあるでしょうか。
今思い付くのは、friendをプライマリーキーにして、
そこにユーザーIDをupdateで送り込んでいくというものですが、
これだと頭から実装し直しです。
それにこちらの方が運用段階で面倒になりそうな気がするのですが。
>>868,873,874
( ゚Д゚) ・・・・
ネタにマジレスしておくと大抵は
・何らかの処理 (addslashesやhtmlespecialcharsなど) が入る
・値の保証が無いので検査する必要がある
のどちらかになるので、別にNotice対策と思ってコードを書く必要もなく自然とそうなる。
メンテで無駄コード見るの萎え。
>>897 >・何らかの処理 (addslashesやhtmlespecialcharsなど) が入る
>・値の保証が無いので検査する必要がある
これをするときに、Noticeが出るだろうが。
処理や検査をする前、もしくは同時にissetで確認してる。
>>896 全体が見えないのでなんともだが、
user,friendのテーブルを別途設けたほうがいいんじゃね。
なんか、主キーのないテーブルになってしまうけど、2列だし。
900 :
875:04/04/03 23:40 ID:???
>>
返答どうもです。
そのやり方も検討中なんですが、一つのfriendの情報が更新されるcron
を使ってuserにmailを送りたいのですが、その時にuserの属性に応じて
mailの内容を調整したいと思っています。
そのためのageやsexというfieldなんですが、テーブルを分けても
上手く処理できますかね?
見通しがつけられないのですが。
ところで、フィールドをsmallintからintegerに変更して
foreach($_POST["friend"] as $val){
$sql = sprintf("insert into mail ".
"values('%s','%d','%d','%d','%d','%s')",
$_POST["mail"],
$_POST["user"],
$_POST["time"],
$_POST["sex"],
$_POST["age"],
$val);
こう言うのを書いてみたのですが、やっぱりDBに収まるのは、
最後の値だけなんです。これ自体どこかおかしいのでしょうか。
>>875 取り合えず先にPHPとSQLの初心者本買ってきて
基礎的なこと勉強してこい。
>>900 やり始めたばっかりでがんばっているのは判るんだけど、
今の状態だとダメダメっぽだよ。
正規化も知らないようだと、話にならない。
多分SQLインジェクションも判ってなさそうだ。
全体の設計からしてボロボロっぽだから、一部ココで教えてもらって
解決しても、すぐに綻びが出る。
なんか書籍でも買って勉強した方がいいよ。
903 :
875:04/04/04 00:07 ID:???
(´・ω・`)ショボーン
でも確かにその通りでして、とりあえず火急の用事を済ますために実戦に挑んでおりますが、
基礎知識も設計も不十分だなと身に染みて感じております。
とりあえず本を読み読みしていますがやっぱりいきなりプログラムするのは難しいですね。
アドバイス下さった方ありがとうございました。
これからも頑張ってみます。
904 :
nobodyさん:04/04/04 00:44 ID:dOQP5KFE
質問させてくださいm(_ _)m
数100KBあるログファイルの、特定のある一部分だけを書き換えたい場合は
どのようにしますか?
現在は $temp=file("log.dart");
みたいに配列に一気に読み込んで、
該当部分を書き換えてから fputs しています。
でも全然スマートではないですよね?ログが大きくなると負荷も増えそうだし・・・。
ご教授よろしくお願いします。
>>904 「ログ」を「書き換える」という時点で設計ミスと思って作り直す。
漏れは面倒くさいのでDBにしてしまう。
初心者で申し訳ないです
>>5の「質問者の心得」を読ませて頂きました
このスレではそこに書かれている通りに行動してもかまわないのでしょうか
それとも、逆説的に警告を発しているのでしょうか
そこに書かれるあまりの教えてクンぶりに戸惑っております
907 :
866:04/04/04 04:34 ID:???
ねえ、あってる?
>>907 なにがしたいのかよくわからない。
まず、自分の環境とか、PHPをどういう状態で使ってるのかを書かないと誰も答えられないと思う。
void型の関数って最後
return;
って書かんでもええのん?
頭をオーバーホールしてこい
911 :
nobodyさん:04/04/04 12:47 ID:RKGRv6I/
MSの仕様が宇宙の法則さ〜ヽ(´ー`)ノ
書いても書かんでも大丈夫みたいやな。
とりあえずないと気色悪いから付けとくか。
あんがと。
>>912 それは正しい。
PHPUnit を意識して書くと後で後悔する事が少なくなるかも。
つぅか関数の最後はreturnが基本っしょ
Perlから乗り換えようと思ってるんですが
PHPの正規表現はe,x,oオプションと
(?:regexp)などのゼロ幅表現は使えるのでしょうか?
ereg()
Perl互換の正規表現
PHPのUPLOADのサイズってイニシャルでは2Mですが、どれくらいまで大きくなるのでしょう?
<php.ini>
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M
50Mとかしちゃって平気なんでしょうか?
闇はPHPを使ってるみたいだから
少なくとも1.2GBまではいけると思われ
>>917 スーパーキノコ使ったらその2倍まで大きくなるyo!
自分で試してご覧。
ereg試してみたんですがゼロ幅表明は使えませんでした。
preg_系の関数で使えました。
定義済み変数や環境変数の値を一気にはき出すコードどこか何無いでしょうか?
923 :
nobodyさん:04/04/05 01:08 ID:Ov2U0REu
ドットqmailからphpスクリプトを実行したいのですが、設定の書き方がわかりません。
環境はredhat9 php4.3.4
今日一日悩みすぎて気持ち悪いです・・・
お願い教えて下さい
要するにメールが送られた時にphpを実行したいのです
924 :
nobodyさん:04/04/05 01:13 ID:sr+9F3DM
CRONじゃ駄目なん?つーかすれ違い
926 :
nobodyさん:04/04/05 02:16 ID:Ov2U0REu
>>925 貴重な情報ありがとうございました。ただ私の場合コマンドライン版じゃないからなのかうまくいきませんでした
.qmail-defalultには
/usr/local/bin/php -q /home/.../test.php
と記述し、
test.phpは簡単に
<?php
$fp = fopen("./test.html","w");
fputs($fp,"完了");
fclose($fp);
?>
という内容だけを記述しているんですが動かないようです。
ただ、.qmail-default自体は動いているのを確認できました。
もうしばらく悩んで駄目ならphp再インストか・・
>>927 察してやるからいつまでたってもまともに質問できないやつが来るんだよ。
windowsXPのApacheでPHP入れたら、
C:\php\php4ts.dllがみつからないらしくて、
Apacheが動かないのですが、どうすればいいでしょうか。
930 :
929:04/04/05 14:24 ID:???
C:/php/sapi/php4apache.dllがみつからない、の間違いです。
説明が下手過ぎだろ
>>929 じゃあその場所にそのファイルが見つからないんじゃないの?
どうせインストーラでやっただけで終わったと思ってるんだろ
936 :
929:04/04/05 15:40 ID:???
自己解決。
聞くだけ聞いといて自己解決だけで済ますやつは二度と質問に来ないでね。
938 :
937:04/04/05 15:46 ID:???
じこかいけつ。
>>937 調子に乗るなって
自己解決したなら書いていけ、って
なんでこっちがそんな手間を惜しんで書かないといけないわけ?
ばかじゃね?
あぁ、そうかもな。
でもそういう態度の人には、手間惜しんでアドバイスする人もいないだろうな。
ま、それもキミの人生。
春でつねぇ・・・
基本的に教わる側は下に居るべきだし
むしろ下で居たほうが吸収が早いと思われ
946 :
nobodyさん:04/04/05 17:54 ID:oqrHq/L4
コメントで悩んでます。
aaa.html 内の ある行に
<?=$hogehoge[hohoho]?>
と、ありましたので、この行をコメントアウトにしたくなりとしました。
で
<?php
# <?=$hogehoge[hohoho]?>
?>
で、エラーば出てしまいます。 どのようにすればよいでしょうか?
単にHTMLのソースに記述されたくないだけで、
<!-- ---!> は使いたくないないんです。
別の言語と勘違いしてませんか?
PHPのコメントは
//
/* */
です
>>946 /* ピピルマピピルマプリリンパ */
// パパレホパパレホドリミンパ
949 :
946:04/04/05 18:18 ID:oqrHq/L4
<?php
// <?=$hogehoge[hohoho]?>
?>
では、?> が、表示されました。
<?php
/* <?=$hogehoge[hohoho]?> */
?>
では、*/?> が、表示されるんです。
>>949 ?>でPHPタグ(こういう表現でいいのだろうか?)が終わるんだから当然と思われ。
PHPタグを2重にする意味ない。
なんで
<?/*=$hogehoge[hohoho]*/?>
って書かないん?
>>946 俺もPHPをやり始めたばかりなので、合っているかどうかわからないけれど、
<html>
〜
<?php
// $hogehoge[hohoho];
?>
〜
</html>
でいいんじゃないの?
変数に代入した後、「;」で閉じないと、実行時にエラーが出るのでは?
952 :
946:04/04/05 18:33 ID:oqrHq/L4
”単純に”一行を囲みたかっただけで (-。−;)
<?
// =$hogehoge[hohoho]
?>
に、しました。
htmlに複数の<? *** ?>が書かれている行をまとめて
コメントにする場合って <!-- --!> しかないのですか?
たとえば
<?=$hogehoge[hohoho]?>
<a *****>
<?=$hogehoge2[hohoho2]?>
<a>
<?=$hogehoge3[hohoho3]?>
</a></a>
を、まとめてコメントにする場合は?
>>951 <?=は代入じゃねぇよ
文末に;を付けたほうがいいというのはもっともだが、
この場合なくてもエラーは出ない。
>>952 <?/*=$hogehoge[hohoho]?>
<a *****>
<?=$hogehoge2[hohoho2]?>
<a>
<?=$hogehoge3[hohoho3]?>
</a></a>
<?*/?>
途中のaタグは表示したいとか言うなら一個一個消してくれ。
PHPのコメントと HTMLのコメントは全く関係が無い。
$hogehoge[hohoho] = "<!--";
$hogehoge3[hohoho] = "-->";
も一つの答えになりうる。
955 :
946:04/04/05 18:57 ID:oqrHq/L4
単にHTMLのソースに記述されたくないだけで、
<!-- ---!> は使いたくないないだけだったんですが・・・・
複数行は <!-- ---!> しかないのですか。。。
PHPタグは2重に出来ないで よろしいのでしょうか?
956 :
946:04/04/05 19:02 ID:oqrHq/L4
失礼しました。
955の発言は無かったってことで。
958 :
946:04/04/05 19:14 ID:oqrHq/L4
なんだ、単純に
<?/*?> 〜 <?*/?> で囲めばいいんですね。
>>952は
<?/*?>
<?=$hogehoge[hohoho]?>
<a *****>
<?=$hogehoge2[hohoho2]?>
<a>
......
...
<?*/?>
おいおいおいおいおーい、なんちゅう話してんだよぅ
960 :
nobodyさん:04/04/05 20:58 ID:Hxp6Xm46
1000桁ごとに , (カンマ)つける関数って何でしたっけ?
961 :
960:04/04/05 21:03 ID:Hxp6Xm46
すません。自己解決しますた。
そんな組み込み関数は無い。
>>960 1000桁にもなる整数って扱えるのか?
そんなに大きな値をを何に使うのか気になる。
>>963 しかも1000桁「ごと」ってぐらいだからすくなくとも2000桁はありそうだな
多倍長整数使わないと無理だろう
965 :
960:04/04/05 21:10 ID:Hxp6Xm46
>>963 >>962 1000の位ごとの間違いですたw
1000の位ごと。 3桁ごと。 錯乱してました。
逝って来ます。
せっかくだから2000桁の四則演算をPHPでやってみた
案外面白いもんだね
自己の痒い〜ケツ
968 :
nobodyさん:04/04/05 23:24 ID:QFszvbEI
mkdir()関数でディレクトリを作ると
所有者が99になってしまいます・・・
その影響で、そのディレクトリを削除しようとしても
一旦、コマンドからアクセスして所有者を適切な値に変更して
からじゃないと削除できない状態です。
perlでmkdir()関数を使ってたときは、このようなことには
ならなかったのですが・・・
どうすればよいのでしょうか?
仕様です。
>>968 httpd動かしてるユーザが「99」ってなってるのか?
CGIなのかDSOなのか、そこらへん架け。
>>947 真性のバカか?
#もコメントになるが
ああ、釣りね
次スレのテンプレだけど、
>>3-4はいらんことないか。
PECLへのリンクはもうちょっとマニュアルが整備されるのを待ったほうがいいかな?
いらないと思う。
976 :
nobodyさん:04/04/06 19:50 ID:JmxKY28e
すいません、
基本的な質問で申し訳ないのですがPHPのやや古いバージョンは配布されていないのでしょうか?
最新の4.3.5は本家のdownloadにありますが
自分のサーバーにあわせて4.0.6を探しております。
977 :
nobodyさん:04/04/06 20:14 ID:lpi6f7xm
すいません。
winでphp.iniを書き換えてapacheを再起動しても、
php.iniの設定変更分が更新されないのですが、
これはどうしたらよいのでしょうか?
GDを追加したいのですが、変更が反映されず困っています。
979 :
976:04/04/06 20:35 ID:???
>>978 サンクス、
さっきから懸命に本家を探していたので助かりました。
>977
PCに窓から投げ捨てられろ
画像うpローダー作りたいと思います。
ちょっと気になるのですが、UPLOAD攻撃の回避は、連続投稿を制限する以外に手段があるのでしょうか?
震度1@豊島区
983 :
981:04/04/06 22:06 ID:???
カキコしてたら揺れてますた・・・
>>980 春なのに優しくないなぁ…
>>977 一度、DOSプロンプトでPCを起動し直して、
format c:
y
と入力して、プロンプトが返す結果を書かないと、原因がわからんぞ。
>>985 includeファイルはそうするんじゃないかな?
(べつに*.incでなくてもいいけど)
includeすることを前提に書かれたファイルを
直打ちで呼び出されたら困るし。
・・・ってその例だと読めるのか・・・。うむ
987 :
981:04/04/06 23:33 ID:???
事故解決しました。
phpでbluetoothって操作できないですか?
bluetooth内臓のPDAをPCに接続させたりとかそういう機能って
phpでは無理なんでしょうか?
ライブラリとかないのかな?
<?php
copy($file,"$file_name");
?>
実行→
Warning: copy(C:\\test.png): failed to open stream:
何故クライアントの絶対パスなんだよ_| ̄|○
回避法、教えてエロい人!