ヶヶ
IDがPHPですぁ!
┏━━┓
┃ ┫
┃ ┃
┏━━┳┻━━┻━━━━━━━・┓ .' .. ∧_∧
┃ ┃ ┃.∴ ' ( ) ←
>>1 ┃ ┏┫ ┏━━━━━━━┛・,‘ r⌒> _/ /
┃ ┃┃ ┃ . ’ | y'⌒ ⌒i
┃ ┃┃ ┃ | / ノ |
┗━┛┃ ┃ , ー' /´ヾ_ノ
┃ ┣━━━━━┓ / , ノ
┃ ┃ ┃ / / /
┃ ┏━┻━━┓ ┃ / / ,'
┏━━━━┛ ┃ ┃ ┃ / /| |
┃ ┃ ┃ ┃!、_/ / 〉
┗━━━━━━┛ ┗━━┛ |_/
あれ・・・
グリップボードに違うものがはいっちゃってた・・テヘ
9 :
nobodyさん:04/01/05 22:36 ID:VBNZeuoT
10 :
nobodyさん:04/01/06 01:29 ID:yYj3gqPY
>>957 >>962 同時に2つのファイルを開く。
便宜上でA(元)とB(新)で呼ぶ。
手順はまず元ファイルに.bakとか付けて退避する。
で、rモードでAを開き、Bはr+読み書き両用で開く。
Aから一行読んでBに条件付でその内容書き込む。
while文でぶん回す事になると思うが、fputsをif文で囲み記録を始めたい
位置からif文にTRUEを渡せばいい。
これでCPU負荷もメモリ消費も限りなく最小限に抑えて目的が果たせるね。
>991 名前:991 投稿日:04/01/05 15:21 ID:pgXXLZrW
>該当の日付になったら『今日は****の日』と表示させる方法を教えてください。
>『****まであと****日』というのはJavaScript系のサイトで出まわっていますが
>該当日だけ表示させる方法が見つかりません。
前スレのこいつヒキ板でも同じ質問してるしw
12 :
nobodyさん:04/01/06 11:24 ID:3laSM9Ja
演算子 ->
の意味がわかりません…('A`)
検索してもひっかからないし…
>>13さん
うおぉ、素早いご回答ありがとうございます(・∀・)
あとは1人でなんとかがんばってみます!
15 :
nobodyさん:04/01/06 15:35 ID:UnT6Y2Sf
safe_mode off の共有鯖で、PHPでデータを読み書きする場合、
他アカウントのユーザーに読まれないようにすることは可能?
>>15 suexecとかあればまぁまぁいいんじゃないの?
>>16 「CGIとして実行すること。」をきちんとつけ加えておけよ。
>>16-17 なるほど…
モジュール動作していると無理なんだね
ありがとうございました
19 :
nobodyさん:04/01/06 23:02 ID:Y1iEh6jh
PHPソース(HTML部分も)=EUC、データベース=EUCという状況で、出力だけをShift-JISにすることは
出来るのでしょうか? mb_output_handlerを使えばいいのでしょうか?
mb_http_output('SJIS');
ob_start('mb_output_handler');
としてみたのですがバケバケになってしまいました(T_T)
20 :
nobodyさん:04/01/06 23:16 ID:fhsDMVW9
すまん、sageとく
>>19 mb_convert_encodingとか?
ガンバレー
23 :
19:04/01/07 04:11 ID:W0Z/ddhB
だめっしゅ。どうしても出来ません。
mb_language("Japanese");
mb_detect_order("auto");
ini_set("mbstring.http_input", "auto");
mb_http_output('SJIS');
ob_start('mb_output_handler');
としたのですが結果は同じです。うう……もう少しヒントを(T_T)
24 :
19:04/01/07 05:39 ID:W0Z/ddhB
あれからイロイロ試して見て、多少マシになりました。
mb_language("Japanese");
mb_internal_encoding("EUC-JP");
mb_detect_order("auto");
ini_set("mbstring.language", "Japanese");
ini_set("mbstring.detect_order", "auto");
ini_set("mbstring.encoding_translationt", 1);
ini_set("mbstring.func_overload", 4);
ini_set("mbstring.http_input", "auto");
ini_set("mbstring.http_output", "SJIS");
ini_set("mbstring.internal_encoding", "EUC-JP");
mb_http_output('SJIS');
ob_start('mb_output_handler');
で、出力はShift-JISでされるようになりましたが、入力が文字化けします(T_T)
あと一歩だと思うのですが、是非アドバイスをお願いします(T_T)
>>24 マニュアルには
ini_set("mbstring.http_input", "auto");
ができそうに書いてあるけど、たぶん効いていない。
phpinfo()などでmbstring.http_inputを確認して、passだったら
入力は全てmb_convert_encoding()でEUC-JPに変換するしかないと思う。
26 :
19:04/01/07 09:58 ID:W0Z/ddhB
>>25 一応、変わってはいます。phpinfoのmbstring関係の結果は以下のとおりです。
Multibyte Support enabled
Multibyte (japanese) regex support enabled
Directive Local Value Master Value
mbstring.detect_order auto no value
mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input auto pass
mbstring.http_output SJIS pass
mbstring.internal_encoding EUC-JP no value
mbstring.language neutral neutral
mbstring.substitute_character no value no value
mbstring.encoding_translation が変わってないので、そのせいかな? とも思っているのですが……
27 :
25:04/01/07 10:16 ID:???
>>26 http入力はスクリプト実行前に処理されているので、
スクリプト実行中にmbstring.http_inputを変更しても、
時すでに遅しってことです。
28 :
25:04/01/07 10:20 ID:???
と、どうしても自動変換を求めるのなら、
.htaccessで設定してみてはいかがか。
HTMLのフォームから送信されてくる半角空白と を区別したいと考えています。
$_POSTで受け取るとして、半角空白の場合は
<?php
$arrTmp = unpack("C*", $_POST['TEXT']);
foreach ($arrTmp as $key => $char)
{
if ($char == 0x20) echo "半角空白";
}
?>
で判別できますが、 の場合は2byte返ってくるのでどうやって判別するか
悩んでいます。何かヒントでもいただけませんでしょうか。文字コードはUTF-8です。
30 :
29:04/01/07 10:31 ID:???
>>29 自己レス。1行目の「半角空白と を」の「と」と「の」間には&nbsp;が入っています。
下から2行目も同じです。
半角空白と&nbsp;を区別したいと思っています。
31 :
19:04/01/07 10:48 ID:W0Z/ddhB
>>28 試して見ましたが、phpinfo()は変わってくれません(T_T)
同じディレクトリに配置した.htaccessの内容です。
<IfModule mod_php4.c>
php_value mbstring.language Japanese
php_value mbstring.detect_order auto
php_flag mbstring.encoding_translation On
php_value mbstring.http_input auto
php_value mbstring.http_output SJIS
php_value mbstring.internal_encoding EUC-JP
</IfModule>
32 :
25:04/01/07 11:21 ID:???
>>31 書き方はあっているようなので、結局.htaccessによる変更を認めてない設定(httpd.conf)なのかも。
それと今更だが
>>27-28 はちゃんと検証したわけではなく、「確かそうだったとおもう」程度なので
外していたらゴメソ。
>>30 strstr()とか
PHP+Mysqlで作ったデータをエクセルの.xlsファイルで出力って
できないんですかねぇ?DBに格納したデータをダウンロード用
にエクセル形式で用意したいもんで。
35 :
33:04/01/07 12:15 ID:???
>>34 あの、ざっと方法を教えていただけると助かるんですが・・・
出来ればググル時のキーワードだけでも・・・・・
36 :
nobodyさん:04/01/07 12:22 ID:ta2WQh9h
セッションIDについての質問なのですが、
<?php
session_start();
〜省略〜
echo "<a href=\"hoge.php?".SID."p=".$page."\">ほげ</a>";
というソースで、
ブラウザを立ち上げて一番最初にこのページを表示したときだけ、
SIDがPHPSESSID=〜〜〜というふうになってしまいます。
リロードすると正常にSIDが消えます。
これの原因は何なのでしょうか?よろしくお願いします
>>35 pear
しかし、わざわざxls形式にせんでも、csv形式でいいじゃねぇか。
ヘッダーでapplication/x-excel って吐けば、IEならExcelが立ち上がりそうだし。
>>36 最初はクッキーが有効かどうかわからんのでSIDに入っている。
リロードしたときに前回投げたSIDがクッキーから取得できたので、
クッキー有効とみなしSIDは空っぽになる。
40 :
29:04/01/07 12:39 ID:???
>自己レス。1行目の「半角空白と を」の「と」と「の」間には&nbsp;が入っています。
えー・・・すみません。落ち着きます。
&nbsp;をunpackすると10進で194と160が返ってきたので、16進に変換して
"\xC2\xA0"で引っ掛ければ良いことは分かりました。
あとは文字コード全体を1バイト毎に見ていって、この文字はasciiか2byteか3byteか
を判別し、2byteの文字で、かつ、"\xC2\xA0"と一致したら&nbsp;と見なすので
良さそうです。
でも、もっと簡単な方法があれば教えてください。
41 :
33:04/01/07 13:08 ID:???
>>37 >>39 ありがとうございます。
>>37 普通に考えればそうなんですが、ダウンロードするのが素人の集まり
なんで、CSVとか落とさせてもなんだかわからんのですよ
42 :
29:04/01/07 13:25 ID:???
>>32 >
>>30 > strstr()とか
えーっとどのように使うのでしょうか?
strstr($_POST['hoge'], "\xC2\xA0")
では引っかかりませんでしたが・・・。
>>42 ちょと勘違いしいた。
で、 は\xA0だけだと思ってたんだが。
ブラウザによって変わるのかな?
>>41 excelがインストールされてれば、csvでもxlsと同じにアイコンの種類は
excelの表示になるし、MIMEタイプがきちんと渡されて処理されれば、
そのままexcelを起動して開けると思うけど?
45 :
19:04/01/07 15:38 ID:W0Z/ddhB
>>32 ありがとうございます。httpd.confも調べてみます。
……全然関係ない話で恐縮ですが、.htaccessって、ディレクトリ毎に配置しなければならないのでしょうか?
それとも、どこか上のほう(まぁ、仮想ディレクトリのルートには無くてはいけないでしょうが(^^;))においておけば
それでOKなのでしょうか?
こちらでももう少し調べてみますが、ご存知のようでしたら教えてください。
>>45 置いたディレクトリ以下に有効
以下にhtaccessがあればそっちが有効
48 :
19:04/01/07 17:53 ID:W0Z/ddhB
>>45 >>46 出来ました……(T_T) httpd.confのAllowOverrideが「none」になっていました。
ちなみに、最終的な.htaccessの中身は以下のとおりです。
<IfModule mod_php4.c>
php_value include_path ".:/usr/local/lib/php:/usr/share/pear"
php_value mbstring.language "Japanese"
php_value mbstring.detect_order "auto"
php_flag mbstring.encoding_translation "On"
php_value mbstring.func_overload 4
php_value mbstring.http_input "auto"
php_value mbstring.http_output "SJIS"
php_value mbstring.internal_encoding "EUC-JP"
</IfModule>
でも
>>24も設定しないと出力が化ける。……あ、ob_start('mb_output_handler')はかならずしなきゃいけないのかな、こーゆーときは?
print "番号 ${no}";
${no}ってどう言う意味なのでしょうか?
>>48 output_buffering = On
output_handle = mb_output_handler
となっていれば、ob_start('mb_output_handler')は不要。
しかし、この設定は.htaccessでは不可。
php.iniかhttpd.confなら可。
詳しくはマニュアルを嫁
52 :
48:04/01/07 19:47 ID:???
自己解決しました
phpのインストールについての質問はこちらのスレッドで宜しいでしょうか?
>>53 とりあえずネタをふれ〜w
初心者板消えてるしここで良いんじゃね?
55 :
53:04/01/08 07:44 ID:???
ありがとうございます。
PHPでGDを使えるようにしようと思い、configureに
--with-gd=/usr/local --with-png-dir=/usr/local --with-zlib-dir=/usr/local --with-jpeg-dir=/usr/local --with-freetype-dir=/usr/local --with-xpm-dir=/usr/X11R6/lib/
をつけて実行してみたのですが、xpm.hが無いと言われ作業が進まないのです。
find / -name xpm.hしても見つかりませんでした。
最後になりますが環境は
OS:RedHat9 (GUI関連のものは一切入れていません。
Apache 1.3.29
PHP:4.3.4
GD:2.0.17
Free:Type2.1.7
jpegsrc:6b
libpng:1.2.5
zlib 1.2.1
です。
何か、助言などを頂けますと幸いです。
>>55 外部ライブラリを使う必要性がなければ、付属版でどぉよ。
--with-gd --with-png-dir=/usr/local --with-zlib-dir=/usr/local --with-jpeg-dir=/usr/local --with-freetype-dir=/usr/local
57 :
53:04/01/08 11:15 ID:???
configureは通りました。
ありがとうございました。
次はFree Type2で問題でましたが・・・
#error "`ft2build.h' hasn't been included yet!"
#error "Please always use macros to include FreeType header files."
#error "Example:"
#error " #include <ft2build.h>"
#error " #include FT_FREETYPE_H"
#endif
だそうです。
マクロで入れれって・・・_| ̄|○
>>57 freetype-devel-2.1.7-?? が必要なんじゃないかな。
59 :
53:04/01/08 12:14 ID:???
tar玉から入れた所為なんですかねぇ・・・
できればRPMは使用しないと決めているので・・・
もう少しがんばってみます。
>>59 自信はないが、
たぶんヘッダファイル(ft2build.h他)が/usr/includeとか/usr/local/includeに
入っていないってことだろう。
61 :
nobodyさん:04/01/08 13:29 ID:sgVunMbl
EUCで保存されているPHPの出力を
Shift_JISコードのCSVとして出力しようとしています。
下記コードでCSVのダウンロードは出来るのですが
文字コードがEUCのままとなっています。
mb_http_outputの位置や指定がおかしいのでしょうか?
mb_http_output('SJIS');
header("Content-type: application/csv");
header("Content-Disposition:attachment; filename=kaiin.csv");
echo "うほほほっほうう";
コーティングって何ですか?
OOPでコーティング
って書いてあったんですが、OOP(オブジェクト指向)と関係あるのでしょうか。。。
63 :
61もよろしく:04/01/08 13:50 ID:sgVunMbl
>>62 プログラムってエディタとか文字を羅列しますよね。
その内容自体をプログラムコードって呼びます。
ソースファイルとほぼ同じニュアンスです。
それを書くこと、実際にプログラムをキーボード等なりパンチャなりで
作成する工程をコーディングと言います。
OOPでコーディングはオブジェクト指向でプログラムを書くってことです。
64 :
nobodyさん:04/01/08 13:53 ID:eBU6GXs0
>>61 mb_http_outputはその名のとおり,「HTTP出力」文字エンコーディングの設定/取得を
する関数だから。
67 :
61:04/01/08 14:47 ID:sgVunMbl
>>65 ありがとうございます。けどこれで出力する文字コードが設定できないなら
どういとき使うんでしょう。
>>66 ありがとうございます。ググリ方が甘かったみたいです。
上でも触れましたが、てっきりmb_http_outputだと決め付けて
他のも見てませんでした。
で、問題のコードは下のように書いてOKでした。
header("Content-type: application/csv");
header("Content-Disposition:attachment; filename=kaiin.csv");
$line = "うほほほほ";
$line = mb_convert_encoding($line, "SJIS","auto");
echo $line;
$a = array("apple", "banana", "orange");
という配列があるときに、"banana" が何番目の要素か(この場合は1)
を調べる関数ってないですよね?
#ここでいう何番目というのは例えば foreach でまわしたときに
#何番目に出てくるかという意味です。
69 :
61:04/01/08 14:55 ID:sgVunMbl
>>68 出て配列がソートされてないなら
線形検索(前から全チェック)する関数を作成すればよいのでは?
function 何番目( $配列 , $値)
{
$最大値 = array_count_values($配列);
for( $i = 0;$i <= $最大値;$i++){
if( $配列[$i] == $値 )
return $i;
}
return -1;
}
>>69 PHP の配列関数っていろいろあるので、もしかして用意されていれば、
と思って聞きました。自作することにします。
ついでに
>>67 mb_http_output() が機能するのは text/* のときだけだったのではないでしょうか?
どこかに書いてあったような気がします。
>>68 array_search()じゃあかんのか?
>>71 あかんのです。例えば
$a = array(2 => "apple", 1 => "banana", 0 => "orange");
の場合 array_search(0) は当然 "orange" を返しますよね?今回は "apple" を返して欲しいんです。
でも連想配列に線形の概念を要求するのも違うと思うので、今回は自前で関数作ります。どうもお騒がせしました。
ツリー構造を扱いたいのですが、良く使われているクラスがあれば教えてください。
>>75 おいらも初めて知った。
HTML_TreeMenuを落としてみた。
めっちゃ便利だな。
ツリーじゃないけど、2階層メニューを作って使っていたんだが、
もう少し掘りたくなってきたので、こっちに乗り換えよ。
>>73 $keys = array_keys($a);
$id = array_search("apple", $a);
$result = $keys[$id];
あんまり美しくないし試してへんけど。
79 :
nobodyさん:04/01/08 18:50 ID:FYEuio2M
あの、もしかして、レンタルHPとかでPHPの動作テストしたらダメですか?(^^;
自作のPHPプログラムのせいで鯖自体が死亡したりします?
>>78 なるほどね。そういう手もあるか。ちょっと計算回数多いけどな。
>>79 鯖を落とそうと思えば落とせるスクリプトが書ける。
依って(ry
>>79 やめて・・・と言うか常識で・・・
$a = "あぼーん";
for(;;) $a .= $a;
とかで死ぬんじゃね?
まともな裁かんならプロセス殺すけどね
max_execution_timeも書き換えなきゃな。
85 :
441:04/01/08 21:39 ID:rcE4/oKZ
スクリプト中で
print "<font size="4" color="#9999FF">test</font>";
としたら表示してくれません。
fontは使えないのでしょうか?
fontのかわりにpを使用したら表示できました。
"""""
じゃ無理
日本語が上手く認識しねえ
89 :
nobodyさん:04/01/08 23:00 ID:RJrTSi89
配列$aと$bを比較して$aが$bのサブセットかどうか調べる便利な関数ってありますか?
マニュアルの配列は一通り見たんですがそれらしいものは見あたりませんでした.
やっぱり自分で作るしかないですかね
コードを記述するときに、文字コードをutf-8にするメリットは
何かありますか?
utf-8の位置づけがいまいちわからなくて、shif-jisやeucでいいじゃんて思う
それから、phpで別サイトのphp(やperl)の出力結果を取り込むことってできるのでしょうか?
たとえば、
echo "abc";
だったら、abcを取り込みたいのです。参考になるwebサイトなどあれば教えてください
よろしくおねがいします。
91 :
nobodyさん:04/01/08 23:36 ID:SvCNLQ3k
外部からソースが解析できる事自体が問題だな。
分散オーサリングが目的ならば.開発側でtxtでソース書いて利用側で
ソケットを利用して読み込み、一旦ファイルに落として取り込めばいい。
パフォーマンスは落ちるがアップロードする手間は省ける。
>>89 boolで返ってくる訳じゃないけど、あります。
つーか、なんでこういうマニアックな関数があるんだ?.... >PHP
>>90 utf-8は1つのコードファイルに多言語を書き込む時に楽。
別サイトの話についてはマニュアルのリモートファイルの章を参照あれ。
>>90 > コードを記述するときに、文字コードをutf-8にするメリットは
> 何かありますか?
漢字の量だろうな。人名で簡体字はなるべく避けてくれと要望が
あった場合はUnicodeの範囲まで譲歩することにしている。
あと、合法的にNetscape 4.x系を排除できるw
94 :
77:04/01/08 23:45 ID:???
>>87 JavaScriptファイルは別ファイルだし、一度落とせば当面キャッシュに残るだろうから
この程度の大きさならあまり気にならない。
phpファイル(TreeMenu.php)そのものはシンプルだし、このままじゃナニなところも
あるけど、この程度ならおいらでも手を入れやすそう。
phpNavってのはPearのHTML_Menuと同等もの見たいな感じですね。
ま、おいらもどのサイトでもツリーメニューをするのじゃなくて、
シンプルなやつも使うよ。
95 :
89:04/01/09 00:00 ID:JVfJ7XmI
96 :
90:04/01/09 00:38 ID:???
どもっす。日本人としてはutf-8にしておこう。
phpmyadmin対応してないのが、つらいけど・・・。
fedora にするか、vineにするかで迷ってましたけど
fedoraにする決心が付きました。
リモートファイルの件もありがとうございました。
そういえば、phpの内部処理もutf-8なので、
utf-8で書いたほうが速いと、かなり以前に大垣氏が言ってたような記憶が...
98 :
90:04/01/09 02:01 ID:???
ところでutf-8にすれば日本語文字列を使う場合
適切な処理をしないと、漢字の「表」などが
化けてしまうという問題も回避できるのでしょうか?
無理
100 :
質問:04/01/09 09:30 ID:BPOGD0DI
複数行のテキストをまとめて保存する書き方を教えてください。
Perlならこんな感じ(↓)の処理です。
よろしくお願いいたします。
open(SAVE,">file");
print SAVE <<"HERE";
【複数行テキスト】
HERE
close(SAVE);
教えて君でスマソ
phpへのリンク(a href = "hoge.php?foo=bar")をクリックしたら、
サーバ内のデキストファイルに書き込みのみを行い、htmlは送出しない。
みたいな処理は可能ですか?
もし可能ならphpはどのように記述すればいいのでしょうか?
(書き込み処理のみを記述しておいて、headerに何も送出しないような事
を書けばいいのでしょうか?)
>>101-102 デキストファイルちゅうものを知らんのではずしているかもしれんが、
クリック先のファイルで書き込み処理を行い、処理が終わったら
元のページにリダイレクトさせれば良いんじゃないの?
>>101 htmlを送信しないってとこがいまいち謎なんだが、
クリックした後どういう状態になるのかな?
何も変わらない(ようにみせかける)ならLocatonで
元にリダイレクトするとか、、
あと、ちょっと変だけど404のステータスコードを出して
ページが存在しないように見せかける?とか。
105 :
nobodyさん:04/01/09 10:51 ID:2mDIBhj+
マスク付きのIPアドレス文字列(例:192.168.254.0/25とか、123.123.123.123/255.255.255.0とか)
を$REMOTE_ADDRと比較するにはどうすればいいでしょうか?
マジメにビット演算するよりは簡単・お手軽な方法があると思うのですが(^^;、うまく検索できません。
ポインタだけでも教えていただければ助かります。
106 :
104:04/01/09 10:51 ID:???
カブった。スマソ。
>>101 処理終わったらexit。
でも無理か。
108 :
100:04/01/09 11:00 ID:BPOGD0DI
>>100 のような処理はPHPでは無理・・・ということでしょうか?
$save = <<< HERE
【複数行テキスト】
HERE;
としてから、fwrite()などで書き出すしかない・・・と。
>>108 fputs($fp, <<< EOF
fukusugyo-
tekisuto
EOF
);
>>108 無理っちゅーか、何か不満でも?
単に書式が違うだけだと思うが。
111 :
101:04/01/09 11:22 ID:???
>>103,104,107
サンクスです
>>104 >htmlを送信しないってとこがいまいち謎なんだが、
>クリックした後どういう状態になるのかな?
おっしゃる通り、クリックしたページは何も変わらず
そのままにしておきたいのですが、リダイレクトではなく
ページのリフレッシュが全く起こらないのが理想なんですが・・・
ちょっと調べたみたらob_startとob_end_cleanの組み合わせで
出来るかもしれないのでまた試してみます。
113 :
nobodyさん:04/01/09 11:28 ID:2mDIBhj+
>>105 自己レス……ありました(T_T) 最新のPAERのNET_IPv4使えばいいみたいです。
でも、これの入力チェックはどうしようかなぁ。
で、しいて擬似的にするのであれば、0サイズのフレームを使う。
115 :
100:04/01/09 11:49 ID:fGYNPp7+
>>109 おー!そんな書き方できたんですね!!!
すばらしい・・・盲点でした。
ヒアドキュメントとは違って、
後ろのEOFにセミコロンは付けないのがミソかも。
どうもありがとうございました。
>>114 102=110=112じゃないでしょうかね?
116 :
101:04/01/09 12:01 ID:???
>>102=112
マジレスかどうかわかんなかったのでスマソです。
>>114 現時点ではそれが一番いいかなと思います。サンクスです。
>>115 違うYO
けど、110にほぼ同意。
109の書き方が「すばらしい」のか?
きっと
>>109も書き方を示しただけで、
薦めているのではないと思ったりするんだが。
118 :
109:04/01/09 13:00 ID:???
>>116 なんでリフレッシュされると困るのか、参考までに教えて。
121 :
nobodyさん:04/01/09 17:11 ID:v5cW1S/l
変数の中身が数値として使えるかどうかを判定するには
どうすれば良いのでしょうか?
できれば、どのバージョンでも使える方法を教えて下さい。
宜しくお願いします。
>>121 0->9以外の文字が使われていないか検索する。
123 :
121:04/01/09 17:50 ID:v5cW1S/l
>>122 レスありがとうございます。
言葉足らずでした。
$a = "0 です";
or
$a = "数値ではない";
上の時
$b = $b + $a;
これをする方法を教えてください。
>>123 $aの値はどのような流れでそんな値になるの?
俺なら$aに入力する値を判定及び処理しやすいようにプログラムの
フローを見直すけどね。
余計なお世話だが。
で,本論に戻ると。
>>123の書き込みを見て勝手に解釈すると
数値が入っている時は’数値’+’半角空白’+’です’というフォーマットに
なっているのかな?
それならexplainで分割して最初の配列の値について
>>122の検索を
行えば?
・・・やっぱり$aにデータが入るまでのフローを見直すほうが後々のためにも
良いような気がするけどね。
>>124 explain(×)→explode(○)
吊ってくる・・・
>>123 数字と文字列を連結したいのかな?
$b = $b.$a;
>>123 $b += is_numeric($a)? $a:0;
0を足すというのはちょっと邪道かな。
Σ(´д`*) 名前欄入れたままだた。
>>123
ところで$bにはどんな値が入っていて、どのような結果が欲しいのだ。
人の知恵を借りようとするなら、相手が考えやすいよう自分の持っている情報、希望を
詳しく書けよな。
130 :
121:04/01/09 18:34 ID:???
>>129 失礼しました。詳細を書かせて頂きます。
inputタグのradioかcheckboxの値を取りたいのですが、どちらが入っているか
不明なので$_POST[$question]が配列なのか数値が入っているのか不明です。
数値が入っていたら、処理1
数値が入っていなかったら、処理2
としたいのです。
これを実現する為の方法を簡潔に聞こうと文章を工夫したのですが、
余計に意味不明になってしまいました。
>>124-127 非常に参考になりました。
完璧に初心者なので、それらの方法全てを知りませんでした(^^;
別の機会に使わせて頂きます。
(もしかしたら、上記を実現するに足る方法なのかもしれませんが、具体的に
どうすれば良いのか分かりません。ごめんなさい)
>>130 if(is_numeric($a)){
処理1;
}else{
処理2:
}
>>132 >>123をそのまま読むから混乱する。
>>130と合わせて考えれば
$_POST[$question] (123では$a) が 数値なら処理1
数値以外なら処理2ということだろ。違うのか?
>>133 >>124も読んだほうが良いかも。
まあそもそもラジオボタンとチェックボックスを同一変数名で読もうとする
フォームの設計自体を見直した方がすっきりすると思うけどな。
135 :
nobodyさん:04/01/09 19:07 ID:cTT8bg6x
136 :
121:04/01/09 19:13 ID:???
厨な質問なのに、親切なレスありがとうございます。
>>131 その方法で出来そうです。ありがとうございます。
>>134 $_POSTで受ける以外にどうすれば良いのでしょうか?
inputタグの内容は全て$_POSTで読むのだと思ってました。
>>136 なんだよそんなことかよ(´・ω・`)ショボーン
121を読んで122を書いたときは全てのバージョン=PHP 3.x系でも動くように
ということかと思ったんだよ(is_numericはPHP 4から)。
後、132では$a = "0 です";
なんて数値と文字列を混在させるから、また誤解したんだろうが。
質問の仕方としてはかなり問題があるぞ。初心者とかそんなことに関係なく。
まあ、次からは気お付けてくれ。
>>137 >>121を読んだときに、空気も読むべきだったな。
つーか、
>>136 >inputタグの内容は全て$_POSTで読むのだと思ってました。
確かにそうなんだが、あんさんの書き方がおかし杉。
だから勘違いされるんだよ。
139 :
137:04/01/09 19:38 ID:???
>>138 おっと、謝るの忘れてた。
正直すまんかった。・゚・(ノД`)・゚・。
ほんま変な方向に深読みしすぎてましたな。
ココは質問初心者スレですか?w
>>135 ApacheとそのモジュールまたはCGIとしてPHPを動かしていると仮定して
ポートを分けて完全にApache+PHPを2重化すれば可能。
CLI版のPHPなら単に2種類インストールすれば良いだけの話。
判らなければ2つのハードを用意して、OSから2重化してください。
142 :
141:04/01/09 21:30 ID:???
つうかリンク先にまんま書いてありますな。
ひとつのApacheに2つのPHP4は、私がやった時はやりかたが悪かったと
思うのだが、うまくいかなかった(件のスレッドではそれも出来てるようだけど)
のでApacheから2重化した。これなら悩まないで出来ると思うけど?
>>140 そのようだね
質問するとかそれ以前の問題DA!DA!DA!
>>94 うぅん・・そうかなぁ。
リンク生成自体が、javascript決めうちなのがTreeMenuで、
それにこまった、ちゃぷマンが、そこらへんの出力部分を「訂正」した拡張クラスをつくって、
余計にわからなくなってる、という印象しかうけないけど。あんまりスマートなPEARだとは思えん。
146 :
:04/01/09 23:51 ID:SDh5nMwm
PHP では変数を明示的に宣言することはできないのでしょうか?
変数名のタイプミスで見つかりにくいエラーを作りこんでしまったことがあり、
できれば宣言していない変数を使うと警告が出るようにしたいのですが。
>>144 マジで今回の質問者はプログラミング自体に向いていないと思うよ。
創造的な仕事ができるタイプではないな。
ファーストフードやコンビニの店員みたいなマニュアル仕事がおすすめ。
149 :
135:04/01/10 01:21 ID:mupL+3ye
>>141-143 ありがとうございます。
インストールした後のことはMLの記事どおりにやればどうにかできそうだと
思っていたのですが、そもそもバージョン違いのPHPを同時にインストール
という方法が分かっていませんです…。
普通にmake→make installすると /usr/lib/php まで書き換わってしまいますよね。
もしかしてApacheモジュールとして実行させる場合 libphp4.so 単体だけあれば
よかったりするんでしょうか?(それならばリネームするだけなんですけれど)
>146
言いたいらしいことと言ってることのどっちに答えればいいのか分からんが、無理。
>>150 ただ、設定しだいでは、代入(初期化)されていない変数を参照しようとすると
Notice: Undefined variable:
が出るよね。
basicと同等だな。
日記の更新チェックを行うスクリプトをくみたいのですが、
perlやphpから出力されたものだと、
日記が更新されてもcgiスクリプトが更新されている訳じゃないので、
日付チェックができません。
今は、perlやphpからの出力をfile()で取り込み、それをすべてサーバーに保存して
サーバーに保存されたものと、更新時に取得したものを比較することで
日記が更新されているかどうかのチェックを行っているのですが、重いです。
なにかもっといい方法があれば教えてください。
よろしくおねがいします。
更新をどう定義するのか知らんが、
テキスト全比較するのが確実なんだろうな。
155 :
nobodyさん:04/01/10 13:42 ID:TfCVSTGm
普通に最終更新時刻を見ればいいだろ
>>153 日記の更新方法は?
テキストの受け取りやファイルの保存などでスクリプトが関与するなら
DBに日記更新日時を記録すればいいんでないの。
DBといっても実行ファイルを展開するだけで利用できる簡易な奴で
十分だし(でもちゃんとSQLは使えるよ)。sqliteとかな。
他人の日記の更新時間の話だと思われ。
158 :
nobodyさん:04/01/10 14:50 ID:abX2L292
既出かもしれませんが、
PHPからCなんかで書かれたライブラリを呼び出す方法って
どうすればいいんでしょうか?
なんか、PEARとかPECLとか使うんでしょうか?
>>156 >>157さんのいうとおり他人の日記です。
日記のリンク集をつくっていて
更新日、デッドリンクをチェックさせたいのです。
>>159 htmlのどこかにコメントとして更新日を吐いてもらうのがいいんじゃないかな?
あとは更新日取得用のページを相手さんに作ってもらうとか。
>更新日取得用のページ
ちょっと簡単に書きすぎちゃったかな。
new.txtみたいな名前に2004/01/10/12:30という風に書いてもらうとか。
162 :
nobodyさん:04/01/10 16:08 ID:Eo+xCikT
日記のデータを収めてあるdatファイルかなんかがあれば
それのlast modifyを調べる。多分無理だろうけど。
163 :
nobodyさん:04/01/10 16:11 ID:6v1RQdcE
PHPとMySQLのインストールについて質問です。
OSはRedHatLinux8でMySQLはソースからコンパイルしました。
場所は/usr/local/mysqlです。
次にPHPをインストールします。
公式サイトより4.3.2をダウンロードして解凍し、以下のようにコンパイルします。
#./configure --enable-track-vars --with-apxs=/usr/local/apache/bin/apxs
--with-mysql=/usr/local/mysql --enable-mbstring
--enable-mbstr-enc-trans
しかし、なぜかmysqlのディレクトリを指定するとエラーが出てしまいます。
指定せずに、--with-mysqlだと無事にconfigureが通りますが
MySQLとの連動がうまく計れません。。
上記のやり方はgoogleで検索していくつか探して参考にしたのですが
上手くいかないので、アドバイスいただければと思います。
>>163 エラーの内容を正確に書いてくれ。
連動が上手くいかないとは具体的にどういうこと?
後、なんで4.3.2を使うの?
>>160 htmlなら、更新日付をチェックする関数があるので、問題はないのです。
166 :
nobodyさん:04/01/10 16:50 ID:6v1RQdcE
>>164 configure時に以下のようなエラーメッセージが出て、連動出来ないという事です。
configure : error: Cannot find mysqlclient library /usr/local/mysql
と出ます。
あと、PHPのバージョンで4.3.2だと何か問題があるのですか?
Windowsでインストールした時に4.3.2にして問題なく出来たので
同じバージョンを使用しようと思ったのですが。。
167 :
166:04/01/10 16:53 ID:6v1RQdcE
間違えました。--with-mysqlにしてインストールすると
PHPとMySQLを使用するプログラムが動かないという事です。
要ははてなアンテナのパクリやろうとしてるんだろ?
はてなの設定みたいに、人間が指定しないと無理だろ。
>>166 ちゃんとエラーメッセージに原因がのってるやん。
これで分からんようなら素直にRPM(でしたっけ?俺は*BSD派
なんで良く知らん)を使った方が良いのではないですか?
>あと、PHPのバージョンで4.3.2だと何か問題があるのですか?
>Windowsでインストールした時に4.3.2にして問題なく出来たので
>同じバージョンを使用しようと思ったのですが。。
そういうなら止めはせんが、何故4.3.3や4.3.4というバージョンが
リリースされているのか調べてから判断した方が良いのでは?
日本語が不自由なエキサイト君でもこのくらいは分かるぞ
configure : error: Cannot find mysqlclient library /usr/local/mysql
↓
次のものを形成してください:エラー:mysqlclientライブラリー/usr/ローカルの/mysqlを見つけることができません。
>OSはRedHatLinux8でMySQLはソースからコンパイルしました。
ふーん
171 :
166:04/01/10 17:18 ID:6v1RQdcE
>>169 どうもありがとうございます。
エラーメッセージについてですが、clinentのディレクトリを指定してないからと思い
/usr/local/mysql/clientというclientディレクトリがあるところを指定したいのですが
結果は下記でした。。(理解が違っていたら、ご指摘ください)
configure : error: Cannot find header files under /usr/local/mysql/client
>そういうなら止めはせんが、何故4.3.3や4.3.4というバージョンが
>リリースされているのか調べてから判断した方が良いのでは?
最新バージョンはエラーが多いと聞いたのと
4.3.2は持っている書籍で使用しているので、こちらを選びました。
4.3.2と4.3.3+4.3.4でそんなに大きく変わるなら考え直そうと思います。
(おそらく、そんなに変わらないとは思いますが・・。)
>4.3.2と4.3.3+4.3.4でそんなに大きく変わるなら考え直そうと思います。
> (おそらく、そんなに変わらないとは思いますが・・。)
アフォですか?
「RedHat+PHPをソースからインストール」って最強(最凶)だな。
175 :
166:04/01/10 17:40 ID:???
>>172 調べた結果を述べてます。
>>173 意味がわかりませんが、「アフォ」の意味を教えてくれませんか?
「大きく変わるのに知らないなんてお前は馬鹿か?」
というのならわかりますけど。。
あと、正直、これぐらいしか理解力がありません。
ですが、学びたいのでこのスレにきて皆さんに質問してます。
皆さんの”常識”だと思われている事は正直、わかりません。
なので、きつくおっしゃられても理解できません。アフォです。出直します。
176 :
169:04/01/10 17:46 ID:???
177 :
172:04/01/10 17:48 ID:???
178 :
nobodyさん:04/01/10 17:50 ID:TfCVSTGm
>>166 mysql.hとlibmysql.soの位置を教えれ
mysqlってちゃんとインスコできてるの?
まぁ、頭の回転が悪いヤツは何をやってもダメって事だな。
181 :
173:04/01/10 17:56 ID:???
>>175 よく調べもしないで自己判断してるから頭悪いなと思っただけだよ
ソースから環境を構築したいならRedHatなんていうバギーなディストリは
使わんことだな。これも超FAQだ。
>>166 php-4.3.3のconfigureだが53497行目にそのエラーが出力されるようになっとる。
for i in lib lib/mysql; do
str="$MYSQL_DIR/$i/libmysqlclient.*"
for j in `echo $str`; do
if test -r $j; then
MYSQL_LIB_DIR=$MYSQL_DIR/$i
break 2
fi
done
done
if test -z "$MYSQL_LIB_DIR"; then
{ echo "configure: error: Cannot find mysqlclient library under $MYSQL_DIR" 1>&2; exit 1; }
fi
シェルスクリプトはよー知らんが、適当に読んだ振りをしてみると、
--with-mysql=PATHで指定したのがたぶん$MYSQL_DIRに入ってるのだろう。
つーことはだ、PATH/lib/mysql/libmysqlclient.* てのが見つからんので文句言われてるわけだ。
で、おまいさんの場合/usr/local/mysql/lib/mysql/libmysqlclient.* てのはあるのかい?
184 :
166:04/01/10 18:11 ID:???
すみません、煽られていると思い私も投げやりな
書き方をしました。訂正します。
>>176 わかりました。確認します。
>>177 そこは見てません。確認します。
>>178-179 ちゃんと出来ていると思うのですが。。
makeもちゃんと通りましたし。。
mysql.hは/usr/local/mysql/include の中です
libmysql.soは/usr/local/mysql/libmysql の中です。
>>182 一番多く使われているディストリを持ちいりました。
一番、参考資料が多いですし。Vineとかは日本語ですが、Redhatの方が
私的には使いやすかったので。。
とりあえず、皆様の意見、十二分に学ばせていただきます。
では、失礼しました。
185 :
166:04/01/10 18:16 ID:???
>>183 >/usr/local/mysql/lib/mysql/libmysqlclient.*
はありませんでした。。
あと、ソースは公式のダウンロードページの
ttp://www.mysql.com/downloads/mysql-3.23.html フッター付近のTarballを解凍してコンパイルしました。
(これも解説書に載ってあったので)
rpmの時はSeverとClient programsをインストールしました。
とりあえず、これから出かけます。帰ってきて
皆様のアドバイス参考にさせていただき、勉強させていただきます。ありがとうございました。
MySQLがインストールできているかどうかは単独で立ち上げれば
分かるだろ。
mysqlclient libraryはソースから入れたなら/usr/local/mysql/libに
あるのが普通。確認してないけど。
188 :
nobodyさん:04/01/10 19:29 ID:TfCVSTGm
あー、libmysql.soとlibmysqlclientを間違えてた。
とりあえずconfigure時のオプションを
--with-mysql=/usr/local/mysql
ってやってみていけるかどうか試してみれ
それでもダメなら
--with-mysql=/usr/local/mysql/lib
でいけるんじゃないかな?
189 :
nobodyさん:04/01/10 20:14 ID:N5Ch7F6/
クライアントがIE5.5以上なんでGETで送られてくる日本語がUNICODEになってるんですけど
これをPHP側でなんとかSJISに戻す方法ありますか?
PHP4.23なんですがサーバいじる権限はないので mb_string がらみの関数使えません。(´・ω・`)
地道にテーブル変換すればいいってのはわかるんですけど、既にやってる人いそうなので・・・
190 :
nobodyさん:04/01/10 20:47 ID:lLFFYt/I
どなたかご指導ください。
MacOSX10.2.8でPHP4.3.4を使っているのですが、この度Zend Optimizerを
入れてみようと思いました。
2.1.1.0cのパッケージをダウンロードして、ターミナル上で、./install.shを行
なったのですが、うまくいきません。
ERROR: Cannot CD to install directory: ./zui_files
というメッセージが出てしまうのです。初心者の私ですが、よろしくお願いし
ます。
191 :
nobodyさん:04/01/10 21:08 ID:D9oHxqlT
MySQLのロックの仕方を教えてください。
$sql = "SELECT * FROM table1 WHERE name = '山田%';";
$res = mysql_query($sql, int [link_identifier]) or die("データ抽出エラー");
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
/* 処理 */
}
↑どのタイミングで
mysql_query("LOCK TABLES table1 READ");
とか
mysql_query("UNLOCK TABLES");
を入れたらいいのですか?
>>191 それ以前にロックの必要性について検討しなおすべし。
>>189 mb_convert_encoding ?
>>190 マカーじゃないのでわからないけどzui_filesが無いとかパーミッションとかどうよ?
>>193 mb_stringが使えんと書いてあるが?
>>190,194
俺もMacのことは分からんが、
ERROR: Cannot CD to install directory: ./zui_files
は./zui_filesディレクトリにcd(チェンジディレクトリ)できないと
読むのが素直な読み方だと思うぞ。
196 :
191:04/01/10 21:44 ID:D9oHxqlT
>192
検討した後にもし必要ってなったらどこに入れるの?
てか、必要だと思う。
>>189 unicodeじゃなくて、urlencodeされているだけと違うのか?
200 :
192:04/01/10 22:01 ID:???
>>196 俺も198同様必要ないと思うが、入れるんなら$resの前後だろ。
何を根拠に必要と思ったのか知らんが、MySQLのマニュアルを
読んでいればそういう結論にはならんな。
よって後は好きにすべし。
201 :
nobodyさん:04/01/10 22:37 ID:rHldDz+w
ごめんなさい初心者質問です!
アマゾンWEBサービスをPHPで使う際に、サーバの設定も他のPHPファイルもEUC-JPなので、
UTF-8からEUC-JPに変換してから結果を表示させようと思い、i18n_convertを使って
なんとか結果は文字化けせずに表示できるようになったのですが、
amazon.phpがincludeしているnusoap.phpがUTF-8でなければいけなくて、
index.phpにamazon.phpをincludeすると、このnusoap.phpの部分が文字化けしてしまいます。
これを避けるには一体どうしたらいいのでしょうか?
includeするファイル自体を一括でEUCにconvertすることはできるのですか?
202 :
nobodyさん:04/01/10 23:22 ID:TfCVSTGm
amazon.phpをinclude後、最終的に自分のプログラムに何かしらデータ
を渡す時点でmb_convert_encodingすれば解決するんじゃないかな?
>>201 同じことしてる人ハケーンw
俺はXML解析してるからnusoap知らないのでアボーンw
204 :
190:04/01/10 23:34 ID:lLFFYt/I
>194,195
ちゃんとそのディレクトリーは同じところにあるのです。
アクセス権も問題ないんですけどね。
>>201 Unicodeサイン(BOM)を付けないでnusoap.phpを保存し直す
>>189 Perlのjcode.plに相当するjcode.phpを使う手もある。
>206
レスする前にリロードしろよ
IE5.5でもUnicodeでURLエンコしない設定の人がいるけど。
>>207 元質問者が出てこないままurlencodeにケテーイされてたからね。
海外の無料鯖だとmbstringが使えないのは良くあること、
(レスする人は)考慮してくれないと。
文意は199を読んだのかって事だろ。
mbstring以前の問題つうことだろ。
Urlencodeとか言ってるレスは低脳だから無視しとけばいいんだよだろ
213 :
201:04/01/11 02:17 ID:OlXHupfH
>>203 うぅ。。w
>>205>>202 回答ありがとうございます!!
>>202さんの提案は力不足で思いつかなかったので
>>205さんの言うようにnusoapをBOMなしという設定にしてみたらダメだったので
amazon.phpもBOMなし設定にしたらどうやらうまく行ったみたいです!
他の人の閲覧環境でもOKなのかちょっと心配ですが・・
とにかくありがとうございました!
214 :
209:04/01/11 02:32 ID:???
ああ、やっとわかった。
>>199のurlってjcode.phpの配布場所だったのか_ト ̄|○
215 :
nobodyさん:04/01/11 02:38 ID:s92rsOOc
PHPって言うのはどのプロバイダでも使える技術なのですか?
>>215 難しい質問だね
車って言うのは水上でも海上でも走れるんですか?・・・並
>>215 お前の言うところのプロバイダって何よ?
例を10個挙げてみろ。
本7と楽しそうに語らってるお前らって・・・
220 :
nobodyさん:04/01/11 07:20 ID:Q03m1RSI
フォームに入力した文字をファイルに書き込む処理をするときに
特定の日本語の前に\がついてしまうのですが どうすれば回避できるのでしょうか
マジッククウォーツがオンになってるじゃないかと思いましたけどね。
セルジオさぁぁぁああん !!
>>220 (1)php.ini等
magic_quotes_gpc = Off
(2)
if (!get_magic_quotes_gpc()) {
$string = addslashes($string);
}
1,2どちらかで良いよん
なんつーかそこまで初心者なら1冊本を読む事をオススメする
225 :
224:04/01/11 09:43 ID:???
>>224 逆か_| ̄|○
if (get_magic_quotes_gpc()) {
$string = stripslashes($string);
}
226 :
220:04/01/11 10:53 ID:???
>>225 わっしょいわっしょい
ありがとうございます。
どこ見ても2番のやり方が書いてあってやってもできなくて変だなぁと思ってたんですけど
よくよく見てみると\取りたい文字列にそれが実行されてませんでした。。。
へたれですみません。 みなさんありがとうございます。
227 :
215:04/01/11 11:25 ID:???
>>217 (1) freeweb
(2) so-net
(3) ocn
(4) odn
(5) dion
(6) nifty
(7) ASAHI-net
(8) SANNET
(9) アルファインターネット
(10) yahoo-bb
って思うんだけどプロバイダの概念から間違ってる?
>> 216
CGIとかは使用可能とかどうかは明記されてるんだけどPHPやJSP技術は使用可能とか断ってるところって無いからちと質問させて貰ったんだけど
アホな質問でごめんね
isp以外も含まれるようだ。php/cgiは含まれないようだ。
>>227 明記されてるだろ普通。
freewebもso-netもocnも書いてあったけど?
230 :
227:04/01/11 12:04 ID:???
ごめん!!
無料の部分しか見ていませんでした
>> 229 ありがと
さすがに釣られ過ぎ
232 :
名無し:04/01/11 13:43 ID:???
$stringにカタカナ以外の文字列が含まれていたらFALSEを返すような関数はどういう記述をすればいいですか?
正規表現
mb_ereg()
[ア-ン]
>>232 function hoge($str) {
if ( mb_ereg("カタカナ", $str) ) return false;
}
アの前はァだし、ンの後はヴじゃないの。
237 :
質問!:04/01/12 10:46 ID:kC6NEM1W
指定の日付のみメッセージを表示させる場合は
<?php
if(date("Y-m-d") == "2004-01-12") echo "今日は2004年1月12日です。";
?>
という形式でいいと思うのですが指定の日付のみ
IFRAME内のリンク先を指定するにはどうすればいいですか?
<?php
if(date("Y-m-d") == "2004-01-12") echo <IFRAME src="20040112.html"></IFRAME>;
?>
でOKでしょうか?
OKかどうか聞く前に試せよ。
どうせ駄目だが。
いいよ。
OKかどうかなんてことをいちいち質問するな
頭おかしいぞ、完全に
239が勝ち組み。
242 :
237:04/01/12 12:00 ID:kC6NEM1W
だめでした。教えてください。
phpへのリクエストが
FORM action = "hogehoge.php?foo=bar"またはa href="hogehoge.php?foo=bar"
を経由して来た場合は通常の処理を行い、
ブラウザに直接URLを入力してきたリクエストに対しては別のページに飛ばす
にはどうすればよいですか?
244 :
243:04/01/12 13:47 ID:???
スマソ
上記の質問で
フォームからのリクエスト場合、当然 method="POST"です。
>>243 リファラ参照
っつーかお前POSTの意味白根江だろ?
246 :
243:04/01/12 13:51 ID:???
何度もスマソ
method="POST" method="GET"にかかわらず
別ページの
FORM action = "hogehoge.php?foo=bar"またはa href="hogehoge.php?foo=bar"
から来た場合は通常の処理
ブラウザに直接URLを入力してきたリクエストに対しては別のページに飛ばす
と言うことでお願いします
>>244 リクエストがPOSTメソッドでない場合、header関数でLocationを指定して飛ばせばいい。
248 :
247:04/01/12 13:57 ID:???
250 :
243:04/01/12 14:12 ID:???
どうもサンクスです。
ちなみに
if ($_SERVER['HTTP_REFERER'] = "")
を
if ($_SERVER['HTTP_REFERER'] = null)
って書くのはだめなんでしょうか?
if ( empty($_SERVER['HTTP_REFERER']) )
>>250 ダメじゃないけどそれだと常に 偽 になると思うけど…
よく解説書なんかでhogehogeとかfooってのを見かけるんですが
元はどういう意味なんですか?
The 動物園 スレッド '2004
>>254 世界で最初にコンピュータ言語を発明した技術者の名前(Andrew Hoge:アンドリュー・ホーゲ、Robert Foo:ロバート・フー)にちなんでいます。
>256
eは黙字でoをアルファベット読みさせるだけ。
よってHogeはホーゲではなくホウグ。常識ニダ。
FOO
Frankly Or Openly
HOGE
Hide On Get Entity
$a="あいうえお";
$b="うえお";
という文字列があって
$cに$aと$bの差分である
$c="あい"を取得したいのですが、
どのようにしたらよいのでしょうか?
$a = "あいうえお";
$b = "うえお";
echo $c = ereg_replace($b, "", $a );
echo $c = mb_ereg_replace($b, "", $a );
だった。
echo $c = mb_ereg_replace($b, "", $a );
だった。
263 :
nobodyさん:04/01/12 16:33 ID:fUZZk2k6
はじめまして。
pg_connect関数を使用する時に
Call to undefined function: pg_connect()
といってエラーが出るのですが、
どのようにしたらいいでしょう?
>>263 postgreのモジュールが読み込まれてないとか。
>>263 定義しる
function pg_connect(){
print "マニュアルくらい読めよカス";
}
$_SEVER['HTTP_USER_AGENT']からブラウザやOSを取得するライブラリ、どこかに転がってませんか?
269 :
267:04/01/12 17:25 ID:???
>>268 アライヤデスワ。アタクシッタラゼンゼンキガツキマセンデシテヨ。ゴメンアソァーセ
270 :
237:04/01/12 19:01 ID:kC6NEM1W
指定の日付のみメッセージを表示させる場合は
<?php
if(date("Y-m-d") == "2004-01-12") echo "今日は2004年1月12日です。";
?>
という形式でいいと思うのですが指定の日付のみ
IFRAME内のリンク先を指定するにはどうすればいいですか?
>>270 ファイル名を日にちごとに変えたいの?
それともある日にiframeを表示したいの?
#前者
<iframe src="<?=date("Ymd")?>.html"></iframe>;
#後者
<?php
if(date("Ymd") == "20040112"){
echo("<iframe src=\"20040112.html\"></iframe>");
}
?>
272 :
271:04/01/12 21:07 ID:???
前者のセミコロンいらないっぽ(´・ω・`)
273 :
nobody:04/01/12 21:42 ID:DtxerTTK
最初のページでcheckboxで1個以上の値を2ページ目に送って
2ページ目でその送られた値をもとにクエリを発行したいのですが
その2ページ目で
foreach($送られた値 as $dat) {
$and .= "AND sub_id like '%$dat[id]%'";
}
$query = ("SELECT * FROM hoge WHERE status = 't' $and");
として$andにどんどん条件を溜めていきたいんだけど
このままだと$queryが
SELECT * FROM hoge WHERE status = 't' AND sub_id like '%5%'AND sub_id like '%6%'
になっちゃうってしまってほんとは
SELECT * FROM meeting WHERE status = 't' AND sub_id like '%5%' OR sub_id like '%6%'
とゆうふうに最初のAND以降はORにしたいんだけど
そんな事はできないですか?
274 :
267:04/01/12 21:53 ID:???
>>273 配列に入れておいて implode() で繋げ
275 :
nobodyさん:04/01/12 22:50 ID:aKZaKTJI
質問です。長文スマソ。
現在の環境がApache2、Win2K、PHP4.3.4とperl5.6の組み合わせで、
以下のような処理をさせると文字化けが発生してしまいます。
a.php ←EUCで記述
b.pl ←EUCで記述
で、a.phpの中でb.plの出力を埋め込もうと virtual("b.pl"); で呼び出したところ、
a.phpの出力(シフトJISで出力されてる)
b.plの出力(EUCで出力されてる)
a.phpの出力(EUCで出力されてる)
となり、b.plの出力以降が文字化け(ブラウザは自動でシフトJISに切り替わった)します。
このa.phpの最初の部分がシフトJISになってしまう理由と対処方法を教えてもらえないでしょうか。
php.iniの
mbstring.internal_encoding = EUC-JP
mbstring.http_output = SJIS
の部分もいじった(もちろんApache2の再起動もして)のですが、状況に変化無しです。
276 :
267:04/01/12 23:06 ID:???
>>275 原因:Apache2を使っているから
対処:Apache1.3を使う
277 :
275:04/01/12 23:49 ID:???
ガ━━━━━━━━(゚Д゚;)━━━━━━━━ン!
_| ̄|○リョウカイデス
278 :
nobodyさん:04/01/13 00:03 ID:HmZtZhun
配列の要素の数を返す関数ってあるでしょうか?どなたか教えてください。
279 :
nobodyさん:04/01/13 00:15 ID:eVmUI2i8
281 :
nobodyさん:04/01/13 00:18 ID:7hPdz314
283 :
nobodyさん:04/01/13 00:23 ID:HmZtZhun
サンクスです。
インプレスのブラックブックには、count関数は載ってませんでした。
tp://php.benscom.com/manual/ja/function.count.php
インデントした{ … }内とかでヒアドキュメント使うとちょっと
わかりにくくなりますが、みなさんはHTML文が何行以上くらいのときに
ヒアドキュメントにしますか?
使わない
286 :
nobodyさん:04/01/13 01:41 ID:mMDLRUuY
共通して表示するような部分、、
例えばヘッダ・フッタをHTML専用のクラスで実装させるクセがあるんだが
そういう場合はデザインもらった状態から切り出してヒアドキュメントで実装させるなぁ。
ページ別で変わるような部分はHTML内にメンバ関数埋め込む
287 :
nobodyさん:04/01/13 02:10 ID:mMDLRUuY
違った
メンバ変数
>>284 $hoge=<<<__hoge__END
__hoge__END;
としていたが、分かりづらいし_の数間違ってエラー出たりで
辟易としたので、最近はhtml.hoge.php.incとかのファイル名にして
includeしてる。
日付を表すファイル名をつけるのに後での処理(読み込み)を考えて
いいつけ方ってどんなものが考えられるでしょう?
個人的には-で区切った名前にしておいて、
読むときはexplodeで一発ってのが一番手っ取り早いかなと思っています。
繋げて書き出して substr で分割や、ereg、preg系で解析だとファイル名は短くて済みますが、
若干ですがコストがかかるような気がして…。
他に何かありますかね?
290 :
nobodyさん:04/01/13 10:57 ID:UbD2BwrX
GETで引き渡した引数のリストをまた引き渡したいのですが
hoge.php?var1=itteyosi&var2=gikohahaha&var3=abooon
と入力した時に、?以降の文字列を呼び出す方法って無いでしょうか?
自分で関数を用意してもいいのですが、
もし、?以降の文字列を呼び出す方法がありましたら教えてください。
それとも、ここはクッキーを使って処理するところなのでしょうか?
(当方、クッキーの使い方をよく知りませぬ)
>>290 お前のやりたいことはお前の脳内のお友達しか理解できねーよ。
マニュアル読んで死ね。$_SERVER["QUERY_STRING"]
>>291 あなたってやさしいのね。ううん、わたしにはわかる。
言葉遣いは悪いけど、本当はすごくやさしい人なんだって。
好きになっちゃいそう… 好きになっても… いいですか?
いいよ、結婚しようか。
array_filterについての質問です。
配列の中から空白を削除したいのですが,下記のソースを実行すると
"0"も削除されてしまいます。
皆さんの環境でも再現するかどうか確認してもらえませんか?
後,対策についてもご教授ください。
<?php
$arrA = array("0","","A");
$arrB = array_filter($arrA, "conv");
print_r($arrB);
?>
<?php
function conv(&$vl)
{
if( strlen(trim($vl)) ) return $vl;
}
?>
マニュアルによるとarray_filter()は、コールバックがTrueの場合Inputをスルーすると書いてある。
コールバックのIf文は、0の文字数 int 1 でTrue判定。$vlに入っている"0"が返される。このため、
コールバックは "0"、つまりFalseになるわけだから、Filterによって削除される。そういうわけだから、
確認するまでも無く再現すると思うよ。
>>294 return $vl; じゃなくて
return true; だろ。
297 :
294:04/01/13 14:36 ID:???
>>295,296
確認しました。
なるほど。今まで間違った使い方してました。
どうもありがとうございました。
なんか久々に普通の質問者を見たなあ。
俺が普通じゃなく答えてたら普通じゃない質問者になってたかも。
300 :
294:04/01/13 19:00 ID:???
>>299 そ,そんなことありませんてw
array_filterの件はarray_mapと微妙に混同してました。
でも,array_filterとaray_mapで引数の順序が違うのはいかにも洗練されていない
印象を受けますねぇ。個人的には。
301 :
nobodyさん:04/01/13 20:59 ID:Fbtd2kVQ
FreeBSD5.1/Apache1.3.29/PHP4.3.4な環境でAPC2.0入れると
1時間くらいでおかしくなるんですが。。。
>>301 だから?
どうおかしくなるの?あ、頭がおかしいんだね^^
function ...
{
}
こういうブラケットの入れ方は上級者っぽいんですか?
304 :
nobodyさん:04/01/13 21:50 ID:Fbtd2kVQ
>>302 signal 11連発してくれます。FreeBSD4.xやRedhat7.xの時は問題なかったのに。。。
よくわからんのでAPCからPHPAに変更してみました。
int main(void){
}
私はこっち派だなぁ
>>303 C言語でそのように使う人が多い・・・
と何かの本で読みました。
>>305 オレもそっちだわ。
開き括弧で改行するのはK&Rスタイルだっけ? 自分が見やすければ何でもいいと思うけど。
308 :
294:04/01/13 22:18 ID:???
私も昔は
>>305のように書いていたんですが、最近
>>303の様に書くよう
乗り換え中です。括弧の対が見やすくて気に入ってます。
ちなみに元Fortranプログラマーです。
309 :
nobodyさん:04/01/13 23:03 ID:yYOuWUXO
PHPって簡単ですか?
HTML覚えてからなら難しくないよね?
>>309 算数って簡単ですか?
国語覚えてからなら難しくないよね?
>>309 ええ。
でも本当にHTMLをマスターしてからPHPを学んでくださいね。
そうしないとPHP-MLの住民のようにHTMLとPHPの切り分けが
できずに泥沼にはまることになるので。
>>311 最近のPHP-MLの住民は「HTML以外とPHP」の切り分けも出来ない
PHPとPerl
どっちがいいですか?
PHP
>>313 氏ね
Perl板で同じ事聞いてみろよヴカ
>>316 人に言われてするようなら辞めた方がいい
今後マニュアル読まず問題は質問で解決になるの見え見え
こんなプログラマ イラネと言うかプログラマって言わない
>>318 >>316が軽い煽りで言ってるのも分からないのか。
君は人とのコミュニケーションに向いてないよ
fopen ( string filename, string mode)
を行うとき、やはりファイルサイズが大きければ負荷が高くなるのでしょうか?
この時modeの選択次第では負荷が変わってくることはあるのでしょうか?
321 :
nobodyさん:04/01/14 00:05 ID:19lbeSV0
PHPとCGIってどっちが簡単でどっちが便利ですか?
>>321 |
〜〜〜〜〜〜〜〜 | 〜〜〜〜〜〜〜〜〜〜
>( c´_ゝ`) |
|
>( c´_ゝ`) J
>( c´_ゝ`)
|
〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜
| >( c´_ゝ`)
|
J >( c´_ゝ`)
>( c´_ゝ`)
323 :
nobodyさん:04/01/14 00:13 ID:19lbeSV0
PHPを自宅のパソコンで使えるようにする方法を教えてください。
この場合は
for(;;){
for(;;){
echo "hoge";
}
}
for(;;)
{
for(;;)
{
echo "hoge";
}
}
私ならやっぱり前者だなぁ。見やすい。
でも、これは個人の自由でいいと思うよ
1人で作るなら何でも良い。
お前らにはリビジョン管理とかコーディング規約とか関係ないだろ。
>>324 個人の自由に同意。俺は後者の方が好きだけど。
コーラ派かペプシ派か。雑炊は卵でとじる派か、とき卵をまぜる派か
と同じくらい個人的(ある意味宗教的)な問題だと思う。漏れはどちらも後者だが。
>>325 他人と協業する時はもちろんあわせるよ。
でも実際、大規模な開発案件は減りつつあり一人で作成することが
増えてきたよ。
328 :
nobodyさん:04/01/14 00:25 ID:K8Mq6bzq
俺的にはfunctionは
function aaa
{
}
だけど、ループは
while(1) {
}
だな。
329 :
nobodyさん:04/01/14 00:36 ID:19lbeSV0
PHPのテストをやる方法を教えてください。
>>329 |
〜〜〜〜〜〜〜〜 | 〜〜〜〜〜〜〜〜〜〜
>( c´_ゝ`) |
|
>( c´_ゝ`) J
>( c´_ゝ`)
|
〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜
| >( c´_ゝ`)
|
J >( c´_ゝ`)
>( c´_ゝ`)
纏めるとこういうことだな。
function foobar()
{
if (expre) todo;
if (expre)
todo;
else {
todo;
}
while (expre) :
todo;
endwhile;
switch $hoge {
case 'a': todo;
case 'b': todo;
default: todo;
}
if (expre)
{
todo;
ret $hogera;
}
else
{
todo;
ret $fugera;
}
}
↓を使うのは簡便。これってそもそも何の言語のやつだっけ。ゴタゴタして見づらい。
if( $bar ) :
elseif( $bar < 0) :
else :
endif;
>>333 大文字にすれば完璧。
IF ($unko) :
WHILE( . . .
>>333 ifは趣味的には、
if (expre) todo;
(exple ? todo1 : todo2);
をなるべく使うようにして、todoが1行に収まらないときだけ
if (expre)
{
todo1;
todo2;
}
としてます。
336 :
nobodyさん:04/01/14 12:51 ID:RG+vybLf
基本的な質問をさせてください。(まだPHPは1冊、本を読んだだけです。)
mySQLとコネクトするときに
$con = mysql_connect("localhost","user","password");
などとPHPファイルにかきますが、
WEBに*.phpファイルを公開しても上記の行は隠れるのですか?
PHPファイルのソースを見られちゃうとIDとパスワードは知られちゃいますよね?
自鯖なら大丈夫。
339 :
336:04/01/14 13:14 ID:+r33Em7k
>>337 というのは、mysql_connect関数でIDとパスを省略できないサーバ(たとえばレンタルサーバ)だと
みられてしまう可能性がある(高い)ということですか?
340 :
nobodyさん:04/01/14 13:29 ID:S4uRrYTi
chm版マニュアル出てたけど、またキーワードの文字化けが直ってなかったよ・・・鬱
あれって、xmlから変換してるんでしょ?誰か有志の人でchm作れる人っていないのか?
ちなみに俺はスキルないのでムリポ _| ̄|○
341 :
nobodyさん:04/01/14 13:50 ID:kb/2PvCy
_______
|_______|_
| |________|_
| | |_______|_
| | | |__________|_
 ̄| | | |_________|_
 ̄| | | | [_][□][X]|
.  ̄| | | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| / ̄ ̄ ̄
.  ̄| | <> ∀ <> | < ブラクーラ
 ̄|________| \___
匚[ _ ][□][×] . 匚[ _ ][□][×] . 匚[ _ ][□][×]
┤ ・∀・ ├┤ ・∀・ ├┤ ・∀・ ├
└ ┬──┬ ┘└ ┬──┬ ┘└ ┬──┬ ┘
ウィンドウタクサン イイ!
匚[ _ ][□][×] . 匚[ _ ][□][×] . 匚[ _ ][□][×]
┤ ・∀・ ├┤ ・∀・ ├┤ ・∀・ ├
└ ┬──┬ ┘└ ┬──┬ ┘└ ┬──┬ ┘
ヽワショーイ/ ヽワショーイ/ ヽワショーイ/ ヽワショーイ/ ヽワショーイ/
===== ===== ===== .===== =====
`-|゚ ∀゚ |‐'`-|゚ ∀゚ |‐'`-|゚ ∀゚ |‐'`-|゚ ∀゚ |‐'`-|゚ ∀゚ |‐'
 ̄| ̄\  ̄| ̄\  ̄| ̄\  ̄| ̄\  ̄| ̄\
342 :
nobodyさん:04/01/14 15:12 ID:WYU7jXSD
初歩的な質問ですみません。乱数を3つ発生させて、イメージをランダムに変更させたいのですが、
どうしても乱数がダブってしまい、同じ画像が二つ表示されてしまいます。乱数をダブらせない方法を
教えて頂けませんでしょうか?
<?php
srand(microtime()*1000000);
$random_num1 = rand(1,10);
$random_num2 = rand(1,10);
$random_num3 = rand(1,10);
while ($random_num2 == $random_num1 and $random_num2 == $random_num3 and $random_num3 == $random_num1) {
$random_num2 = rand(1,10);
$random_num3 = rand(1,10);
}
?>
345 :
nobodyさん:04/01/14 16:00 ID:WYU7jXSD
>>344 できました!つまらない質問に答えて頂きどうもありがとうございました…m(__)m
>>342 もう解決してしまっているがこの方が簡単だしいいと思うな
$imgfiles = array("1.jpg", "2.jpg", ... ,"n.jpg"); // 画像のファイルパス
$randkey = array_rand($imgfiles, 3); //配列からランダムに3つのキーを選ぶ
/*
$imgfiles[$randkey[0]];
$imgfiles[$randkey[1]];
$imgfiles[$randkey[2]];
*/
347 :
nobodyさん:04/01/14 20:30 ID:L4RLQAnS
PHP初心者です。
PHPの画面遷移についてなのですが、
ある処理を行うのに数分かかるので
その間処理中であることを画面に表示したいのですが画面遷移が
一連の流れとして理解されてしまうため処理が終わった後に処理中の文字が出てしまいます。
美味く解決する方法が思いつかないのですがわかる方がいましたらお教えいただけますでしょうか?
348 :
nobodyさん:04/01/14 20:34 ID:y29jFOC0
フォームからgetメソッドで日本語を取得するとき、
WinXPだと日本語が%25E%76%5Rのようになってしまうのはなぜでしょうか?
質問なのですが、PHPでキャラクターコードに変換するのはどうすでばいいのですか。
訪問者
であれば、
&#35370;&#21839;&#32773;
となりますが、この変換方法をご存じでしたらご教授下さい。
350 :
349:04/01/14 20:52 ID:???
と思ったら、でけた。
>>348 その手の話はMLでも何回もループしてるし、最近でも見たぞ。
取り敢えずMLの過去ログ漁ってget渡しについてちゃんと調べてからに汁
>>347 for ( $i=0; $i<10; $i++ ) {
echo $i;
ob_flush();
sleep(1);
}
教えてください!
PDFの動的生成ができてかつ
インストールしなくてもよい素敵な製品ってないでしょうか?
ソースコードだけで動くような。。。
できればレンタルサーバ(WebARENA)で動かそうと思ってます。
もしご存知でしたら教えてください。
354 :
nobodyさん:04/01/14 21:42 ID:y29jFOC0
mb_convert_encodingを使えばよいのですね。
しかし%25E%76%5Rの文字コードがわかりません。ぅぅ
355 :
nobodyさん:04/01/14 21:56 ID:L4RLQAnS
>352
それをやってみたのですが、やはり1文字づつ表示されるのではなく、
10秒後に0〜9の数字が表示されてしまいます。
php.iniの設定がまずいのでしょうか?
356 :
nobodyさん:04/01/14 22:12 ID:ap6LPDDM
PHPを使えるサーバーって少くないですか?
358 :
357:04/01/14 22:32 ID:???
そういえばPearをブラウザ使ってインストールした場合、進捗状況がプログレスバー
付きで出ていたけどあれってJavaScriptと連携してやってたのかな?
362 :
nobodyさん:04/01/15 00:49 ID:gnlmSWMG
<?
$DATE = date("y/m/d H:i", $NOWTIME);
$HOST = getenv("HTTP_X_UP_SUBNO");
$idnum = substr($HOST, 0, 14);
$idcrypt = substr(crypt($idnum * $idnum, substr($DATE, 6, 2)), -8);
$ID = " ID:".$idcrypt;
print "<html>\n";
print "$ID\n";
print "</html>\n";
?>
こんなふうにしてIDを生成しているのだが違う$HOSTなのにたまに同じIDになる。。。
なぜ?
なるだろうな
>>357 でもCGIモードで使うなら最初からcgiで書いた方がいいよね
SQLとかに簡単に繋がるのは利便といえば利便だけど・・・
PHPのみのレンタル鯖ならsafemodeでいいとして、Perl許可されちゃうと
セキュリティも減ったくれもないのはどうしようもないのかな
366 :
nobodyさん:04/01/15 01:32 ID:gnlmSWMG
気になるよ…。
367 :
nobodyさん:04/01/15 03:36 ID:cPBTiTzP
うちのXPにPHP入れてみたけど、セッション処理がどうもうまくできません
webにごろごろ転がってる、簡単なセッションカウンターのスプリクト
でも試してみましたが、
Warning: Unknown(): Your script possibly relies on a
session side-effect which existed until PHP 4.2.3 〜
というエラーが出ます。リロードしても数はカウントされません
register_globals はオフ、
session.save_path の所にセッションファイルは作られています
(関係ないかもしれないけど)ブラウザのクッキーも有効にしてます
誰か何かわかる人がいたらアドバイス下さい
>367
サンプルが古いんだろう。自分で書けば解決。
369 :
353:04/01/15 05:50 ID:???
>>361 ありがとうございます!
しかもフリーであったとは!
試させていただきます!
セッション管理において
クッキーを絶対に使ってほしくないので
session.use_cookies=0
としてhttpdを再起動したのに
なぜかcookieを使うのですが
ほかに設定ありましたっけ
PHP2.4.20 Apache2.0です
>>370 PHPのバージョンが古すぎるんじゃないのw
372 :
370:04/01/15 10:19 ID:???
カーネルの版数書いてた
PHPは4.2.2だす
>>370 session.use_only_cookies は?
それと、正しく設定されているかphpinfoなどで確認汁。
374 :
nobodyさん:04/01/15 14:11 ID:GMe4aRP9
PHPの$_SERVER['HTTP_REFERER']で、
サイト訪問者のリファラーを取得してるんだけど、
全体の2,3割しか取得出来てなくて驚いてます。
普通こんなもんなの?
これじゃ何処からリンクされてるか分からない・・・。
すごいカウンターっていうアクセス解析使ってた時は、
ほぼ100%リファラー取得してたから
プログラムが悪いだけなのかな?とも思いますがどうなんでしょう。
apacheとかphpの設定がおかしいと言う可能性もあるのでしょうか?
>>374 100%取得してたのと同じサイト?ブックマークじゃねーの?
376 :
374:04/01/15 14:42 ID:???
別のサイトです。サーバも別。
すごいカウンターだと、ブックマークの場合はブックマークと表示されていました。
そういえば、自作カウンターでブックマークのリファラーを一度も見たことが無い・・・
もしかしてブックマークを判定するには別の処理が必要なのでしょうか。
(単にブックマークされていないだけかもしれませんが)
>>374 お気に入りからのリピーターが7,8割ってことにしとけ。
>>374 取り合えず「すごいカウンター」ってのはどこ?
380 :
374:04/01/15 14:54 ID:???
>>376 ブックマークからはリファラーつかないよ。
そんだけお気に入りに登録されてるんだろ。よかったな。
382 :
374:04/01/15 15:25 ID:???
まじですか。
ブックマークを判定する方法は無いのですか?
リファラーを取得出来ない場合もあるらしいので、
取得出来てないのかブックマークなのかを判定したいのです。
自分で自分のページにアクセスして確認しようとは考えないの?
>>374 作り中身は見られないけれど「独自のhttpdを使い」としてるところから、
Apacheの環境変数以外から取れる生パケットのデータも解析に利用してるんじゃないかな。
環境変数内での解析でもHTTP_REFERERが取れない場合は、同じサーバ内での遷移においては、
IPアドレスから類推するとか。これと同じことをするならApacheのaccess.logを使って
精度を高めるようにしないと駄目。
>「業界初都道府県のアクセス解析機能も付いています」
これ面白いね。IPアドレスより国別というのはあるけど、
国内のpppのポイントをデータ化してるんだろうね。
#今のご時世(接続形態)でどこまで使えるかは疑問だけど
>>384 >>384 > Apacheの環境変数以外から取れる生パケットのデータ
そんなんでrefererの違いがあったら怖いっちゅーねん(w
JavaScriptでreferrerを拾う方法もあるなぁ。
> 国内のpppのポイントをデータ化
結構いい値段で売ってるのを見かけた。
データがナマモノだし、ビミョー。
388 :
384:04/01/15 20:01 ID:???
スマソ、判りにくい書き方だったな。言いたいのは
(HTTPによって取れる)環境変数以外に、(もっと下位のTCPの)生パケット
のデータを取り込み解析するような仕組みを設けている可能性もあるつうこと。
IPアドレスだけじゃ個々を区別するには不足だから。
今のアナライザって如何に個々を特定し、特定した個に着目した
データをどれだけ意味のある情報にかえるかが焦点の製品かなと思う。
>>388 refererじゃなくて個別識別する時の話なのかな?
TCP/IPのパケットをどう解析してもせいぜい分かるのはOSの種類ぐらいじゃないかな?
とりあえずreferrerなんてどうにでもなる
ノートンとかな
とりあえず
>>384は板違いw
391 :
nobodyさん:04/01/16 00:13 ID:h1bvls8w
>>362 cryptする時$idnum * $idnumでオーバーフローしてるんじゃ?
>>362 そもそも070xxxxxxxxxxx_mb.ezweb.ne.jpだから
0, 14だと最初の0と_も含まれるぞ?
でも_もcryptできたよな…
393 :
53:04/01/16 01:07 ID:???
おかげ様でGDのインストールは成功しました。
そして、pngやjpegなどを出力できるようになったのですが、日本語を表示させようとすると文字化けを起こします。
一応、文字コードをSJIS、EUC-JP、UTF-8にしてimagettftext関数に入れたり、ファイルの文字コードを前述の
3通りにしたりして試してみましたが、全て化けてしまいました。
何か助言など頂けませんでしょうか?
ちなみに環境は
>>55 がベースでFreeTypeのヴァージョンが2.1.0です。
なお、日本語フォントとして扱おうとしたものはRedHat9標準でついてくる
/usr/share/fonts/ja/TrueType/kochi-gothic.ttf
/usr/share/fonts/ja/TrueType/kochi-mincho.ttf
の2種になります。
394 :
53:04/01/16 01:10 ID:???
忘れてた・・・
>>57 で出ていた問題ですが、FreeType2.1.5からヘッダファイル取得の扱いが変わり、
gd.cなどのソースで今までの#include <ヘッダファイル.h>では無く、#include マクロなどで
ヘッダファイルを指定しなければならなくなった為に発生したエラーでした。
>>53 全ての文字が文字化け?
それとも特定の文字が文字化けなんですか?
396 :
53:04/01/16 09:18 ID:???
全てですね。
・・・・
となります。
文字コード変えた時の違いは・・・の長さが変わるくらいです。
397 :
nobodyさん:04/01/16 11:40 ID:eZLRxLfp
アンケートフォームを作っています。
inputタグにはradioとcheckboxを使っています。
この情報を受けるPHPプログラムの書き方が分かりません。
下記の様に書くと、チェックされていない項目があるとエラーになりますし、
checkboxにチェックがされていようがいまいが、$valueの値には加算されません。
どんな風に書けば上手く動作するでしょうか?
switch($_POST[$qq]){
case '1':
$value = $value + 1;
break;
case '2':
$value = $value + 2;
break;
case '':
foreach($_POST[$qq] as $tmp){
$value = $value + $tmp;
}
break;
}
>397
何をしたいのかさっぱり分からん。<form act...>の方をうpしる。
399 :
397:04/01/16 12:23 ID:???
>>398 下記のような感じで、radioとcheckboxが混在しています。
宜しくお願いします。
<form action="fdevi_mini.php" method="POST">
<b><font size=4>1:次の中から当てはまるものを選べ。
</font></b><br>
<table border=0><tr>
<tr><td><input type=checkbox name=q1[] value="1">結婚している</td></tr>
<tr><td><input type=checkbox name=q1[] value="2">年収500万以上</td></tr>
</table>
<br><br>
<b><font size=4>2:次の中から当てはまるものを一つ選べ。</font></b><br>
<table border=0><tr>
<td><input type=radio name=q2 value="1">学生だ</td>
<td><input type=radio name=q2 value="2">社会人だ</td>
</tr></table>
<br><br>
<input type="hidden" NAME="mode" VALUE="result">
<input type=submit value=" 送信 " onmouseover="this.style.backgroundColor='#E0F0F0';" onmouseout="this.style.backgroundColor='#FFFFFF';">
<input type=reset value="取消">
</form>
>>53 GDはPHP付属の使ってるよな?
PHP組み込みのGDが日本語対応になってからPHP付属のGD使わないと
逆に日本語が文字化けするようになった。
./configure 時に--with-gd --enable-gd-jis-convを試してみてくれ。
うちはこれで日本語の文字化けが解消された。
ちなみにTurboだとT1lib以外は全てRPMで用意できるので楽だ。
>399
name="qq"($_POST['qq'])が見当たらない。どうすればいいんだ・・。
あと、q1を配列に受けると処理が面倒だと思われ。
in_arrayでValueを探すにしても、[0]と[1]両方検証するにしても。
q1_1とq1_2でいいかと。
402 :
397:04/01/16 13:06 ID:???
>>401 $_POST[$qq]の$qqには「q1」「q2」などの文字列が入っています。
上記では省略してしまいました。ごめんなさい。
まだPHPもHTMLも勉強始めたばかりなので、よく分かりませんが、
なんとかなりそうです。
2次元配列じゃなく1次元で$_POSTを扱うようにすれば良いんですね。
ありがとうございました。
403 :
nobodyさん:04/01/16 13:27 ID:F4uIAn6H
文字列の置換で質問です。
文字コードEUCを使っていますが、全角スペースを半角スペースに置換する
場合に問題が出ました。マルチバイト文字関数を使えない環境です。
問題の部分は分かっているのですが、対処法が分かりません。
「ぁ」の文字コードが「A4A1」。「ー」の文字コードが「A1BC」。
全角スペースの文字コードが「A1A1」。
文字と文字の間で置換が行われているので文字化けしてしまします。
ソースは以下のとおりです
$moji = 'ふぁーすと';
$patterns[0] = "/ /";
$patterns[1] = "/\s+/";
$replacements[0] = " ";
$replacements[1] = " ";
$henkan = preg_replace($patterns,$replacements,$moji);
echo $henkan;
よろしくお願いします。
mbつかえる環境に移行
405 :
nobodyさん:04/01/16 14:05 ID:iMT6iUFn
>397
switch($_POST[$qq])だと
$_POST['q1']はarrayを返して、どの条件にもマッチしてないと思われ。
>>403 そのものずばりではないが,>29〜のやりとりを参考に汁。
1.文字列を1バイト毎に分割する
2.1バイト目を見て文字コードの範囲からその文字が1バイトか2バイトかを判断する。
3.1バイトならスルー
4.2バイトならもう1バイト加えて文字コードを取得する
5.置換したい文字かどうか比較する→trueなら置換
てな手順で10行くらいで書けるよ。
407 :
397:04/01/16 17:23 ID:???
>>405 レスどうも。
どの条件にもマッチしてないので
default:
を通ると思って、最初はそう書いていたのですが、どうも空白の方を
通っているみたいなんです。
でも空白の部分に書くとarrayじゃないのも通るので、エラーになります。
教えて君で申し訳ないです。
クッキーに保存したくない文字をいくつか指定して、保存させない事って出来ます??
if (get_magic_quotes_gpc()) $cookie = stripslashes($cookie);
list($ck_a,$ck_b) = explode("<>", $cookie);
↓『$ck_1』に保存させたくない文字↓
1:xxx
2:www
-------------------------------------------
$ckset = implode("<>", array($a,$b));
setcookie("cookie", $ckset,time()+30*24*3600);
410 :
409:04/01/16 18:53 ID:EFgyC4uM
『$ck_1』→『$ck_a』の間違いです
412 :
409:04/01/16 20:57 ID:???
できました。
解決済み。
413 :
nobodyさん:04/01/16 22:03 ID:cGnjtuPB
えと、自分で作ったPHP環境なんですが、POSTで「\」を入力すると、$_POSTの取得結果が
(勝手にエスケープシーケンスくっつけて?)「\\」になってしまいます。
鯖に上げるとそんなことはないので私の設定が悪いと思うのですが、一体ドコを調べれば
いいのかも解りません。ヒントだけでもいいので教えてください。
OSはLinuxでweb鯖はapache、PHPのバージョンは4.3.4、日本語の表示の為に、このスレの上を見て.htaccessに
<IfModule mod_php4.c>
php_value include_path ".:/usr/local/lib/php:/usr/share/pear"
php_value mbstring.language "Japanese"
php_value mbstring.detect_order "auto"
php_flag mbstring.encoding_translation "On"
php_value mbstring.func_overload 4
php_value mbstring.http_input "auto"
php_value mbstring.http_output "SJIS"
php_value mbstring.internal_encoding "EUC-JP"
</IfModule>
と書いてまつ。ソースの中には
mb_http_output('SJIS');
ob_start('mb_output_handler');
と、これもこのスレの上のほうを見て書きました。よろしくお願いします
414 :
430:04/01/16 22:13 ID:F4uIAn6H
>>406 レスどうもです。
1文字づつチェックしていったらできました!!
>>408 その正規表現でもできました。
正規表現が難しい!
>>413 PHP user-MLに投げるとワラワラと回答者or罵倒者が現れるほどFAQ。
MLの過去ログ探して見れ。他にも最初につまずきそうな話題もついでに見つかる筈だから。
Linux上でPHPでメール送信を行うものを作ることになったんですけど、
Windows環境のようにプロバイダのSMTPサーバーを使うことってできないんでしょうか。
417 :
413:04/01/16 23:55 ID:cGnjtuPB
>>415 検索キーワードのヒントぷりーず。
「\」では検索できません(T_T)
418 :
nobodyさん:04/01/17 00:08 ID:p5pEzjWV
各サイトや本などを見るとPHPをインストールするときに
アパッチも同時にインストールするとありますが
PHPはアパッチがなければ動かないのでしょうか?
>>416 Windows環境の様ではないが、ISPのアドレスでISPのSMTP鯖に送ることは可能。
421 :
nobodyさん:04/01/17 00:30 ID:AO6H1biW
422 :
416:04/01/17 00:32 ID:???
>>419 sendmailとかMTAの設定しだいってことですか?
424 :
nobodyさん:04/01/17 00:39 ID:p5pEzjWV
eclipseでPHPを使うにはどうすればいいのでしょうか?
>>424 自分でプラグインを書くか、他人が書いたのを利用。
>>422 そそ、ローカルMTAのリレー先をISPのSMTP鯖にすればいい。
あと、paerのMailはSMTPを喋ることもできたはず。
428 :
416:04/01/17 01:01 ID:???
>>427 dクスです。
やり方さっぱりワケワカメですがグーグル君と二人でがんばってみます。
>>424 eclipseをダウソする
プラグイン(ry
430 :
413:04/01/17 10:08 ID:hPi2o4Ng
>>420 >>421 解決しました。「magic_quotes_gpc off」をphp.iniか.htaccessに書けばいいんですね。
ありがとうございました。
431 :
416:04/01/17 13:30 ID:???
qmail使ってメール送信できました。
どうもありがとうございました。
432 :
275:04/01/17 15:58 ID:???
>275 自己レス
以下の設定で、期待通りの表示ができました
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = On
mbstring.detect_order = none
mbstring.substitute_character = none
>>430 過去ログは繰り返される質問に対してのスレッドが
罵倒やマニュアルを見ろ、という煽りだけで埋め尽くされ
過去ログとして機能不全に陥りつつある。
ttp://jp2.php.net/faq.php も実際に良くある質問と解離してるし。
日本語系、global register, magic_quotes など、
現実によくある A に対する Q をまとめた FAQ 集が必要な時期か。
436 :
nobodyさん:04/01/17 17:13 ID:AWEy0ik1
正規表現を用いて
$iro = "#88aa00";
を
$redが88、$greenがaa、$blueが00の値になるように分割するつもりで
list ($red, $green, $blue) = split("/\#(\w{2})/", "$iro" , 3);
のように書いたのですが、
$redに#88aa00、$greenと$blueは空になってしまい、うまくいきません。
どのようにしたら良いでしょうか?
>>435 「自分で調べる」を放棄した、もしくは「調べる=誰かに聞く」な輩には、FAQ集など(ry
>>436 $red=$iro[1].$iro[2];
$green=$iro[3].$iro[4];
$blue=$iro[5].$iro[6];
439 :
435:04/01/17 17:38 ID:???
>>437 「調べない」「誰かにすぐ聞く」人に対して
教えてあげるか、無視するか、FAQ なり過去ログの URL を指示する人だけがいればいいのですが
( そうすることで過去ログを調べれば回答を見つけることができるので )、
現状は「調べろ」だけの「過去ログのノイズ」な投稿が多くて困ってるんです。
FAQってなんて読むの?
俺はファッキューって読んでるYO!
ふぁッく!
>>440 繰り返される質問に対して答えるのにいらついたハッカー達が
Fuck you という思い込めて作った言葉だからそれでいいんだよ。
それでも答えとして FAQ を用意するのがハッカー、
「調べろ」と煽るだけが厨房。
>>436 ちょっと違うけど…
preg_match("/#(..)(..)(..)/", $iro, $match);
print_r($match);
>>436 $iro が RGB 値で来ることは保障されているの?
black や red じゃないかのチェックも必要かもね。老婆心ながら。
445 :
nobodyさん:04/01/17 18:13 ID:AWEy0ik1
>>444 $iro が RGB 値で来ることは保障されてます。
うまいやりかたは無いですかね・・・まだ出来てません(凹
普通にsubstr(0,2)とかじゃだめなの?
>>446 本当は、その手は使いたく無かったんですけどねぇ
他にやりかたがおもいつかないのでそれで行きます
>>448 知らなかったって素直に言えない奴だ。やさしくしてやれ。
>447
preg_matchするよりsubstrの方が軽いでしょ?
451 :
448:04/01/17 19:22 ID:???
>>450 漏れもそこが気になって聞いてみた。どうも Perl から流れてきた香具師が多いのか、
文字列解析するというと、やれ preg_match やら split やら。
まぁ今日びそれぐらいは微々たる差なんだろうけどな。
確認でつが、
$str[0].$str[1]>substr($str,0,2)>preg_match('/(..)/', $str)
ということでよろしいか。
>>436 list($red, $green, $blue) = array_values(unpack('@1/A2r/A2g/A2b', $iro));
長いか。
ハッシュで扱うなら、array_valuesは省略できるけど。
453 :
53:04/01/17 20:47 ID:???
>>400 助言ありがとうございます。
> ./configure 時に--with-gd --enable-gd-jis-convを試してみてくれ。
--enable-gd-jis-convはデフォルトで付けてますので、DIR指定無しで試してみましたがやはり化けました。
今度は[]になりました。
Fontの所為なのでしょうか・・・
文字化け難しい
JavaScriptでリファラー取得してphpに送ってるんですが、
「&」が含まれてるとそれ以降は消えてしまうんですが
どうすればいいでしょう?
>>455 GETかPOSTのどちらで送信してるか書いてないですが、症状からすると
GETでurlエンコードしないまま送ってませんか?
GETの場合は(JavaScript側で)urlエンコードしてから送信する必要があります。
Perlでは、
$str = "A<>1<>B<>2<>C<>3<>";
%HASH = split(/<>/, $str);
で array("A"=>"1","B"=>"2","C"=>"3")の連想配列が作れましたが、
PHPで同じ処理をしたいときはどうすればよいでしょうか?
explode
>>458 $arr = array();
$str = "A<>1<>B<>2<>C<>3<>";
print_r($arr = explode("<>", $str));
だと普通に要素6個のの配列になってしまいます。
いや天才かもしれない。
462 :
nobodyさん:04/01/18 13:32 ID:t5yCf8yS
PHPでApacheのログを解析するアプリケーションって無いですか?
どのページへ何回リクエストがあったか、
日別のアクセス数やリファラー等も集計する様な。
>>462 素人でもできるんじゃ?
1行ずつ読み取って、あとはカウントするくらいでいいとおもうが・・
>>463 検索文字列の文字化け解消とか、
自分でやろうとするとかなり大変そうで・・・。
466 :
nobodyさん:04/01/18 15:49 ID:stryZ884
ここはレベル低下しすぎてML以下ですね
467 :
nobodyさん:04/01/18 17:14 ID:Am44qoXC
↓この関数でURLエンコードできますが、
rawurlencode("$value")
この逆で、デコードする関数はありますか?
rawurldecode
469 :
nobodyさん:04/01/18 19:40 ID:iVX77S5B
PHPでテキストファイルを一行ずつ読み込むのに便利な関数(方法)は
ないでしょうか?
例えば、Perl の
open(FILE, "data.txt"); while($line = <FILE>){ /* 処理 */ }
みたいにできればいいのですが。。。
fgets
>>470 調べてみます。ありがとうございました。
>469
それは一行ずつ処理してるだけで、一行ずつ読んでるわけじゃないが。
どーでもいいでっすよ
>>466 >>1 上級者用や雑談スレを立てたくなった場合は後から適宜立ててください。
475 :
nobodyさん:04/01/18 22:40 ID:h7CeQIAG
一身上の都合によりPHPを4.3.4⇒4.3.3しなければならなくなり、現在コンパイルしています。
configure: error: not found. Please reinstall the expat distribution.
というエラーが出たのですが、find / -name *libexpat*してみると
/usr/lib/libexpat.so.0
/usr/lib/libexpat.so.0.0.1
と出ます。念のためexpat-1.95.6-84.i586.rpmをインストールしてみたのですが
結果は変わりません。もちろんオプションには
--with-expat-dir=/usr/lib \
としてあります。いったい何がいけないのでしょうか?(^^;
>>475 --with-expat-dir=/usr
で逝ってミソ。
477 :
475:04/01/19 00:33 ID:ZHyf/Zil
>>476 でもダメでした。メッセージも変わりません(´・ω・`)ショボーン
サブローは入ってる?
479 :
475:04/01/19 01:33 ID:ZHyf/Zil
>>478 ・・・サブローってなんですか?(^^;
480 :
476:04/01/19 01:42 ID:???
>>477 expat-devel が必要か?。
つか、
>>475で
/usr/lib/libexpat.a
/usr/lib/libexpat.so
がないじゃん。
481 :
475:04/01/19 02:08 ID:???
>>480 えと、1.95.6-84のdevelがなかったので、
expat-1.95.7-1.i686.rpm
expat-devel-1.95.7-1.i686.rpm
を入れなおしたらイケました。ありがとうございました(T_T)
482 :
nobodyさん:04/01/19 06:37 ID:UDX5/wiS
うpろだで使用容量を表示したいので以下のようにしてみました。
アップ用ディレクトリを100KB程度使ってても0KBと表示されてるのは何故でしょうか?
$updir = "./up/";//アップ用ディレクトリ
$usesize = (disk_total_space($updir)); //アップディレクトリ使用サイズ
function UseSpace($uzesize){ //使用容量のつもり
if($uzesize == 0) $allsize = "";
else if($uzesize <= 1024) $allsize = $usesize."B";
else $allsize = sprintf ("%dkB",($usesize/1024));
return $allsize;
}
$usize = UseSpace($uzesize);
print($usize);
>482
視力検査かよ
>>482 disk_total_spaceはディレクトリにあるファイルのサイズを求める物ではありません。
そのディレクトリでつかえるディスク容量なのでパーティション区切ったりquota使ってなければ
使っているハードディスクの容量にほぼ同じになるだけ。と思う。
486 :
nobodyさん:04/01/19 11:08 ID:vuG+tJeS
>>482 opendirしてreaddirしてfilesizeを足していけ。
>>482 `du -sk up`
でオシマイじゃないの?
例えば、
$j = strlen($k);
for ($i = 1; $i < $j; $i++) {
こう書くのと、
for ($i = 1; $i < strlen($k); $i++) {
こう書くのとでは、上の方が少し負荷が少ないんだよね。
下だと毎回関数を使うから遅いんだよね。
負荷を気にするならスクリプト言語は使うな
でも、無料鯖だとPerlやPHPくらいしか使えないよ。
それに、共用鯖ならなるべく他人に迷惑をかけないようにするのは常識でしょ。
共用鯖なら鯖缶が高負荷プロセスを殺すようにするのが常識。
俺は優しいから30秒で有無を言わさず殺すようにしてある。DBなんて簡単に壊れるよ。
結局、好きな書き方をしろってこと?
いつもは下の書き方をしているから、その書き方にします。
ありがとうございました。
だったら書くなと。
497 :
:04/01/20 00:25 ID:uD3M8UId
質問でっす。
一般的に「利用経路が正しくありません」のエラーって、
主な原因何でしょうか?
>>497 if ($_SERVER[HTTP_REFERER]=="") echo "利用経路が正しくありません";
とか
if ($_SERVER[REQUEST_METHOD]=="GET") echo "利用経路が正しくありません";
とか何でもありじゃ
一般的にはどうか知らんがアホは;(){}を忘れる。
500 :
:04/01/20 01:53 ID:???
>498-499
501 :
au:04/01/20 12:56 ID:ssIpW6Qq
$FilePath
に
./data/20040119233225.jpg
が入っている場合、
20040119233225.jpg
だけを抜き出して名前とする場合は、
どう書けばいいのでしょうか?
$FilePathを使って書きたいのですが…。
502 :
nobodyさん:04/01/20 13:07 ID:XuCpuzLE
substr($FilePath, 7)
>>501 別解
basename($FilePath)
505 :
MON:04/01/20 14:14 ID:???
PHPでログインID PASS制のページを作りたいのですが
どうしたらよいでしょう。CGIスレのほうで聞いたほうがいいですか?
>>505 サンプルが腐るほどあるから探して読む。
質問は最低実装してからにしろ。
508 :
MON:04/01/20 14:25 ID:???
探しましたが本当に無かったです。
IDPASS制のが・・・。
放置で。
510 :
MON:04/01/20 14:30 ID:???
お願いします!お願いします!
>>505 PHP使わなくてもApacheならBASIC認証で
513 :
MON:04/01/20 14:34 ID:???
使いたくないのではなくてお金がないんです!
学費に押されて家で勉強してるのですがこればかりはどうしようもないんです。
お願いします教えてください!
>>513 ぼく、年(とし)幾(いく)つ?
それぐらい自力(じりき)で調(しら)べられないようではあきらめた方(ほう)がよいよ。
マジで。
>>513 アホか
金がねーなら本屋で立ち読みして覚えてこい
他人様をアテにしすぎなんだよ
516 :
MON:04/01/20 14:39 ID:???
たいていの本にはブックカバーが付いているんです。
お願いします!
ソースだけもらってそのまま動かそうなんて事考えてるんだろ
自分で勉強しな
>>516 付いてないところの方が多いだろ
何店も回って探してこいや
自分で覚える気がない奴にこれ以上の事は教えたくないな
520 :
MON:04/01/20 14:42 ID:???
>>518 英語が読めません!!
助けて下さい!お願いします!
521 :
MON:04/01/20 14:43 ID:???
英語は苦手で。。。。どうも日本人は英語に弱いですよね。
できれば日本のサイトなどありませんか?
522 :
MON:04/01/20 14:44 ID:kFNMZlcZ
IDだしますね。
MONはマルチなのでスルーして。
web制作板の初心者スレにもいた。
524 :
nobodyさん:04/01/20 14:45 ID:kFNMZlcZ
やっぱり初心者にも教えてやるべきだ、だれかだしてやれよ。
525 :
nobodyさん:04/01/20 14:46 ID:kFNMZlcZ
>>524 ありがとうございます!誰かお願いします!
526 :
MON:04/01/20 14:46 ID:kFNMZlcZ
あ ↑のは僕です
さて、放置するか
529 :
MON:04/01/20 14:48 ID:kFNMZlcZ
おねがいします!なんでもしますから!
530 :
MON:04/01/20 14:50 ID:kFNMZlcZ
どうして僕だけいつもいつも!
>>529 じゃあ、住所、氏名、連絡先を書け。
それから顔とアナルうp。
>>520 英語を読みたくないなら日本語の書籍を買うしかないなぁ。
hotscriptは英語のサイトだけど,キーワードだけでも結構探せるもんよ。
インターネットを使える環境があるんだから,ネット上にある翻訳サービスや
辞書を使って読んだらええやん。金が無いなら汗かくしか無いんとちゃうの?
つーか俺ら釣られ杉?
534 :
MON:04/01/20 14:55 ID:kFNMZlcZ
531番は変態です、相手にしないように。
532番さんそういわずにがんばっておねがいします。一生感謝しますから。
> どうして僕だけいつもいつも!
↑
こういう事を言う奴は
自分にその原因がある事に気付いていない
>>534 お前の相手してるのが楽しいんでもうちょっと遊んでやるよ
537 :
MON:04/01/20 14:57 ID:kFNMZlcZ
釣りとかじゃないです!もう
538 :
MON:04/01/20 14:59 ID:kFNMZlcZ
じゃあ交換条件にしてくれませんか。
可能な限りのことはしますから。ね?
539 :
531:04/01/20 15:01 ID:???
>>538 じゃ、アナルはいいから住所、氏名、顔だけは晒せ。
540 :
MON:04/01/20 15:02 ID:kFNMZlcZ
北海道野幌東の山村信二 顔は勘弁してください!
542 :
531:04/01/20 15:03 ID:???
543 :
紙:04/01/20 15:05 ID:???
いやまじで,www.hotscript.comで
PHP→Scripts and Programs→User Authentication
に104個もスクリプトが登録されてる。
好きなん使え。
544 :
MON:04/01/20 15:05 ID:kFNMZlcZ
絶対に教えてくれるんですね!!!!??
スレがすげー伸びてると思ったら
コントやってやがる。
547 :
MON:04/01/20 15:08 ID:kFNMZlcZ
田舎なんだからしょうがないじゃないですか!
本屋もすくないんですよ。
548 :
nobodyさん:04/01/20 15:08 ID:B0IoOmCQ
質問です
PHPで外部テキストファイル(CSVファイル)の
文字コードを一括変換することは可能でしょうか?
可能でしたらやり方を教えてください。
よろしくお願いします
549 :
MON:04/01/20 15:09 ID:kFNMZlcZ
546さん
酷い方ですね。実生活であってたら許しませんよ
550 :
紙:04/01/20 15:11 ID:???
はいはい。MON関係は解決済みなんで
〜〜〜〜〜終〜〜〜〜〜了〜〜〜〜〜
フィッシングなんだろうけど。
>>513 大学なら既に付属の図書館に本があるか、リクエストすると
「自分以外だれも読まないんじゃないか」ってくらいの本でも、
結構柔軟に入れてくれるもんだけどな。
高校だとそういうシステムがないかも知れないが、そうでなくても
自分が目的とする勉強をサポートできないような学校に
学費を払ってるのはどうかと(自分と学校の「目的」のミスマッチ)
552 :
MON:04/01/20 15:12 ID:kFNMZlcZ
まだ終わってねえええええええええええええええええええswだfgcうぇrgyvt
wれhyべいぇ55jb6rじゅんr6う
553 :
MON:04/01/20 15:13 ID:kFNMZlcZ
社会のくそがああああああああああああああああああうぇふぇwqr
554 :
MON:04/01/20 15:14 ID:kFNMZlcZ
なんでおれだけ何打よ大!!!!!!!!!!!!!わえfくぇ
>>552 お前ん家の近くに北海道情報大学があるじゃん
そこの図書館で調べてくればぁ?
556 :
MON:04/01/20 15:15 ID:kFNMZlcZ
交通費ないんです!
>>549 まぁ、会うことはないだろうと思うが。
東京と北海道じゃな。
558 :
MON:04/01/20 15:16 ID:kFNMZlcZ
スクリプトはHTMLにコピペすればいいんですかい。
>>556 少なくとも、ここで「くそがあああ」とか打ってるより
検索エンジンで根気よく調べた方が、早道だと思うんだけどなぁ。
560 :
MON:04/01/20 15:16 ID:kFNMZlcZ
557さん
まあネットであったのも縁ですね(笑)
>>558 !?!?!?!?!?!?!?!?!?!?!?!?
562 :
MON:04/01/20 15:18 ID:kFNMZlcZ
563 :
MON:04/01/20 15:19 ID:kFNMZlcZ
>>561 そういうものじゃないのですか。
ふつうはどうしたらよいのでしょう。
スクリプトは。
564 :
紙:04/01/20 15:20 ID:???
>>562 トウガラシの絵を見て判断汁。
じゃあな。俺は仕事に戻る。
>>563 ここは幼稚園ですか?
なんでお前にパンツの履き方から教えなきゃいけないの?
566 :
MON:04/01/20 15:22 ID:kFNMZlcZ
なるほど。これがひょうかなわけだ・ふむふむ
ログイン制らしいのでやってみたら奇跡的にできた!!!!!っしゃ
>>556 歩いていける距離じゃねーかw
ま、住所氏名は騙りだろうが
568 :
MON:04/01/20 15:23 ID:kFNMZlcZ
パンツははいてます。
じゃ解決ってことで終了な。良かったな>MON
570 :
MON:04/01/20 15:26 ID:kFNMZlcZ
どうもです、また夜来て聞きます。
楽しかったよ
祭ですか?
a.phpでUAを取得、
$ua = "IE";
ってやって
Include("b.php"):
b.phpには
if($ua == "IE"){
$ms = "逝ってよし";
}
ってしてるんだがa.phpでは
$msには何も入らない…
globalグローバル宣言やらいろいろ試したんだがうまくいかない…
だれかお願いします。
解決というか勘違いしてました。
スンマソン
575 :
nobodyさん:04/01/20 20:30 ID:L/5Hnxdr
文字列"abc,def,ghi,"の最後のカンマを取り除くにはどうしたらいいのでしょうか?
>575
アルゴリズムの問題かな
if 文字列中に文字が最後に現れる場所を取得する関数(対象の文字列,',')==文字列の長さを取得する関数(対象の文字列) {
対象の文字列 = 文字列の一部分を返す関数(対象の文字列,1,文字列の長さを取得する関数(対象の文字列)-1)
}
間違ってたらスマソ
文字列の一部分を返す関数の2番目は0ですね (´・ω・`)ショボーン
>>575 $str = "abc,def,ghi,";
$str = rtrim($str, ",");
>>576 PHPにはマニアックな関数がいっぱいあるのよ
580 :
576:04/01/20 22:38 ID:???
>578
trimって空白以外も削除出来たとは!
マニュアル眺めていると驚きの使い方やら機能が出てくるよね、 PHP の関数って。
>>581 マニュアルに載ってない機能もあるし、英語版のマニュアルにあって
日本語版のマニュアルには載っていない機能もある。
発展途上の言語の宿命ですな。
ネタのせいできれいにスルーされてるな
>548
できる
mb_convert_encoding でも system で nkf 呼ぶという原始的な方法でも
584 :
548:04/01/21 11:50 ID:6x6ChV0L
>>583 レスありがとうございます!
mb_convert_encodingだと対象はstrになりますよね?
現在、freadでCSVファイル全体を読み込んで
mb_convert_encodingで変換後、保存する方法を
取ってるんですが他にもっと簡単な方法はありますかね?
ローカルではWin版PHPでデバッグしてるので
system関係の関数はできれば使いたくないです。
>>584 藻前様が想定するもっと簡単な方法とは例えばどんな?
その方法よりさらに簡単な方法ってのを漏れは思いつかんのだが。
>>584 file_get_contents()で読み込んだら一回で済むんとちゃいますか?
587 :
548:04/01/21 14:08 ID:???
>>585 ファイル自体を対象にしたmb_convert_encoding
みたいな関数があればいいなーとか思ってたんですが
やっぱりないですよねー ありがとうございました
>>586 それも調べてはみたんですが、文字コード変更後ファイルを
保存する際に結局fopenやらfcloseやらを呼び出さないと
だめそうなので結局あまり変わらないかもしれません
CSVをはじめからお好みの文字コードで作っておくわけにはいかんの?
>>587 って、なんじゃそりゃ。
別にCSVファイルを処理や出力することなくただ単に文字コードを変換したいだけ?
いくら奇特なPHP関数群 :) でもそりゃないだろ。
また釣りか・・・
先日ホームページサーバーを借りました
PHPが使用可能なので以下のものをHPに付けたいのですが
設定や、おすすめPHPなどアドバイスしていただける方いませんか。
・IDPASS制のHP
・メール自動返信システム(IDとPASSの発行の際。)
を検討しています。
尚、メール自動返信システムはやはり常時接続でなければ
実現不可能でしょうか。
何も解らないのですが手引きしていただける方お願いいたします。
>>591 MONキタ━━━━(゚∀゚)━━━━ッ!!
unset(MON);
もう!なんでばれんのさ!
頼む!おしえて!
>>591 >尚、メール自動返信システムはやはり常時接続でなければ
>実現不可能でしょうか。
そんなことはない。メールなんてちょっと前までは
uucpで日に数回バケツリレーしてたもんだ。それから根本は変わってない。
自分でメールサーバを設けなくても、外のメール箱を自動で確認して応答する
メールクライアントをPHPで実装すれば良い。「何も解らない」のなら
そんなスクリプトを
>>518 で探して鯉。
あと道内なら「ワリの良い」バイトあてがってやろか?
未成年なら寧ろ都合が良い。
597 :
紙:04/01/21 23:47 ID:???
>>591 >IDPASS制のHP
ここは解決したはずだろ。
もう遊んでやらん。とりあえず一人でできるところまでやってみろ。
メール送信だけならmail関数使って一行で実装完了。
ちなみにMONが言ってる自動返信ってただ確認メール送信するだけでしょ。
わざわざメールクライアントなんか作る必要ないし。
> 先日ホームページサーバーを借りました
> (略)
> 尚、メール自動返信システムはやはり常時接続でなければ
> 実現不可能でしょうか
MONのおかげでサンプル集をたくさん知ることができた。
ありがとうMON。ありがとうみんな。
>>MON
借りたサーバーはドコ?礼と行ってはなんだけど
サーバーの詳細がわかれば教えやすい
603 :
MON:04/01/22 06:31 ID:???
みなさん迷惑かけてホンマすみません。
604 :
nobodyさん:04/01/22 09:57 ID:EqTfsdjC
PHPでとあるCGIのラッパーを組もうと思っています。
PHPからsystem関数でCGIを呼んでもQUERY_STRINGなど環境変数が渡されていないようです。
呼び出し側のPHPと呼ばれたCGIで環境変数を共用するにはどうしたらよいのでしょうか?
PHP4.3.4です。
605 :
548:04/01/22 11:33 ID:???
>>588 まあそれが一番なんですけどね。でも無知な
ユーザーにその作業をさせるのが大変なので
>>589 いや、そのCSVをDBにインポートするんです
それに際して文字コードを変更する必要あったので
>>605 データベースに入れるときに変換すればいい
>>605 前にも居たが、
「無知なユーザー」とか「無知な素人」とか、
ここで自ら「無知」をさらけ出しといて、
人のことよく「無知」言えるな。
>>604 system("set QUERY_STRING=〜; 〜.cgi")でエエんでないの?
609 :
nobodyさん:04/01/22 16:35 ID:UevZM5s3
ここは言葉尻を捉えて騒ぎたがる馬鹿が多いな
610 :
◆zRMZeyPuLs :04/01/22 17:47 ID:AbHyOe1n
>>603 仕方ないので教えてあげます。
スクリプトの先頭に
$a = "認証";
for(;;) $a .= $a;
を追加しなさい。
>>610 ありがとうございます、貴方のような立派なヒトになります!
612 :
MON:04/01/22 21:40 ID:???
あ 上野は私です。
ログファイル保存型自前掲示板の自分用管理画面を作っていて
特定の書込を削除または"あぼーん"にしたいのですが・・・
--- case1.php
<?php
$file="log.txt";// log file
$lines=file($file);// read file (*1)
for($i=0;count($lines);$i++){
// 不適切な書込($lines[$n])のみを削除または"あぼーん"化処理(略)
}
$str=implode("\n",$lines);// make str
$fp=fopen($file,"w");
flock($fp,2);// lock file (*2)
set_file_buffer($fp,0);
fputs($fp,$str);
flock($fp,3); fclose($fp);
?>
---
(*1) と (*2) の間に新規書込があるとその新規書込が消えてしまいます。
(つづく)
614 :
613:04/01/22 22:48 ID:???
613 つづきです。
--- case2.php
<?php
$file="log.txt";// log file (*3)
$fp=fopen($file,"r+");
flock($fp,2);
set_file_buffer($fp,0);
while($line=fgets($fp)){
// 不適切な書込($line)のみを削除または"あぼーん"化処理(略)
$lines[]=$line;
}
$str=implode("\n",$lines);// make str (*4)
fputs($fp,$str);
flock($fp,3); fclose($fp);
?>
---
(*3) のファイル容量が (*4) $linesのバイト数より大きい場合ログにゴミが残ります。
ログファイル読込から書込までの適切な流れをご教授ください。
615 :
nobodyさん:04/01/23 01:40 ID:A0n21tKU
PHP3+Oracleのシステムなのですが、あるテーブルに対して、
updateを行った際に、実際に更新されたレコード件数を取得する
方法はありませんでしょうか?
例えば、50件updateし、内5件は該当するレコードがなかった場合、
updateが行われた件数45件を取得したいのです。
617 :
nobodyさん:04/01/23 02:44 ID:V7puvqz5
あるディレクトリ以下のhtmlファイル一覧を作りたいのですが、
以下のスクリプトでは、全てのhtml名を取得出来ません・・・
助けてください
$aa=filetree('./');
function filetree($s_dir) {
if ($handle = @opendir($s_dir)) {
$tree=array();
while (false !== ($file=readdir($handle))) {
if ($file != "." && $file !="..") {
$abs_file=$s_dir.$file;
if (is_file($abs_file) && (ereg("\.html",$file))) {
array_push($tree,$abs_file);
} else if (is_dir($abs_file)) {
$tree+=filetree($abs_file."/");
}
}
}
} else {
return false;
}
return $tree;
}
618 :
613:04/01/23 03:10 ID:???
>>617 $tree+=filetree($abs_file."/");
↓
$tree[]=filetree($abs_file."/");
619 :
618:04/01/23 03:13 ID:???
ごめんなさい。まちがえました。
汝を許す
>>614 fseek($fp,0);
ftruncate($fp,0);
fputs($fp,$str);
623 :
614:04/01/23 11:58 ID:???
>>622 確認いたしました。
ftruncate() 初めて見ました。もっと勉強せねば・・。
ありがとうございます。
624 :
617:04/01/23 23:08 ID:???
>>621 ありがとうございます
そのサイトのスクリプトで勉強したいと思います
他人のを丸写しじゃ、いつまでも上達しませんよね
list()でログファイル(5MB程度)を参照して検索などを作るとき、
fopen()
flock()
Fclose()
しなくてもログファイルの破損などは起こらないでしょうか?
書き込み中はロックしてますが、list()中はロックしないとします。
>>625 list()はファイルにタッチしないから関係ないよ。
問題は、list()で使う配列を「ファイルから読み込む」時。
>>626 define("LOGFILE","./log")
$log=file(LOGFILE)
ってな感じですが、問題ありますでしょうか?
ご教授ください。
listは
list($xx,$yy,$ss,$rr,$jj,$ee) = explode(",",$log)
って感じです。どうでしょうか?
クッキーを使ったセッションについてなんですが、
クッキーの期限をセッション限りにしている場合、
session_start()を使うと、最初の一回だけクッキーが送られ、
次のページからは、クッキーを読んでセッション変数をセットするだけで、
クッキーを送らないのが通常の動作だと思います。
しかし、最近使い始めたサーバでは、
毎回ブラウザにクッキーが送られてしまうのです。
これは止められないのでしょうか。
(セッションIDは正しく受け取れています。)
IEで、「クッキーを受けるたびにダイアログを表示」にして、
セッション限りのクッキーを複数回受け取ると、
そのページが読み込めなくなるもので。
php.iniは?
631 :
629:04/01/24 07:51 ID:???
phpinfo()で見た限り、
session関連の設定は、今までとまったく同じです。
cookieの$hostが古いサーバーのアドレスのままになってるとかじゃないよね?
633 :
629:04/01/24 15:50 ID:???
hostも大丈夫です。
セッション機能自体は働いていて、
「クッキーを常に受け入れる」にしていれば、
何の問題も起こらないのですが。
「クッキーを受けるたびにダイアログを表示」にしているのは、
ウェブ製作者ぐらいかもしれませんが。
>>631 まったく同じとかじゃなくて一応晒そうとか思わないのかよ
cookieに頼らないでいけるかやってみたり試せば?
635 :
629:04/01/24 21:40 ID:???
php.iniも覗いてみましたが、関係ありそうなところは同じでした。
ini_setでいろいろ設定変えてみてもだめです。
(新しいの方はレンタルサーバなので、php.iniが変えられないので)
正しく動くサーバーのphp.iniを、だめな方と取り替えてみても、
やはり正しく動きました。
外部のサイトにアクセスされることを考えると、
GETで渡すのは怖いです。
IEは、複数のウィンドウ開いていると、
たまにrefererを送り間違えますからね。
やはり自作でクッキー使ったセッション作るしかないのかな。
初めまして、失礼致します。
現在winXP+php+postgreSQLでphpの開発(とその勉強)をしているのですが、書籍、HPで調べてもどうしてもわからない箇所がありましたので、もしよろしければご指導お願い致します。
データベースに登録した人物データ(ID、名前、パスワード、所属等)を、ドロップダウンリストに表示するところまではできました(今回は名前をリストに表示しています)。
わからない部分というのはこの後なのですが、ドロップダウンリストに表示した値を選択し、ボタンを押して、SQL文を発行し、該当データ(ドロップダウンリストで選択した項目)を削除したいのですが、できないのです。
項目を選択し、ボタンを押してSQL文(DELETE)を発行しても、削除ができず・・・まずい部分はおそらく、”$code"(後述)に選択した項目の変数が上手く入っていないらしいのですが。
ちなみにソースは下記のようになっています。
DBへの接続は完了しています。
637 :
636:04/01/24 21:43 ID:???
テーブル名:regist
id | username | pass | competence
----------------------------------
id1 | name1 | pass1 | compe1
id2 | name2 | pass2 | compe2
id3 | name3 | pass3 | compe3
id4 | name4 | pass4 | compe4
$result = pg_query($db,"select * from regis");
$num = pg_num_rows($result);
echo "<HTML>"; echo "<HEAD>"; echo "<BODY>"; echo "<FORM METHOD='POST'>"; echo "<TABLE>"; echo "<TR><TD>メニュー<SELECT NAME=\"code\">";
for($i=0 ; $i<$num ; $i++) {
$a = pg_result($result,$i,1);
$b = pg_result($result,$i,0);
printf("<OPTION value = %s>%s</OPTION>",$b,$a);
$s = $value; }
echo"</SELECT></TD></TR></TABLE>";
echo"<input type='submit' NAME='value' value='削除します'>";
echo"</FORM>";
$sql_del = "DELETE FROM regist WHERE id = '$code'"; //←この$codeに選択された列のデータ(この場合はid)が入るはずなのですが、入りません。
$result_del = pg_query($db, $sql_del);
それでは、長文失礼致しました。
>>637 よく読まないで適当にカキコ。
<FORM>にactionの指定が無いが?
639 :
629:04/01/24 22:18 ID:???
register_globalsをONにしない限り、
$codeは自動的に設定されないのでは?
$code = $_POST["code"];
としたらどうでしょうか。
>638
設計上、自分自身を再呼び出ししていると思われ。
methodも書かないのもGETで引渡すことにしているためで、
register_globalもONにしているので、変数$codeに勝手に
値が入ってくるというのも見えないところでやっていると思われ。
とよく読まずにアオリっぽくカキコした俺が見落としてました。
methodはPOSTしていしてましたな。
>>637 $result = pg_query($db,"select * from regis");
のテーブル名は元のソースのtypoか?
optionの出力では問題ないような書き方だったが、
元からコピペしないと無用な回答のやり取りになるぞ。
644 :
636:04/01/24 22:48 ID:???
こんなに早くレスが・・・ありがとうございます!
>>637さん
この場合は自分自身へのデータの送信だと思うのですが、この場合もactionの指定は必要なのでしょうか・・・?
>>639さん
ありがとうございます、今やってみます!
>>643さん
仰られている通り、テーブル名は、元々"registration"というものでしたが
書き込みする際に長いテーブル名は見づらいかと思い、投稿の直前で短くしました(汗
ご指摘ありがとうございます、次から気をつけます。
645 :
636:04/01/24 23:04 ID:???
連続レス申し訳ありません。
646 :
636:04/01/24 23:05 ID:???
うあ、まだ書いてる途中に書き込みを(汗
647 :
636:04/01/24 23:06 ID:???
>>639さんありがとうございます!できました!
そして連レス本当に申し訳ありませんでした、しばらく頭冷えるまで回線切って外走ってきます・・・・
日本ユーザー会にあるドキュメントってアーガイブ置いてないよね?
ないよ
やっぱそうかー。巡回ソフト使うしかないよね。
二次配布OKなのかな?著作権に関する情報が見当たらない。。
preg_replace(pattern,replacement,limit)
で、pattern部での後方参照どうしたら良いのでしょうか?
ごめん、良く読んでなかった。
「日本PHPユーザ会」の「ドキュメント」(コンテンツ)ね。
それはアーカイブにはなってないし、再配布についても記述はなかったように思う。
>>651>>653>>654 サンクス。リファレンスマニュアル日本語訳のアーガイブって意味だったんで
最初の認識であってます。まぎらわしくてすいません。それでちゃんとアーガ
イブ存在してたんだね。
日本ユーザー会のところにも置いてくれればいいのに。負荷の問題でそれが難
しいならせめて説明だけでも。ここで独り言いっててもしょうがないんで直接
聞いてみます。
ところで複数のhtmlに分割されてる方のアーガイブを落としてみたんだけどタグ
が変。
<html
><head
みたいに閉じカッコが全部次の行なんだよね。linux と win 両方で展開して
みたんだけど同じ。ブラウザで表示すれば問題ないからいいといえばいいのかも
しれないけど。。
>>650 お前は、大きく見誤っている。
○アーカイブ
×アーガイブ
658 :
nobodyさん:04/01/25 13:05 ID:yXEFTMgG
例えば
$a = "test<>check<>php<>nobody<>";
とあって、これを
$b="test";
と
$c[0]="chech";
$c[1]="php";
$c[2]="nobody";
という配列に分割したいのですが、何かいい方法はあるでしょうか。
explodeとlistを使おうかと思ったのですが上手くいかなかったので…。
($b,@c) = split(/<>/,$a);
じゃ駄目なのか?
660 :
sage:04/01/25 13:22 ID:yXEFTMgG
それだとエラーになるのですが…?
parse error, unexpected ','
のような。。。
ファイルにデータを保存するとき、
$fp = fopen("./log/test.cgi", "w");
flock($fp,LOCK_EX);
fwrite($fp, "$test");
flock($fp,LOCK_UN);
fclose($fp);
↑のようにやってたとすると、書き込むときに文字コードをEUCに指定するにはどうしたらいいでしょうか?
>>661 mb_http_outputや
mb_internal_encodingはやってみた?
663 :
nobodyさん:04/01/25 14:55 ID:g7M95XTl
>b-string を使え、とのことなんですが、よく分かりません。
(゚д゚)ハア?
そのまんまじゃん
マニュアル嫁
>>652 \1
>>658 $c = explode('<>', $a);
$b = array_shift($c);
じゃだめ?
>>662 いろいろ試してみたのですが、どれもエラーになってしまいます。
使い方が分かっていないせいかもしれません。
もうどうしたらいいのか分かりません。
すみませんがやり方を教えてもらえないでしょうか。。
668 :
663:04/01/25 17:08 ID:g7M95XTl
ぐぐったのですが、
サーバサイドで設定することばかりで、
こちら側でどう設定すればいいのかよくわからないのです。
>>663 mb_http_outputなりmb_internal_encodingなりを、
ini_setで変更すれば良いです。
ただしサーバに、PHPが中国語対応にインストールされている必要があります。
>>667 mbstringがインストールオプションに入ってないのでは?
nkfやjcode.phpを使ってみてはどうでしょうか。
>>669 分かりました!
jcode.phpを使って保存するときに自動認識⇒EUCで可能なようです。
今回は本当に勉強になりました。
答えてくださった方々、ありがとうございました。
他の板で聞いたのですが、ほぼスルーだったのでこちらで質問します。
PerlのCGI領域みたいに(/cgi-bin
PHPも使用できる領域を選択したり出来ないのですか?
例えばCGIと同じようにcgi-bin以下におくと動作するような。。
Linuxの場合で教えてください。(できればRedHat7.3以上の場合で
できますよ。
俺はしないけど。
>>671 engine on|off でできるんじゃないかなぁ。
試してないけど。
>>671 Linuxの場合つうよりも、ふつうhttpdでの機能を使うわな。
もまえが使っているhttpdのスレで聞いたほうがいいんじゃね。
>>672-673 最初、自宅サーバ板で聞いたのですが
全く解決しなくて、自分で調べろと言われまして・・。
それでグーグルを駆使して調べたのですが、出てこなくて。。
httpdはApacheなのですが、CGIのようにエイリアスの指定が
出来ないような気がするんです。だけど、レンタルサーバで出来るところはあるし・・。
>>675 出来ないような気がするって...
やってみれ。
って、もれもやったことないんだがなー。
>>676 その「やりかた・設定の仕方」がわからないので
教えてもらおうと、質問したのです。。
もうね(ry
>>673の書き方が分かりにくかったのかな。
php_flag engine on(or off) でできるんじゃないかなぁってことです。
マニュアルのini_set()関数のところに設定オプションの一覧があります。
向うのスレでも出てたエイリアスを使った方法は分かんないなぁ。
ってか、ディレクトリ単位でon offするのがキモくて考える気にもならないでつ。
>>671 できるよ。
CGIでPerl使うときと同じように、CGI版のPHP使って指定しなよ。
CGIって元々そういうもんでしょ。
またMONか!
>>677 cgiの/cgi-bin/の設定方法が参考になるだろうが。
ちょっとは調べれ。
つーか、モジュールで動くphpにそんなことしても意味なさそげ
cgi版なら判らんでもないが。
683 :
nobodyさん:04/01/27 17:13 ID:rDHMY/8R
こいつは自分で調べるという事を知らない白痴だからな
zendのとこでも発言があったんですが、
popupを表示せずにBasic認証ってできるのでしょうか?
結論的にはPHP_AUTH_USER等に文字列を代入することです。
やってみたの?
にんともかんともいかんです。
>>684 できるよ。つかpopupってするって
GUIなブラウザだけでしょ。
test.php
<?
echo $_SERVER['PHP_AUTH_USER'];
$uid = "Guest";
putenv ("PHP_AUTH_USER=$uid");
?>
<a href=test.php>_no</a>
…馬鹿っぽくてスマヌ…_no
その前になんでputenv使ってるんだ俺…_no
無理っぽ。
692 :
nobodyさん:04/01/28 03:25 ID:IiAYAwD1
PHP5で例外処理をサポートしたそうですが、
PHP4で例外処理っぽいことをする方法はありますか?
簡単なCUIみたいなかんじでコマンドラインでPHPを実行し、入力待ちして
ユーザからの入力を受け取って処理をするにはどのようにすればよろしいのでしょうか。
Perlでは、
while(<STDIN>) {
#入力されたときの処理
}
としますが。
シェル開放
695 :
nobodyさん:04/01/28 11:38 ID:EtilQvHo
翻訳魂をコマンドラインから利用できるhonyaku_conコマンドを使用して、
翻訳されたテキストを表示しようとしているのですが、うまくきません。
exec("honyaku_con test.txt", $ret, $retCode);
while(list($key, $value) = each($ret))
{
print("$value<br>\n");
}
こんな感じにしてみたのですが。コマンド部分を ls にしてみたり
cat test.txtなどにすると実行結果が正しく表示されます。
コマンドラインから honyaku_con test.txt と実行するとちゃんと
翻訳された結果がktermには表示されます。
アドバイスを宣しくお願いします。
696 :
nobodyさん:04/01/28 13:04 ID:UZBUABnu
掲示板を作ってみたんですが、返信ボタンを押しても
POSTされる$codeの中身は一番最後のログになってしまいます。
どこがおかしいのでしょうか?・・・・誰か助けてください。
ちなみに$codeはtime()です。
$test0 = file($testfile);
for($i = 0; $i < $test0[$i]; $i++){
list($code,$flg,$name,$dai,$date,$message) = split("\t",$test0[$i]);
if($flg == 1){
echo "<form action=$PHP_SELF method=POST>\n";
echo "<input type=hidden name=action value=re>\n";
echo "<hr><input type=hidden name=recode value=$code>
<input type=hidden name=flg value=$flg><font color=#CD853F>$name</font>
:<input type=hidden name=redai value=$dai>$dai
<br />$date<br /> <hr>$message<input type=submit value=返信>
<hr><br />\n";
}
}
とりあえずform閉じろ
>>695 honyaku_conをフルパスにしたらどう
>>696 まともなhtml書けるようになってから出直せ。
echoのところ無茶苦茶だ。
>>639 >>701で示したマニュアルの下の方、
User Contributed Notesに丁度サンプルがあるので見てみそ。
PEARのgetColでDBから取得した配列の値がStringになってしまっています。
これをintに直すにはやはり、foreachで各値毎に型キャストして配列に再度格納するしかないのでしょうか?
自分が使っているレンタル鯖とローカルのmac os xのPHPが
モジュール版なのかCGI版なのか知りたいのですが
ドコを見ればわかりますでしょうか?phpinfo()でわかりますか?
またモジュール版・CGI版に関する説明のあるサイトを教えていただけるとうれしいです。
707 :
693:04/01/28 17:00 ID:???
pear コマンド(ターミナル上で pear install hoge って使うやつ)のバージョ
ンってPHPのバージョンに依存するよね?最近の pear には pear all-install
なるオプションが追加されたとの噂なんだが、手元の pear にはそんなオプショ
ンはない。たぶん PHP-4.3.4 に附属してたやつだと思うんだけど。この新オプ
ションって PHP-5.x のやつなのかな?
709 :
nobodyさん:04/01/28 17:43 ID:pNeKtgpy
fileperms関数と、chmod関数を利用している人いませんか?
ファイルシステム上でパーミッションを変更してもfilepermsで取得したパーミッションに変化がでないし
chmodを実行してもファイルシステム上でもブラウザからみてもパーミッションが変わりません。
なお、clearstatcache関数は利用しています。
どなたかこの問題についてご存知の方はいませんでしょうか?
ちなみに環境はこちら
>>53
>>704 普通にアクセスできてびびった。
そう言えば前にも見たような。。。
>>711 /usr/local/bin/pear
自体は単なるシェルスクリプトで、実際は /usr/local/lib/php 以下の
PEAR ライブラリを呼出してるだけだったんですね。了解です。
714 :
nobodyさん:04/01/28 19:36 ID:GzuOm832
びっくりするほど初心者ですが、識者の皆さんに質問させて下さい。
PHPスクリプトでフォームメールを受け取る時、
ipなどの個人情報が出ます。これを取らないようにしたいのですが、
何か良案ありませんでしょうか。何となく勘で一部の記述を
削除してみたらエラーになってしまいました。ソリャソウダロウ
よろしくお願いします。
>>714 あーびっくりした。
ってその説明だけで原因が分かるほうがびっくりだよ。
せめてソース位示してみろや。
716 :
684:04/01/28 20:27 ID:???
717 :
692:04/01/28 20:41 ID:???
>>704 ありがとう。
処理としては同じなんだけど、ちと書くのが面倒ですね
718 :
704:04/01/28 22:34 ID:???
確かに大丈夫そうですね…。
ブラウザ依存ではない気がしないでもないんですが。
<?
$host = $_SERVER['HTTP_HOST'];
$path = $_SERVER["SCRIPT_NAME"];
$user = "guest";
$pass = "foobar";
if ($_SERVER['PHP_AUTH_USER'] == "")
{
echo "auth";
include "
http://".$user.":".$pass."@".$host.$path;
}
?>
この場合毎回authが表示されてしまうのは何故でしょう?
720 :
718:04/01/29 07:27 ID:???
>>719 BASIC 認証を通過すると、ブラウザを閉じるまで自動的にブラウザがユーザ名と
パスワードを送るから。
そうなると6行目の条件式はFALSEになるような…。
ていうかそれ、サーバーがPHP_の環境変数を許可してなかったらかなり危ない予感。
723 :
nobodyさん:04/01/29 14:12 ID:4GL80ZOq
すごく初心者です。
PHPで掲示板つくってPCでも携帯(3キャリア)でも閲覧、書き込みできる
ソースってありますでしょうか?
そもそも携帯で.phpはブラウズできるのかもちょっと不安です。
できなきゃrewrite
725 :
720:04/01/29 14:46 ID:???
726 :
nobodyさん:04/01/29 16:23 ID:jGWM7bCb
PHP4以降で、phpでpingを実装したいんだけど、できる?
とりあえずicmpは扱えそうだから、あとは単に根性?
729 :
nobodyさん:04/01/29 19:57 ID:VWGZCDzJ
PEARのNet_Pingなら読んだ事あるけど、
外部コマンド利用していたよ。技術的にはpure phpで実装も可能だろうけど、
権限やセキュリティが問題になるんじゃないかな。
>>726
aucfan.com
や
avbb.net
みたいな串刺し検索ってPHPでできますか?
PHPに最適なエディターあったらお聞かください。
>>732 最適化どうかはまだ未知数だが、PHP開発に適したエディタを
作ろうとしてる人がいる。最近のPHP-users MLのログ読んでみてください。
(Windowsのエディタだけど)
>>732 中野にあるそれ系の人が作ったエディタがあるが烈しく使いづらかった。
個人差あるからなんともいえない。
MacOSXでは海外でエディタがあるらしい。mySQLと連動してるとか。
ググってて見つけたことがある。
俺は何を書くのも全部Xyzzyだ
□渋谷 □新宿 □池袋
というようなチェックボックスがあり、これらのnameがすべて同じ「station」だった場合、
どれとどれがチェックされたいい情報はどうすれば手に入れられるのでしょうか?
一応、valueに渋谷、新宿、池袋、と入れたものの、
$_POST[station]で帰ってきたこたえは「on」でした
PHPのマニュアルのFAQにもある質問だな
740 :
737:04/01/30 05:21 ID:???
>>738-739 ありがとうございます。
フォームのところばかりみててFAQ見てませんでした、すみません。
せめてPHPの質問しろよ・・・
742 :
nobodyさん:04/01/30 08:06 ID:WItp0sgs
ちょっとスレ違い気味な質問ですが、皆さんはPHPスクリプトを作成するとき
どんなドキュメントを残してますか?何か書式や書き方のお勧め、標準的なものが
あれば紹介していただきたいのですが。
744 :
742:04/01/30 10:21 ID:WItp0sgs
>>743 どうもありがとうございます。
クラスや関数の引数なんかはそれで良いんですが、HTMLのフォームから
GETやPOSTで送られてくるデータなどはどう書くのがいいのかなと…。
>>744 /* 身長 */
$shincho = $_GET['shincho'];
/* 体重 */
$taiju = $_POST['taiju'];
746 :
719:04/01/30 14:53 ID:???
>>719のプログラムでauthが表示される理由がわかりません。
そのプログラムをauth.phpとして保存
$pathはauth.phpになるわけだから、自分自身をincludeすることになる。
そしてincludeされると$_SERVER['PHP_AUTH_USER']はguestになる。
よってそこでプログラムは終了。
リロードしても$_SERVER['PHP_AUTH_USER']はブラウザを閉じるまでnullにはならないはず。
と思ったんですが、ダメですか?
別の方法としてlocationヘッダで飛ばすのは
IEがuser:pass@hostnameのアクセス方法を止めるとなれば
選択肢から抜けるだろうし、どうするのが妥当でしょうか。
747 :
725:04/01/30 16:40 ID:???
>>746 PHP が include した場合、認証したのは PHP であって、ブラウザではないから
ブラウザからのアクセスで、$_SERVER['PHP_AUTH_USER'] に guest が入ることはない。
>>719 のスクリプトでは、$_SERVER['PHP_AUTH_USER'] がブラウザからアクセスしたときは
常に空なので、auth が表示されることになる。
また、ブラウザから認証する場合、
header("WWW-Authenticate: Basic realm=\"My Realm\"");
header("HTTP/1.0 401 Unauthorized");
の HTTP ヘッダを送らないと、user:pass@hostname の形式での認証は行ってくれないので注意。
無理に BASIC 認証を使う必要があるのかは疑問なので、別の方法を使った方がいいかもしれない。
$_SERVER['PHP_AUTH_USER'] に文字列を入れる方法ということで、user:pass@hostname を
答えただけなので。
どういったユーザを対象にしていて、どういう目的で認証が必要なのかが分からないけど、
Cookie や GET、Session など、他の方法はいくらでもあるはず。
名前,年齢,身長
A,22,182
B,22,176
C,24,181
D,19,177
...
このようなCSVデータをexplodeして多次元配列に収めています。
usortを使いこの配列を年齢昇順かつ身長降順に並び替えたいと思い次のようなコードを書いたのですが期待通りに動きません。
あるサイトをみたかぎりではこれでよさそうだと思ったのですが……いったいなにがいけないのか。
どなたかご教授ください。
function cmp_age($a, $b){//年齢昇順
return $a[1]-$b[1];
}
function cmp_height($a, $b){//身長降順
return $b[2]-$a[2];
}
$data = file('data.csv');
foreach($data as $key => $value){
$temp[$key] = explode(",", $value);
}
usort($temp, "cmp_genre");
usort($temp, "cmp_date");
以上です、長々とすみません。
749 :
748:04/01/30 17:15 ID:???
ごめんなさい、
>>748のコードを一部間違えてしまいました。
>usort($temp, "cmp_genre");
>usort($temp, "cmp_date");
は、
usort($temp, "cmp_height");
usort($temp, "cmp_age");
の間違いです。たびたびすみません。
751 :
nobodyさん:04/01/30 18:32 ID:NtQODyKk
日本語で書かれた文字列を50文字ごとに改行を入れるような
ことってPHP可能でしょうか。出来れば禁則処理とか入れたい
んですが。
Perlで書いたら折り返す文字が日本語の時に、文字の真ん中で
(2バイト目の頭)ぶった切れてそれ以降が文字化けしまくりに
なっちゃった・・・
PHPって使ったとと無いんですが、Perlより楽そうなので変更
しようかなと思ってます。
>>751 可能ですが、標準関数の中にはありません。
perlでも可能ですが、標準関数の中にはありません。
1〜3行目に書いてあるような処理をプログラムするだけだと思いますが・・・?
754 :
nobodyさん:04/01/30 19:31 ID:ycgoNHYe
教えていただきたいのですが
例えばHTMLファイルから
<div class
>>754 どうした? スネーク? スネーーーク!?
>751
禁則処理は自分でやんなきゃいけないけど。
mb_strimwidth()
>>748,749
最近ちょうどバブルソート勉強しました
逆順かもしれませんが、どうでしょうか
function cmp_age_height($a,$b){
if($byage=cmp_age($a,$b))
return $byage;
else
return cmp_height($a,$b);
}
usort($temp,"cmp_age_height");
759 :
754:04/01/30 22:59 ID:???
すいません。。
仕事中に携帯から書き込みしたんですがうまく送信されなかったみたいで。。
えと、
例えばhtmlファイルから
<div class="test">
〜〜〜
</div>
上のような所だけ取得したい場合はどうすればいいでしょうか。
<div class="test">.*</div>見たいな感じでマッチさせるのはわかるんですが、マッチした部分をそのまま返す関数が見当たらないものでして。。
760 :
751:04/01/30 23:20 ID:NtQODyKk
どうもです。PHPにはmb_strimwidthなんてのがあるんですね。
Perlでやったんですが全然上手く動いてくれなくて挫折しました。
どうしたものか・・・PHPかなぁ。
761 :
748:04/01/30 23:27 ID:???
>>758 おかげでうまく動きました、ありがとうございます。
>>754 preg_match("/<div class=\"test\">(.*?)<\/div>/", $html, $match);
で、$match[1]。
763 :
nobodyさん:04/01/31 11:39 ID:ONkbJd4l
教えてください!
開発用にWindowsでApache+PHPの環境を作ろうとしてます。
ただ運用はLinuxでCGI版で使ってるため
1行目に下のようにパスを書いてます。
#!/usr/local/bin/php4
これを、出力されない(無視する)ようにする方法は
ありますでしょうか?
>>759 XML用の関数でそう言うのあるから流用or自作で
(゚д゚)ガンガレ
>>763 運用と開発の環境合わせないといろいろ面倒だよ。
質問させてください。
1週間ほど前から少しずつPHPをやっているのですが、
メールサーバからメールを受信する方法がわかりません。
送信方法は過去ログでもググッても情報が出てくるのですが…
どこか参考になるサイトなどないでしょうか。
レッツのソース見てみれば。
769 :
nobodyさん:04/01/31 16:43 ID:/uLdrFX0
Parse Error大杉。出直してこい。
771 :
nobodyさん:04/01/31 18:11 ID:6SJ6/Eok
>767
PHPがメールサーバにメールを取りに行くと、数分・数秒ごとに
新着チェックにいかなきゃならんので恐ろしい負荷かかるぞ。
普通は逆の発想で、メールサーバが新着を勝手にPHPに渡してくれるように設定するの。
PHPは何もせずに受取るだけ。OK?
ヒント: dot-qmail パイプ プログラム起動 stdin
> PHPがメールサーバにメールを取りに行くと、数分・数秒ごとに
> 新着チェックにいかなきゃならん
なんで?
受信ボタン用意しろよ。
>>772,
>>773 メールボックスが一杯になった時の処理を考えよう。
PHP呼出時にメールをチェックしていると処理に時間がかかる。
これを回避するには、定期的にメールをチェックする事だけど、
それよりは、メールを受けとった時に受信処理を済ませる方がスマート。
手元でMTA実行している時の話だったのか
>>775 その辺、元質問からは読みとれないので曖昧だね。
MTAが手元にないなら
>>771の方法は使えない。
>>767 メールサーバーは何を御使いですか?
メール受信のプロトコルに何を使ってるかによって方法が異なります。
大抵はPOP3 もしくは IMAP4だろうから、PHPのIMAPライブラリが使えるはずです。
が、hotmailなんかだと事情が違ってきます。
また、メールサーバーの管理権限を持っているかどうかによって
>>771の様な違ったアプローチも取れるので、その辺りも提示して尋ねるといいかも。
777 :
767:04/01/31 21:42 ID:???
>>768さん,
>>771さん,
>>774さん,
>>776さん
お返事ありがとうございます。
MTAという単語は初めて聞いたのですが、ちょっと調べてみたところ
メールトランスファーエージェントの略だそうですね。
その言葉もよくわからないのですが、メールサーバのことでしょうか?
メールサーバは、Windows上でArGoSoftMailServerというものを立てています。
ArGoSoftMailServer →
ttp://www.argosoft.com/applications/mailserver/ あまり高機能なメールサーバではなく、細かな設定はできそうにありません。
メール受信のプロトコルはPOP3です。
>>773さんの言うように、「ボタンを用意してクリックしたらメールを受信する」、
という方式を考えていたのですが、実現可能でしょうか?
それが可能であるなら、おそらく利用者は3〜5人ほどになると思います。
アドバイスをいただければ幸いです。
>>777 既にWeb based interface 持っているようだけど?
それとは別にPHPでメールを読むプログラムを作るのかな?
POP3を通じてメールを読み込むのなら、IMAP拡張ライブラリが使えます。
ただし、メール受信処理はバックグラウンドで済ませるべきでしょう。
理由は
>>774で示した通り。
もしサーバーの管理権限をお持ちなのであれば、
>>771案がお勧めです。
779 :
767:04/01/31 23:52 ID:???
>>778さん
お返事ありがとうございます。
Webメールの機能もあるのですが、今回はPHPの勉強&携帯からの
アクセスを考えているので、自分で作ってみようと思っています。
IMAP拡張ライブラリというものを調べてみることにします。
自前のメールサーバなので管理権限はあるのですが、
>>771さんの
おっしゃっている、「新着をPHPに渡す」という部分が理解できませんでした。
あらかじめ設定したメールアドレスしかできないのかな?と思いました。
浅はかなりに今考えているのは、
テキストボックスを2つ作り、メールのユーザ名とパスワードを入力する。
submitボタンを押すと、そのユーザのメールをチェックしに行き、
新着があればタイトルを表示させ、内容へのハイパーリンクとする。
それをクリックすれば内容が確認できる。
という感じです。
>>779のように携帯からメールチェックできるページを作りましたとかいって
友達に自由に使っていいよとか広めると、友達のパスワード入手し放題だな。
781 :
767:04/02/01 00:27 ID:???
>>780さん
なるほど、そういう危険もあるわけですね。
まったく悪意はないのですが、言われてみればその通りです。
今回は自分のメールサーバを利用しているので、そもそもユーザのアドレスは
管理者である自分には筒抜けなので関係ないような気もしますが、
応用すればそういう危険も出てくるんですね。
$iにはint型の数字がはいってます
このとき
if($i==' '){ //shori}
else{ }
などとやると$iが0だったばあい
かならずelseの中の処理をしてしまうのですが
これってphpのバグですか?
その条件式だと$iが0のときtrueになるからバグではない。empty($i)も同様。
そのケースはisset使うといいよ。
<>"&'|*;などのような
フォームから入力される危険な文字を削除する便利な
関数はありますか?
やはり、str_replaceを何度も使わなければいけない
のでしょうか?
んなアホな。
>>784 ===なら型のチェックまでしてくれる。
>>786 str_replaceの引数に配列を使えば、一回ですむ。
addslashes と htmlentities 使えば?
データベースと通信する場合はセミコロンは危険だけど、これはたぶん str_replace
使うしかない。自分はこの3つの関数を組み合わせた専用の関数を作って対応してる。
791 :
784:04/02/01 12:20 ID:???
どうもありがとうございました。
掲示板を作っているのですが、
XSS対策としてタグを取り除く方法について悩んでいます。
画面に出力されるデータは最初の記事投稿時にstrip_tagsでタグを除去しているのですが、
いくつかの掲示板機能で記事データの一部を負荷軽減の為に
掲示板内でGETメソッドを使って使いまわしているのです。
この場合、URLの引数にタグを入力されるとマズイですよね。
自分で思いついた対策は、
一つがGETメソッドでデータを受け取るたびにstrip_tagsでタグを除去する方法、
もう一つはGETメソッドで使いまわさずに各ページ毎でmysqlからデータを取得する方法の二つです。
しかしこのどちらが負荷が小さいのか、どちらが良いのかなどの判断が付きませんし、
他にもっと良い方法があるのかも分かりません。
どうかアドバイスをお願いします。
宜しくお願いします。
793 :
771:04/02/01 13:14 ID:nBt98kgF
>767
>おっしゃっている、「新着をPHPに渡す」という部分が理解できませんでした。
>あらかじめ設定したメールアドレスしかできないのかな?と思いました。
ちょっと混乱させちゃったね。ごめん(´・ェ・`)
当方、最近携帯向けWEB仕事ばかりで、こういう発想しか出来なかった。
(頭が固くなり始めたなぁ・・・)
「新着をPHPに渡す」っていうのは、わかりやすく言うと、いわゆる携帯WEB系で
主流になりつつある「空メール登録」とか「写メールBBS」とかの実体です。
こういうのはメールを受信すると即時に処理する必要があるので、こういう形になります。
UNIXのqmailやvpopmailというメールサーバでは、メールの受信設定次第で
メールの内容をそのまま他のプログラムの標準入力に渡すことが出来るのを利用します。
あらかじめ設定したメールアドレスしかできないかどうかは、要は設定次第です。
つづく
794 :
771:04/02/01 13:15 ID:nBt98kgF
>767
ArGoSoftMailServerは使ったこと無いからよく分からないけど、
やっぱり、ごっそり受信した時にtimeoutになる可能性はいなめないので、
ATコマンド(定期ジョブの登録)で1時間毎とかにPOPメールを受信してtxtに書き出しとか
しておいたほうがいいと思う。
あと、携帯開発の視点から言うと、メールアドレスとパスワードを入力させるのはイクナイ。
あらかじめ認証キー(メアドとパスワードを合体させた暗号)を振っておいて、
http://hoge.com/mail?key=認証キー というURLをメールで携帯に送信しておいて、以降はそのメールからワンクリックアクセス
という方法じゃないと、せっかく苦労して作っても、そのうち余りの不便さに使わなくなるよ。
みなさんキャッシュを利用するのにどれ使ってますか?
796 :
nobodyさん:04/02/01 14:10 ID:1EiyFyk3
telnet とかSSHが禁止されてるんでつが、
ini_setを使うことってできますか?
>>796 できるかもしれないしできないかもしれない
798 :
nobodyさん:04/02/01 14:18 ID:1EiyFyk3
>>796 できないんですか?
SSHもtelnetも許可されていないサーバー会社から
これを使うように言われたのでつが。
>>798 できるのもあるしできないのもある
マニュアル嫁
800 :
798:04/02/01 14:34 ID:1EiyFyk3
mbstring.http_output を設定したいのですが
マニュアル読んでもよくわからないでつ
まずは自宅鯖で修行積め
マニュアルの意味がわかるようになるまで外出禁止
どうやって?
805 :
767:04/02/01 19:11 ID:???
>>793さん
ご説明ありがとうございます。
PHPの勉強を始めるちょっと前に、RedHatLinuxの勉強も始めたので、
そのマシンにqmailを入れて試してみることにします。
Apacheはなんとか動くので、まずはqmailの設定をしなければ…
> あらかじめ認証キーを振っておいて
なるほど、これは思いつきませんでした。
今はまだ、利便性<開発の簡単さ の状態なので…
そういうユーザの情報を格納するデータベースも必要になってきそうですね。
データベースのデの字も知らないので、そちらもあわせて勉強してきます。
MySQLかPostgreSQLを入れてみることにします。
>>786さん
シェルコマンドにしか利用できないかもしれませんが、こういうのもあるそうです。
ttp://php.s3.to/man/function.escapeshellcmd.html 関係なかったらごめんなさい。
806 :
nobodyさん:04/02/01 19:18 ID:mf94sBaZ
>>767さんではないんですが横レスすいません。
CGI版PHPでqmailから|で渡した時に、
$_ENV['CONTENT_LENGTH']や$_SERVER['CONTENT_LENGTH']は
取得できないようなのですが方法ありますか?
例えば添付ファイルも含めて100kb以下のメールのみ処理したい場合に
CONTENT_LENGTHを参照したいんですが。
807 :
nobodyさん:04/02/01 20:12 ID:h+L5ojru
ZEND.COMって、zendoptimizerインストールされてるの?
zendだから、インストールされていると思うんだけど
おそい・・・
808 :
771:04/02/01 21:08 ID:nBt98kgF
>806
ENVや SERVERとかの定義済み変数は Apacheなどの上位プログラムで
セットされるものなので、qmailでは取れないはず。
やるなら↓のような方法かな。
if( ( $stdin=fopen("php://stdin","r") )==true ){
while( !feof($stdin) ) $maildata.= fgets($stdin,4096);
fclose($stdin);
if( ( $contentlength=strlen($maildata) )>102400 ) exit;
}
809 :
771:04/02/01 21:21 ID:nBt98kgF
>767
RedHat9でqmailをインスコする時には、パッチを当てないと必ず
コンパイルエラーが出るから気をつけて。
他にもqmail、checkpassword、ucspi-tcp、qmail-vida、daemontoolsで
同じエラーが出る(私もちょうどおとといvpopmailインストールしてた)。
詳しい対処法は下のサイトが参考になったYO
ttp://labo.d77.jp/cgi-bin/view.cgi?page=71 がんがってね
810 :
806:04/02/01 21:41 ID:???
>>808 どうもです。自前でバイト数見てexitするようにしますです。
811 :
767:04/02/01 21:51 ID:???
>>809さん
アドバイスありがとうございます。
今はRedHat8を使っているので関係なさそうです。
そういえばRedHat9で終わってFedoraとかいうのになったんでしたっけ…
812 :
nobodyさん:04/02/02 00:12 ID:eK9GFRQq
XML DOMであるDOMツリーAに他のXMLファイルから作ったもう一つのDOMツリーBを
子供として追加したいんですが、Bのルートノードをdocument_element()
で取得してからAの適当なノードにappend_child()すると
Warning: append_child(): Can't append node, which is in a different
document than the parent node
になってしまいます。属しているツリーが違うからだと思うのですが、何か
解決策はないでしょうか。
質問させてください。
aというファイルの中身が
baka
aho
tensai
で、bというファイルの中身が
1
2
3
だとして、
$c="2";
$data=file('a');
$data2=file('b');
for($i=0; $i<count($data); $i++)
{
if($data[$i]=$c)
{
$d=$data2[$i];
}
}
echo "$data[i] $d";
とすると、最後の部分がうまく表示されませんでした。
if($data[$i]==$c)にしてもうまく表示されませんでした。
ファイルbの中にある$cと一致する行を調べ(2行目)、
ファイルaの同じ行(2行目)を表示させたいのですが…
php_mingって、win98系だと使えなかったりしますか?
>>813 もっとよく整理しろ。
$c = "2";
$data1 = file('a');
$data2 = file('b');
for ( $i=0; $i<count($data1); $i++) {
if ( $data2[$i] == $c ) {
echo $d = $data1[$i];
}
}
>>815 int型以外の変数の場合も、==で等しいかどうか確かめられるのでしょうか?
=にした場合は、ファイルbの中身すべてが表示され、
==にした場合は、何も表示されないのですが。
>>815さんの方法の場合も同じでした。
"="は代入,"=="は比較,"==="は厳密な比較
>>817 それならば==にした場合に何も表示されないのはなぜでしょうか。
等しくないのでifの中が実行されていないということでしょうか。
試しに$data2[$i]と$cをechoさせてみたところ、まったく同じ内容だったんですが…
>>819 最後の改行のことでしょうか。
↑のコードでは最後の改行が表示されているようですが、
前にも書いた通り
> ファイルbの中にある$cと一致する行を調べ(2行目)、
> ファイルaの同じ行(2行目)を表示させたい
ということで、2行目が表示されてほしいのですが、どのようにすればいいでしょうか?
何度もすみません。
>>818 ていうか
>>813のコードだと一致する最後の行しか表示されないけど良いの?
なんとなくファイルの最後に空行が入っててそれが原因な気がするんだけど。
>>815は$c = 2;にすれば動く。
==は片方がintだともう片方の最初の文字が数字でそれが一致するならなら後ろに
ゴミが付いててもTRUE返す。
if ("2baka" == 2)はTRUE。もちろんif ("2baka" == "2")はFALSEだし
if ("baka2" == 2)もFALSE。
マニュアルのfile()のページに
> 配列に取り込まれた各行は行末文字も含みます。 行末文字を取り除きたい場
> 合にはtrim()を使用する必要があります。
って書いてあるじゃん。文字列で一致させたいならtrim()使え。
if($data[$i]=$c)なんてやったら代入成功するんだからTRUE返った上に
同じ内容になるに決まってるだろ。論外。
そもそも
echo "$data[i] $d";
ってなんだよ。
echo "$data[$i] $d";
じゃないのか?
もう答えはでそろった。一件落着。
次どうぞ↓
>>821 trim関数は知りませんでした。
試してみたのですが、結果は同じでした。
>>822 すみません、打ち間違いです。
>>821 trim関数で解決できました。
他にもところどころ間違いがあったようです。
何度も何度もお邪魔してすみませんでした。
826 :
nobodyさん:04/02/02 08:29 ID:bxekPRhp
PHPを使う一番大きいメリットってなんですか?
>>826 ID惜しいなぁ。もう少しでPhpだったのに。
>>826 開発速度です。WEBに特化してて欲しい関数が最初からあって楽かも。
perlは昔めんどくさくて投げ捨てたけどPHPはラクチンでいい。
PostgresQL-7.4 + PHP-4.3.4 使ってます。
テーブル mytable に bytea型の列 photo があります。
$sql = "SELECT photo FROM mytable WHERE id = 1";
$rec = pg_query($conn,$sql);
$row = pg_fetch_row($rec,0);
$image = pg_unescape_bytea($row[0]);
echo $image;
これで、登録されてる画像はとりあえず取り出せたのですが、これをブラウザに画像として表示する方法が分か
りません。そのファイルが jpg形式だと分かってるんですが、この後にどういう処理を追加すればいいですか?
>>829 header関数で、コンテンツ タイプを吐けばいい。
>>830 ありがとうございます。とりあえずその方法でブラウザ上で表示できた
んですけど、画像じゃなくテキストも混合させたいのです。となると一時
的にファイルを作成するとかしないと無理ですかね?
それならデータベースにしまう意味がなくなってしまいますね(´・ω・`)ショボーン
>>831 普通はイメージだけ出力するphpスクリプトを書いて、そのスクリプトをimgタグで指定する。
<img src="imageshow.php?id=1" ... 見たいな感じです。
>>832 できました。激しく感謝です。imageshow.php が出力した画像のフォーマットは自動で
判別してくれるんですね(IE と Mozilla)で確認。ありがとん!
>>833 自動判別するかどうか試したことないが、httpヘッダで判別させるのが正解だろ。
>>834 すいません。httpの仕組みをよく分かってないんですが。この例だと
showImage.php が "Content-Type: image/jpge" を出力すればブラウザ
はそれを解釈してくれるってことですか?
showImage.php の先頭に
header("Content-Type: image/gif");
を追加してみましたが、ブラウザはjpeg画像と解釈して正常に表示され
てしまいます。
>>835 typoがあるけど、まぁ、前段は本来そういうこと。後段はブラウザが気を利かせているというか、
画像表示ルーチンが判別しているんでしょうよ。
ま、IEなんかは、plain/text でhtmlソースを出力しても、ソースをそのまま表示せずに
htmlなページを表示しちゃうからな。(Mozillaならhtmlソースを表示)
ゴメソ。
× plain/text
○ text/plain
838 :
826:04/02/02 13:33 ID:???
>>828 そんなありきたりな回答は求めていないんですが・・・・
>>836 サンクス。とりあえず imageShow.php 側で正しいヘッダー
を出力しておくにこしたことはないですね。今後は気にする
ようにします。
>>838 ありきたりなのはそれが一番大きなメリットだからだ、どあほう。
OK
亀レスすまそ。
>>747 > Cookie や GET、Session など、他の方法はいくらでもあるはず。
GETって何ですか?
質問させてください。
php.iniファイルをレンタルサーバーの指定の場所にアップしたのですが
php.iniの設定が反映されるのは時間がかかるのでしょうか?
鯖缶に聞いた方が良くないか
厨な質問ですみません。
CGI版のPHPと普通のPHPでは、なにが異なるのでしょうか?
>>846 〃∩ ∧_∧
⊂⌒( ´・ω・)くぜんぶマニュアルに書いてあったでつ
`ヽ_っ⌒/⌒c
設定ファイル(PHP 3.0では php3.ini、PHP 4.0 では php.ini)は、
PHP の起動時に読み込まれます。
PHPのサーバーモジュール版では、このファイルは、
Webサーバーの起動時に一度だけ読み込まれます。
CGIとCLI版では、起動する度にこのファイルが読み込まれ ます。
Windows2000、php5.0.0b3、apacheでXML DOMを使いたいんですが、
domxml_new_doc()等の関数で定義されていないというエラーが出ます。
phpinfo()ではDOM/XMLはenabledとなっています。
どなたか同様の環境でXML DOMを使っている方、セットアップの手順を
教えていただけないでしょうか。
あと、現在php.netにあるマニュアルはphp4のものですが、
php5のマニュアルってあるんでしょうか。ドラフト版でもあれば参考に
なるので読みたいです。
851 :
846:04/02/02 23:34 ID:???
.htaccessでもphpの設定を変えられるみたいなのですが
.htaccessの中身はどう書いたらいいのでしょうか?
php+mysqlでデータの読み書きやってるんだけど
書き込みのときによく二重投稿になってしまうんですよね。
SQLの中のデータ参照して既に投稿しようとしてるものが入ってれば
もう投稿しない、っていうふうにやろうとしてたんだけど
送信ボタン素早く連打したら、一度目の送信のmySQL書き込み処理終わる前に、
2度目(誤動作)の処理がはじまってしまうみたいで
全然チェック機構として用をなしてません。
(タイミングの問題で・・・)
mySQL使った掲示板とかはどうやって二重投稿防げばいいんでしょうか?
やっぱファイルロックとか使うの?
同じくPHP+Mysql使ってるのですが
キーワード検索がまったくうまくいきません
初心者なので四苦八苦しながらいろいろ試してますが
なかなか正確な検索ができないで困ってます。。
検索機能ってこんなものなのでしょうか?
>>853 安直だが、unique(IDアドレス,本文) てな感じで制約を掛けてしまうとか。
>>854 書いたSQLを晒せ。