【PHP】質問スレッド Part12

このエントリーをはてなブックマークに追加
1nobodyさん
PHP全般の質問スレです。
上級者用や雑談スレを立てたくなった場合は後から適宜立ててください。

■本家
 http://www.php.net/

■日本 PHP ユーザ会
 http://www.php.gr.jp/

■PHP マニュアル
 http://www.php.net/manual/ja/

■PEAR マニュアル
 http://pear.php.net/manual/ja/

過去スレ, 関連スレ及び注意事項等は、 >>2-3
2nobodyさん:03/12/06 00:47 ID:???
3nobodyさん:03/12/06 00:48 ID:???
関連スレ

■ PHP + MySQL
 http://pc2.2ch.net/test/read.cgi/php/983250751/

■ PHP + PostgreSQL
 http://pc2.2ch.net/test/read.cgi/php/983128806/

  ☆  P  H  P  5  ☆  
http://pc2.2ch.net/test/read.cgi/php/1056969979/

Pear
http://pc2.2ch.net/test/read.cgi/php/985665522/

【PHP】Smarty【Template】
http://pc2.2ch.net/test/read.cgi/php/1047225437/

■PHP関連の書籍(但しPHP出版系お断り)
http://pc2.2ch.net/test/read.cgi/php/985315574/

■ PHP アップグレード報告スレッド
 http://pc2.2ch.net/test/read.cgi/php/987259309/
4nobodyさん:03/12/06 00:56 ID:???
テンプレだけだと寂しいので記念真紀子
>>1
5nobodyさん:03/12/06 01:10 ID:???
>>1
6nobodyさん:03/12/06 01:25 ID:iy9gcSc+
>>1
Z
7nobodyさん:03/12/06 01:44 ID:BlZVebqU
ユーザー認証ライブラリのお奨めってありますか?
8nobodyさん:03/12/06 01:50 ID:???
>>7
PHPLib
9nobodyさん:03/12/06 02:34 ID:???
>>7
pear AUTH
10 :03/12/06 03:47 ID:???
echoとprintの違いを違いを
11nobodyさん:03/12/06 03:58 ID:???
12nobodyさん:03/12/06 06:08 ID:???
4.3.4 for win バイナリマルチバイト版で文字コードを判別に失敗します。
mb_detect_encoding使用時にJISまたはUTF-8と誤認します。
おまえら,再現しますか?
13nobodyさん:03/12/06 06:09 ID:+CMc7Cjw
WebARENAのsuiteで、
セッションが多すぎる時にエラーが出るようになったので、
別のレン鯖のMySQLを使ってセッション機構を作ろうと思います。
そのため一意のIDを生成したいのですが、いい方法はないでしょうか?
自分としては、乱数でintのIDを生成→まだそれがなければ一意とする、
という単純な方法を考えたのですが、
有無を調べる行程をなんとかなくせないかな、と思いまして。
生成段階で一意であることが保証できるようなIDの生成方法はないものでしょうか?
14nobodyさん:03/12/06 07:24 ID:???
>>13
適当なFW探した方が効率よくないですか?
UUIDとか。
15nobodyさん:03/12/06 07:26 ID:???
>>13
uniqid()
16nobodyさん:03/12/06 10:10 ID:CCS3/yqA
一つ質問させてください。
プロバイダ等のWebサーバにアップロードしたPHPプログラムから、
自分のPCなどローカルのMySQLは動かせますか?
動かせるとしたら、どのようにすればいいのでしょうか?
17nobodyさん:03/12/06 10:18 ID:???
マニュアル読んでやってみれば分かる。
18nobodyさん:03/12/06 10:20 ID:???
>>16
MySQLにユーザを追加して、プロバイダーのWebサーバからの
アクセスを許可すれば良いが、実用的な速度は出ないと思うよ。
また、セキュリティ的にも・・・・。

DBで扱う内容が単純ならsqliteとか使ったら?

sqliteを語るスレ@データベース
ttp://pc2.2ch.net/test/read.cgi/db/1056956494/l50
19nobodyさん:03/12/06 10:22 ID:???
INSERTが異様に重いSQLITE。俺のせいなのか。
20nobodyさん:03/12/06 10:49 ID:???
>>19
それだけの状況説明から原因を特定するのはエスパー伊東でも無理。
21nobodyさん:03/12/06 10:52 ID:???
当たり前だろ。
2216:03/12/06 10:52 ID:???
ありがとうございます
さっそくやってみます
23nobodyさん:03/12/06 12:05 ID:???
>>12
autoは止めれ
24nobodyさん:03/12/06 12:39 ID:???
>>23
横レススマソ。
php.iniのinternal encodingはautoを避けたほうがいいってこと?
25nobodyさん:03/12/06 12:49 ID:???
>>15
私も横レスなんだけど。
このuniqid()ってどうやって一意性を確保してるのかな?
後、同一セッション以外でも(例えば次の日に実行しても)常にユニークなidが
発行されるのだろうか?不思議だ?
26nobodyさん:03/12/06 13:32 ID:???
>>25
ソースを見ての通りgettimeofday()を使って更に一意性を高めるために小細工してある。
確実に一意にしたいなら過去の履歴を取って有無を調べるしかないんじゃないの?
ランダムはどの程度ランダムか、って話にも繋がるけど。
27nobodyさん:03/12/06 13:42 ID:???
>>26
どうもありがとう。
乱数生成器に十分なシードを与えておけば、同時にキーを発行しても
大丈夫そうですね。
28nobodyさん:03/12/06 17:55 ID:???
えー本家のスレで1日待ってみましたが、すぐには返答がこないようなのでこちらで

http://f2.aaacafe.ne.jp/~nonoclub/howto/php_uploader.html
のダウンロード:オリジナル修正版 v2.0.d by nonoclub (2003/01/13)
http://f2.aaacafe.ne.jp/~nonoclub/howto/phpup20d.zip
がダウンロードできません…
あーばいん使ってもダメだったのですが、ファイル存在してます?

可能なら
$start_num = '0001'; //記事の開始番号(4桁)
$admindel_enable = 0; //投稿ファイルの管理者削除(1:使用する 0:使用しない)
$replaceext = ""; //未許可の拡張子を置き換える場合の拡張子(空文字の場合はアップ拒否)
$links = '|'; //リンクバー
$showmaxfilesize = 0; //サーバーにアップできる最大ファイルサイズの表示
↑これらをPHPのどこに追加すればいいか教えてください

ということです。
29php初心者:03/12/06 19:15 ID:yU8bFnLl
perlを今まで使ってきた者です。
perlと同じように正規表現マッチさせたいのですが、うまくいきません。

$aには次の値が入っています
\face_8\TOPModels.Skins.ex3P\ngsecret_8\false\queryid\64.2

ここで

if( preg_match("/\\queryid\\[0-9]+\.([0-9]+)/", $a, $matches) )

としても1を返してくれません。
perlとphpでまた文法が違うのでしょうか?
どなたか解決案をご教授くださいませ・・
30nobodyさん:03/12/06 21:03 ID:???
preg_match("/\\queryid\\\[0-9]+\.([0-9]+)/", $a, $matches)
31nobodyさん:03/12/06 22:02 ID:???
>28死んでもいいぞ。
32nobodyさん:03/12/06 22:03 ID:???
echo file("test.txt")[0];
たすけて
33nobodyさん:03/12/06 22:16 ID:mqtgAaOY
PHPには、自動アクセス禁止機能(キック機能?)のようなものはありますか?
友達がうちのサーバにアクセスできなくなったらしく、
「チャットでリロードしすぎたせいで、自動キックに登録されたらしい。」
と言っているのですが、解決法がわかりません・・・
そのような機能があるのか、またどこで設定できるのかわからないので...
34nobodyさん:03/12/06 22:19 ID:???
echo array_shift(file("test.txt"))
みなさんありがとう
愛してる

>>33
関係ない
その人がアク禁されただけだと思う。。
35nobodyさん:03/12/06 22:20 ID:???
>>33もどうぞ死んでしまってください
36nobodyさん:03/12/07 00:11 ID:???
長文失礼します。自作で日記帳を作っています。
日記1回分のデータをカンマ区切りで1行にまとめ、外部ファイルに保存し、
読み込み・書き換え・削除などのデータ管理をさせています。

ここで、4回に1回くらいの割合でデータファイルの中身が全て無くなったり、
二重処理をしたりします。( 例えば1件(1行)削除させると2件分してしまう )

submitの2度押しやリロードではなく、ファイルの読み書きの際にはlockをかけています。
全く同じ条件で動作させても、二重処理するときとしないとき(こちらのほうが多い)があり
混乱しています。どのような原因が考えられるでしょうか。
37nobodyさん:03/12/07 00:30 ID:???
>>36
ファイル読み書きの部分を抜き出してここに晒した方が解決は早いかと。
3836:03/12/07 00:33 ID:???
少し具体的には、
例えば[1,2,3,4]を[2,3,4,1]の順にさせる(先頭→最後へ)処理をしようとすると
[3,4,1,2]のように2回分やってしまうときがある、という感じです。

スクリプト先頭・処理をする関数を呼び出す直前・その直後の3箇所で
データを保持している2次元配列をvar_dump表示させたところ、
二重処理してしまっているときには
すでにスクリプト先頭の時点で、1度目の処理がされた状態になっていました。
何か考えがありましたら教えて下さい。よろしくお願いします。
39nobodyさん:03/12/07 00:47 ID:HduSA2z9
PHPスクリプトに他サイトのURLを渡して、
そのURLのページに含まれる文章を加工し、
自サイトのHTMLを自動生成して表示したいと思います。

この場合、「他サイトのURLの文字情報をgetする」
というのは、どの関数でできるかヒントを教えて下さい。
よろしくお願いします。
40nobodyさん:03/12/07 00:50 ID:???
聞くより検索したほうが速いぞ。
41nobodyさん:03/12/07 00:51 ID:AM1PQpbT
index.htmにフレームでphpファイルを埋め込んで
$_SERVER['HTTP_REFERER']を用いて一つ前のページ
のURLを取得しようとしたところ、全て
http://www.xxx.jp/xxx/index.htm
の様に表示されてしまい、index.htmにどこから
ジャンプして来たのかがわからなくなってしまいます。

index.htmのファイル名をindex.php等に変えず
一つ前のページのURLを取得するには、どうした
らいいですか?
4236 (1/2):03/12/07 00:55 ID:???
>>37
では、スレ汚し失礼します。書き直し部分の自作関数です。

$dDataはarray("20031207","タイトル","内容","画像URL");という感じです。
//引数:$filePath=データファイルの場所、$dData=日記1回分のデータ(配列)
//   $number=書き換えるのは何行目のデータか(int)
function rewriteDiary( $filePath, $dData, $number, $encoding = "SJIS", $s_encoding = "EUC_JP" ){
if ( $filePath == "" ) { return false; }
// CSVデータを2次元配列で返す関数
$allData = LoadCsvFile( $filePath );

$fp = fopen( $filePath, "w" );
if ( $fp == 0 ) { return false; }
flock( $fp, 2 );

// 書き換え前の日記のデータをまず削除
array_splice($allData, $number, 1);

// 書き換え後用の日記データの改行文字を削除
for( $i=0; $i < sizeof( $dData ); $i++ ){
$dData[ $i ] = ereg_replace( "[\r\n]", "", $dData[ $i ] );
}
4336 (2/2):03/12/07 00:55 ID:???
// 書き換え後用の日記データを全体の配列に追加
array_push( $allData, $dData );

// 日付(YYYYMMDD)をもとにクイックソートする関数(日付降順)
$allData = quickSort( $allData, DIARY_DATE );
// 新しい順にする
$allData = array_reverse( $allData );
// 行ごとにカンマで配列を1行に連結、文字コード変換、改行文字を加えてwrite
$newData = array();
for( $i=0; $i < sizeof( $allData ); $i++ ){
$newData[ $i ] = join( ",", $allData[ $i ] );
$newData[ $i ] = mb_convert_encoding( $newData[ $i ], $encoding, $s_encoding );
fwrite( $fp, $newData[ $i ]."\n" );
}
flock( $fp, 3 );
fclose( $fp );
unset( $allData );
return true;
}
// 以上です。
44nobodyさん:03/12/07 00:55 ID:???
javascでフレームトップのリファをとってPHPに渡す。
45nobodyさん:03/12/07 01:04 ID:???
>>39
file or file_get_contents
46nobodyさん:03/12/07 01:13 ID:???
>36
winじゃねーの?
4736:03/12/07 01:25 ID:???
>>46
ご指摘ありがとうございます。
win => Windowsのことでしょうか。
動作環境は OS:RedHat(7.1J) + Apache(1.3.29) + PHP(4.1.2) です。
48nobodyさん:03/12/07 01:42 ID:???
>>38
まだソース読んでないけど、スクリプトの先頭で1回目の処理が既に行われているなら、
ソース自体は問題なくてスクリプトのコールされるタイミングがおかしんじゃないの?
何らかの条件のときに2回呼び出されるとか。
4941:03/12/07 01:44 ID:AM1PQpbT
>>44
お答えくださってありがとうございます。
javascriptを使わなければ駄目ですか?
なるべくサーバー側で処理したいんですけども・・・


> javascでフレームトップのリファをとってPHPに渡す。

>> index.htmにフレームでphpファイルを埋め込んで
>> $_SERVER['HTTP_REFERER']を用いて一つ前のページ
>> のURLを取得しようとしたところ、全て
>> http://www.xxx.jp/xxx/index.htm
>> の様に表示されてしまい、index.htmにどこから
>> ジャンプして来たのかがわからなくなってしまいます。

index.htmのファイル名をindex.php等に変えず
一つ前のページのURLを取得するには、どうした
らいいですか?
5036,38:03/12/07 01:54 ID:???
>>48
ご指摘の通り、タイミングが原因かと思ったのですが、
この関数が呼ばれるのは全体で2箇所で、
2箇所はif文で隔てられているため、複数呼び出しは考えにくいです。

また、ソース中の$dData(1日記データの配列)中に画像ファイル名("数字.jpg")の要素があると
二重処理やデータ全消失のエラーが起こるようです。
$dDataの要素数の問題かと思いましたが、関数側の処理としては問題がないはずなので。。。
51nobodyさん:03/12/07 01:59 ID:???
>>49
ブラウザにとって、1つ前のページはindex.htmなのです。
index.htmげとー   --1回目のアクセス
HTML解析開始
frame set はけーん
frameげとー     --2回目のアクセス
52nobodyさん:03/12/07 02:03 ID:???
>49
リファラの仕様に文句があるならゲイツに言ってくれよ。

> index.htmのファイル名をindex.php等に変えず
ファイル名を変えたくないだけなら、AddType application/x-httpd-php .php .htm .html でごにょっとく手もある。
53nobodyさん:03/12/07 02:05 ID:???
> すでにスクリプト先頭の時点で、1度目の処理がされた状態になっていました。

処理前に処理されることはありえない。
5436:03/12/07 02:11 ID:???
>>53
>処理前に処理されることはありえない。

おっしゃる通り、ありえないので困っています。
なんとなくPHPをいじり始めてから1年半経ちますが、今回のようなことは初めてです。

必ず先頭でechoされるはずが(処理前ページのデータは正常)、
>>38に書いたとおりechoされずに2度目の処理に入ってしまっています。

読み込まれるファイル内容が最新のものではない?バッファリングされている?
と、変なことも考えましたが、、、原因が>>50に書いたようなことだとは分かってきました。
もう20時間くらいこの1つのバグにはまっています。。
5541:03/12/07 02:11 ID:???
ありがとうございます。自分なりにやってみます
56nobodyさん:03/12/07 02:25 ID:???
どーでもいいことですが・・・
PHP マニュアルのロゴは、いつから雪を被ってるんですか?
57nobodyさん:03/12/07 02:26 ID:???
>> 56
自分が気づいたのはおとといあたりだったような ...
58nobodyさん:03/12/07 02:30 ID:/OU0n//S
PHPマニュアル(日本語版)の、WindowsHelp形式のものを、
http://jp.php.net/get/php_manual_ja.chm/from/jp2.php.net/mirror
からダウンロードしたのですが、
( 「jp.php.net HappySize, Inc 」と「jp2.php.net snotch 」の2カ所ためしました)
いずれも、キーワードのタブをクリックしたときの、「キーワード一覧が文字化けしてしまっています。
他は、目次も本文も正常に表示されます。

これは、ファイルそのものがバグってるのでしょうか?あるいは自分の環境のせいでしょうか?
なお、自分の環境は、WindowsXPPro-SP1です。

よろしくお願いします。
59nobodyさん:03/12/07 02:34 ID:???
>> 58
試しにDLしましたが、同じような状況でした。
私はWindows2000-ProSP1です。
60nobodyさん:03/12/07 02:43 ID:???
>>57
どうもです。久しぶりに見たら変わってたもので。
ま、Google みたいなものですな。

>>58
確かに化けてるねぇ・・・当方 Win98(w
61nobodyさん:03/12/07 03:22 ID:???
>>58
その話は何度か出てるが、いっこうに直らない。
利用者いないんじゃないのか。
62nobodyさん:03/12/07 04:09 ID:???
>>36
スクリプトの文字コードとphp.iniのマルチバイト関係の設定はどうなってます?
LinuxなのでログファイルはEUC+LFで保存したいんですよね?
63nobodyさん:03/12/07 04:11 ID:???
>>61
使ってるよ。うちのインターネット接続環境はAirHなんで、重宝してる。
6436:03/12/07 04:24 ID:???
>> 62さん、ありがとうございます。

スクリプトはEUC+LFです。
実はデータファイルの文字コードはShiftJISにしています。
自分の友達が使うことを想定しているので、Windowsに合わせています。

>>42-43に書いてあるソースのところの、
 $allData = LoadCsvFile( $filePath );
のLoadCsvFileという自作関数内で、ShiftJIS->EUCに変換をして、
 $newData[ $i ] = mb_convert_encoding( $newData[ $i ], $encoding, $s_encoding );
で、またEUC->ShiftJISに変換し直して保存をしています。

サーバ管理者ではないのでphp.iniはわからないのですが、
phpinfo();では「Multibyte (Japanese) Support enabled」「http input encoding translation enabled 」と
書かれていました。
Configure Command は './configure' '--enable-mbstring'
'--enable-mbstr-enc-trans' '--with-apxs=/www/apache/bin/apxs'
'--enable-trans-sid' '--enable-versioning' '--with-gd' です。
よろしくお願いします。
65nobodyさん:03/12/07 04:42 ID:???
>>64
まだ起きてたのね。
ハマった時は寝て、リフレッシュすることも必要だぞ。

漏れが気になったのはphp.iniの[mbstring]のところで、
mbstring.internal_encodingやmbstring.http_input、mbstring.http_output
などがどうなっているかなんだがphpinfo()ではどう表示される?
6636:03/12/07 05:00 ID:???
>> 65さん、どうもありがとうございます。

phpinfo();では以下の通りでした。すべてno valueです。
Directive / Local Value / Master Value
mbstring.detect_order / no value / no value
mbstring.http_input / no value / no value
mbstring.http_output no value / no value
mbstring.internal_encoding / no value / no value
mbstring.substitute_character / no value / no value

もう3日間悩んでいて今日こそ解決したいと思っていましたが、
またしても持ち越しです。スクリプティング全体に問題があるのかもしれませんね。
お気遣いありがとうございました。今日は寝ることにします。
他の皆さんもありがとうございました。
67nobodyさん:03/12/07 05:11 ID:???
mbstring.language = Japanese
68nobodyさん:03/12/07 06:25 ID:???
>67
4.1.2には無いんじゃなかったっけ。
69nobodyさん:03/12/07 08:23 ID:???
ampache っつー mod_mp3 のフロントエンドを php-4.3.2-0vl3 で動かしたい
のですが、$hoge["dame"] とすべき場所で $hoge[dame] となっていると、
> Notice: Undefined variable: access in dame
のようなメッセージがでてしまいます。
いちおう、register_globals も On になっています。

php スクリプトに手をいれずに、php 設定ファイルのみの変更で済む方法が
あれば、教えて頂けますでしょうか?
70nobodyさん:03/12/07 08:30 ID:???
error_reporting = E_ALL & ~E_NOTICE
で解決しますた。
71nobodyさん:03/12/07 09:16 ID:???
phpファイルで、CSS切り替えスクリプトを使用したいんですけど、うまくいきません。
includeって、2回以上使えないんでしょうか。
72nobodyさん:03/12/07 09:51 ID:???
>>71
むしろ2回以上使えるので問題が発生する場合があります。

後、俺らはエスパーではないので星の数ほどあるその実装法(しかも間違い)の
どれをお前が採用したかなんて知りません。
7371:03/12/07 09:58 ID:???
>>72
レスありがとう^^

使えることが分かったので、いろいろいじって挑戦します。
74nobodyさん:03/12/07 12:18 ID:/OU0n//S
session_unset();
session_regenerate_id();
$_SESSION('hoge') = "fuga";

と同じこと、つまり、
いままでのセッション変数を全てクリアにし、
新しいセッションIDを発行し、そのIDとひも付けされた$_SESSION('hoge')に "fuga"を入れたいと思っています。

しかし、session_regenerate_id は4.3.2でしか使えないとのことで、
環境的に4.1.2しか使えないため、困ってます。

そこで、これと同じことを実現するには、どうすればいいのでしょうか?
教えていただけたら幸いです。
75nobodyさん:03/12/07 16:42 ID:1ljBj38k
36氏の質問ともしかしたら被っているのかもしれませんが、御容赦。
マルチバイトの正規表現文字列処理が思うように動きません。

------------------------------------------------------------
  if(mb_ereg_match("/^;/",$line)){
    continue;
  }

  $arr = mb_split("/[[:space:]]/",$line);

  if(_DEBUG){
    print $arr[1];
  }
------------------------------------------------------------

こんな感じのスクリプトを組んでいるのですが、mb_ereg_matchもmb_splitも
うまく動いていない感じです。
# arr[1]が空になってる。

$lineの文字列コードはShift-jisで、
mb_regex_encoding("SJIS");
mb_internal_encoding("SJIS");
は実行済みです。
PHPのバージョンは4.3.4です。
どうか、御教示お願いしますm(__)m
76nobodyさん:03/12/07 16:43 ID:???
すいません、sage忘れました…(__;
77nobodyさん:03/12/07 16:48 ID:???
>75とりあえず余計な/を取れよ。
7875:03/12/07 17:09 ID:???
解決しました、感謝。>77
preg_splitだと/がいるのになぁ…
79nobodyさん:03/12/07 17:29 ID:YpZVNXgY
$fp = fopen("./counter.dat", "r+");
$cnt = fgets($fp, 64);
$cnt++;
fseek($fp, 0);
flock($fp,LOCK_EX);
fwrite($fp, $cnt);
fclose($fp);
for($i = 0; $i < strlen($cnt); $i++){
$value[ ] = substr($cnt, $i , 1);
}
for($j = 0; $j < count($value); $j++){
print "<img src=gif/$value[$j].gif><br>";
}

現在↑のような画像カウンターがあるのですが、
<img >タグを使って他のHTMLファイルから一桁
だけ数字を表示させるようにするにはどのよう
にしたらよいですか?
80nobodyさん:03/12/07 17:40 ID:Zfc255Ar
質問よろしいでしょうか。

いま、全ページ一日1200万PVほどある企業向けWebサイトを
構築しています。
全ページ共通化されているコンテンツメニューなど、けっこう頻繁に
入れ替わるのでphpで構成しようと考えています。

よくページ上部で共通化されているロゴマークやメニュー、
ページ最下部にある「Copyright xxxx」といった情報は
Includeを使って更新を一発で行おうと考えているのですが、
このIncludeはサーバ負荷かかりますでしょうか?

apacheのmod_layoutを使おうとも思ったのですが、一部のページは
メニュー不要だったりするので、なるべくメンテナンスはラクに
したいと考えていまして・・・。

一日1000万PV以上のサイトについて、includeを使うのと
HTMLで1ファイルづつ作業するのと、どちらベターか、
どなたかご教授頂けると助かります。

81nobodyさん:03/12/07 17:42 ID:???
>>79
何桁目が欲しいのかを呼び出し時に指定するようにして、
<img src="counter.php?order=1">のように呼び出す。
スクリプトではorder(桁目)に応じて$value[]を返すようにする
82nobodyさん:03/12/07 17:47 ID:???
>>80
メンテ要員のしつとか鯖のスペックにもよるんじゃ?
スクリプト組んでhtmlを吐き出すようにすりゃいい。
8380:03/12/07 18:10 ID:???
>>82
レスありがとうございます。

マシンスペックは、P3-1Gにメモリが512Mです。
現行Webのリニューアルなので、いかに効率よく更新が
出来るようにするかを重視しています。

PHP Acceleratorなども入れてみようと検討中なのですが、
一日数百万以上のアクセスである場合、Includeでヘッダやフッタ周りを
アクセスの度に呼び出すとそれなりにマシン負荷かかるかなと
思った次第です。

html吐き出しで問題なければ、このまま作業続けてゆこうと思います。
アドバイスありがとうございました。


8479:03/12/07 18:28 ID:9gUoKIqF
>>81
お答えいただきありがとうございます。

再びすいません。
一桁目を取得するために、スクリプト内を以下のように
したのですが、
if($_GET[order] == 1){
print "<img src=$f_pass/$value[1].gif>";
}

HTMLで
<img src="counter.php?order=1">としたところ、
一桁目の画像を読み込みません。
スクリプト内をどのように変えたらよいのでしょうか?
85nobodyさん:03/12/07 19:17 ID:???
>>83
実際に同じスペックのマシンで負荷をかけて検証すればいいんじゃないですか?
仕事の丸無げはダメポ。
86nobodyさん:03/12/07 19:18 ID:???
mb_ereg_matchって、常に行頭マッチングなんですか?

$str = " AAA BBB"

という文字列があって(AAAとBBBの前には半角空白)、この文字列に
AAAをマッチングしようとすると、

mb_ereg_match("[[:space:]]+AAA",$str);
はtrueになるけど、
mb_ereg_match("AAA",$str);
だとfalseになっちゃう。AAAをBBBに変えるとどちらもfalse...
これちょっと困るな…

下の記述でtrueを得られる他の関数って無いものですかね…
87nobodyさん:03/12/07 19:40 ID:???
<input type="submit" name="ahyahya" value="submit">
このname="ahyahya"って受け取れますかね。。
88nobodyさん:03/12/07 20:03 ID:???
>>87
やってみりゃいいのに…
受け取れるよ。
8987:03/12/07 20:09 ID:???
んと
valueって$submitとして受け取れますよね。
そんな感じでnameにもあるかな。。とおもって。
90nobodyさん:03/12/07 20:15 ID:???
>>79 >>81 >>84
素朴な疑問
<img src="counter.php?order=1">だとスクリプト内ってGETでいいんだっけ?
91nobodyさん:03/12/07 21:22 ID:???
>>87 >>90
やってみりゃいいのに・・・
print_r($_POST);
print_r($_GET);
9274:03/12/07 21:30 ID:/OU0n//S
>>74
誰か、分かるかたいないでしょうか・・・?
9387:03/12/07 21:47 ID:???
http://2ch.asage.cc/php/thread/index.php
http://2ch.asage.cc/php/thread/threads.dat

こんな感じのをやりたいんです。
で、修正をするときのsubmitボタンを一つに統一したいって事だったんです。
94nobodyさん:03/12/07 21:53 ID:???
あら。この板って9桁スレッドがあるのね。。
95nobodyさん:03/12/07 21:55 ID:???
>>74
session_set_save_handler
でユーザー任意のSESSION使うようにしてやれば可能じゃないかね?
ちょっと細工が面倒だけど。
96nobodyさん:03/12/07 23:07 ID:???
>>87
なんかイマイチ分からないんだが…
<input type="submit" name="ahyahya" value="submit">
<input type="submit" name="ihihi" value="submit">
<input type="submit" name="uhyohyo" value="submit">

でどのsubmitボタンが押されたか知りたいということか?

foreach ( $_POST as $key => $value ) {
if ($value=="submit") {
$ans = $key;
break;
}
}

なんか意味ないな…違うくさい。眠いから寝てから ノシ
9779:03/12/07 23:36 ID:jBnY2MyE
ごめんなさい もう一度質問させてください。

<img src="counter.php?order=1">
はphpスクリプトでどのようにして読み込んだらよいでしょうか?
98nobodyさん:03/12/07 23:50 ID:???
URLの文字列をPOSTしてHTMLの中にあるTITLEを拾いたいのですが、
何か良い命令があったら教えてください。

POST→HTMLを拾う(※1)→正規表現で<title>hoge</title>をゲットして加工
という流れになると思いますが、※1の部分でどうすればいいのかわかりません。
99nobodyさん:03/12/07 23:57 ID:???
100nobodyさん:03/12/08 00:40 ID:???
101nobodyさん:03/12/08 01:04 ID:???
>>89
<? print_r($_GET); ?>
<form action="<?= $PHP_SELF?>">
<input type="submit" name="a" value="on">
<input type="submit" name="b" value="on">
<input type="submit" name="c" value="on">
</form>
これ動かしてみてみ。PHPどころかHTMLの話。

>>97
counter.php?order=1 は $_GET['1']としてPHPの中で使える。
>>84のやり方で合ってるはず。
(数字の1じゃなくて文字の'1'だとか、value[]には上の桁から入ってるとか、いろいろ問題あるけど動くはず。)
102nobodyさん:03/12/08 07:07 ID:???
PHP/5.0.0b3-dev on win2kで、Null以外を入れた変数をparse_str()すると
メモリエラーで終了してしまうんですが、だれかちょっと直してもらえませんか。
103nobodyさん:03/12/08 10:26 ID:???
>>84
それだとこうなるんじゃない。
<img src="<img src=$f_pass/$value[1].gif> ">
104nobodyさん:03/12/08 10:34 ID:???
>>84
if($_GET[order] == 1){
header("Content-type: image/gif");
readfile("$f_pass/$value[1].gif");
exit;
105104:03/12/08 10:36 ID:???
}
106nobodyさん:03/12/08 11:45 ID:???
空の配列を41個作成したいのですが

$array_month=array(" "," "," ",・・・);
これを延々続けないといけないのでしょうか?
107nobodyさん:03/12/08 12:06 ID:???
JpGraphとPEAR DBを使っているのですが、グラフを描画するスクリプト内で
DB.phpをインクルードすると「Constant CACHE_DIR already defined」という
エラー画像が出力されてしまいます。

もちろん定数CACHE_DIRなんてスクリプト内では使ってませんし、DB.php内にも
見当たりません。解決法、または回避法などはないでしょうか?
108nobodyさん:03/12/08 12:19 ID:???
$arr = array_pad(array(), 41, 0);

list($arr[], ) = each(range(0,41));

for ($i=0; $i<41; $i++) $arr[] = null;

とかw。
109nobodyさん:03/12/08 12:47 ID:???
>>108
3つも方法教えていただきありがとうございます!
少しレベルアップしました。
110nobodyさん:03/12/08 12:52 ID:???
2個目うごかないわ。
配列を返す関数とevalで何か思いつきそうだけど、素直に$arr = array_fill(0,41,null)。
111nobodyさん:03/12/08 13:16 ID:pU8gaUpi
ある文字列を暗号化して、それをまた元の文字列に戻すにはどうすればいいですか?
crypt使うと戻せないし、md5などもどのように使ったら良いか解らないです
112nobodyさん:03/12/08 13:35 ID:???
ここに暗号化の手法とデコードの仕方を書いたら暗号の意味が無いと思うが。
113nobodyさん:03/12/08 13:40 ID:???
>>111
cryptもmd5も暗号化するためじゃなくてハッシュを求めるものだから
元には戻せない
114111:03/12/08 13:55 ID:???
>>112-113
レスありがとうございます。
ということは、自分で暗号化ルーチンみたいなものを作るしかないですね・・・
115nobodyさん:03/12/08 13:58 ID:???
自分で作ったアルゴリズムなんてすぐ破られるから
機密性をあげようと思うなら公開されているアルゴリズムを使った方がいい
116nobodyさん:03/12/08 14:05 ID:???
MD5が復号できたらすさまじい圧縮率になるな。
117nobodyさん:03/12/08 14:24 ID:???
日記スクリプト作成中です。
自分が作ってるスクリプトは、改行ごとに<p></p>で括り、「~」を<br />に変換するようにしています。
ところが、「ミ」「欲」「降」などを入力すると、「・br />」となるようになってしまいました。
これらの原因は、「ミ」などに「~(\x7e)」が含まれている所から来ているようです。
こういうことが起こらないように、「~」だけを変換するにはどうすればいいでしょうか?
文字コードはShift-JISです。
118nobodyさん:03/12/08 14:29 ID:???
実装の説明は一切抜きかよ(w
119nobodyさん:03/12/08 14:33 ID:???
>> 改行ごとに<p></p>で括り

勘弁してください。
120nobodyさん:03/12/08 14:36 ID:???
つーかネタか。上湯麺くいてえです。
121117:03/12/08 14:39 ID:???
なんかマズいですか?
最初はPukiWikiのテキスト整形エンジンをそのまま使おうと思ったんですが、よくわからなくて・・・。

------------------------------------
あいうえお。
かきくけ~こ。
+さ
+し
+す
------------------------------------

と、すると、

------------------------------------
<p>あいうえお</p>
<p>かきくけ<br />こ</p>
<ul>
<li>さ</li>
<li>し</li>
<li>す</li>
</ul>
------------------------------------

となるようにしています。
122nobodyさん:03/12/08 15:07 ID:???
テンネン?
プログラミングの話をしようぜ。
123nobodyさん:03/12/08 15:12 ID:7eBZskEq
いよいよ信Onが始まる時間だな・・・ハァハァ
124117:03/12/08 15:13 ID:???
とりあえず自分が書いたソースを書いときます。
かなり初心者なので、直すべき所はいろいろありますが・・・。

function textconvert ($string)
{
$flag['li'] = 0;
for ($i=0; $i<count($string); $i++)
{
if ( substr($string[$i], 0, 1) == '+' )
{
if ($flag['li'] == 0)
{
$result.= "\t\t\t<ul>\n";
$flag['li'] = 1;
}
$string[$i] = str_replace("ミ", "\\ミ", $string[$i]);
$string[$i] = str_replace("欲", "\\ほ", $string[$i]);
$string[$i] = str_replace("降", "\\こ", $string[$i]);
$string[$i] = str_replace("~", "<br />\n", $string[$i]);
$string[$i] = str_replace("\\ミ", "ミ", $string[$i]);
$string[$i] = str_replace("\\ほ", "欲", $string[$i]);
$string[$i] = str_replace("\\こ", "降", $string[$i]);
$result.= "\t\t\t\t<li>".chop(substr($string[$i], 1))."</li>\n";
}
125117:03/12/08 15:14 ID:???
else
{
if ($flag['li'] == 1)
{
$result.= "\t\t\t</ul>\n";
$flag['li'] =0;
}
$string[$i] = str_replace("ミ", "\\ミ", $string[$i]);
$string[$i] = str_replace("欲", "\\ほ", $string[$i]);
$string[$i] = str_replace("降", "\\こ", $string[$i]);
$string[$i] = str_replace("~", "<br />\n", $string[$i]);
$string[$i] = str_replace("\\ミ", "ミ", $string[$i]);
$string[$i] = str_replace("\\ほ", "欲", $string[$i]);
$string[$i] = str_replace("\\こ", "降", $string[$i]);
$result.= "\t\t\t<p>".chop($string[$i])."</p>\n";
}
}
if ($flag['li'] == 1) { $result.= "\t\t\t</ul>\n"; }
return $result;
}
126nobodyさん:03/12/08 15:15 ID:7eBZskEq
str_replace()はマルチバイトに対応してないぞ。
127117:03/12/08 15:29 ID:???
mb_ereg_replaceでもうまくいきませんでした。
128nobodyさん:03/12/08 15:37 ID:???
設定してないからだろ。
mb_regex_encoding('SJIS');
129117:03/12/08 15:46 ID:???
>>128
うまくいきました!ありがとうございます。
勉強しなおしてきます・・・。
130nobodyさん:03/12/08 15:46 ID:???
スキルがないならShift_JISなんか使うなよ。スキルがあったらShift_JISなんて使わないだろうが、、、
131nobodyさん:03/12/08 15:57 ID:???
なんでみんな素直にEUC使わないのかねぇ…
132nobodyさん:03/12/08 15:59 ID:???
つーか、醜いstr_replaceの列挙にも誰か突っ込んでやってくだちぃ。
マニュアル見てないんだろうなぁ...
133nobodyさん:03/12/08 16:00 ID:???
まだ98やMeつかってて、Unicode・Eucjpは化けてて読めませんがなんですかこれっていうユーザが何ぼかおる。
134nobodyさん:03/12/08 16:01 ID:???
メモ帳で編集できないから
135nobodyさん:03/12/08 17:03 ID:pboUkWBG
ファイルを読み込んで、そのファイルが何行あるかを調べるにはどうすれば良いんでしょうか?
136nobodyさん:03/12/08 17:08 ID:???
>>135
$text = file('filename');
$n = count($text);
137nobodyさん:03/12/08 17:14 ID:???
>>135
マルチポスト野郎め…
138nobodyさん:03/12/08 17:46 ID:???
ヒアドキュメントを使ってるんだけど、なぜか1って数字が表示される。
なんでー?
$text = print <<<EOM
<p>hogehoge</p>
<p>hogehoge</p>
EOM;

print $text;

<p>hogehoge</p>
<p>hogehoge</p>
1

ってな感じ。
139nobodyさん:03/12/08 17:50 ID:???
printは出力に成功すると true を返すから。
140nobodyさん:03/12/08 17:57 ID:???
>>138
1行目のprintはいらない。
141nobodyさん:03/12/08 18:01 ID:???
おはよう。今日もマニュアル代わりに質問かカス供。
142nobodyさん:03/12/08 18:05 ID:???
日が暮れた頃にお目覚めか。
引き篭もりは気楽でいいやね。
143nobodyさん:03/12/08 18:15 ID:???
「マニュアル代わりに回答か」ならわかるが
144nobodyさん:03/12/08 18:25 ID:???
回答してる人間をカス呼ばわりかよウンコ野郎
145nobodyさん:03/12/08 18:33 ID:???
phpは何の略か答えろチンカス供。
146nobodyさん:03/12/08 18:37 ID:???
大喜利はお笑い板あたりで。
147nobodyさん:03/12/08 18:58 ID:???
内部全部処理して最終的なブラウザ向け出力だけSJISでやるのが理想だけど、PHPだと難しいかも。
(テンプレート+ロジック)の全体を最終出力(文字コード変換)用スクリプトで囲ってやるかな?
148nobodyさん:03/12/08 19:02 ID:???
mbstring.http_output = 'SJIS' で十分。
149nobodyさん:03/12/08 19:05 ID:???
つーか本7はここに来るなよ。
150nobodyさん:03/12/08 19:10 ID:???
>>148
自分でphp.iniいじれない場合は無理では?
151nobodyさん:03/12/08 19:15 ID:???
>150
mb_http_output('UTF-16'');

ショボイ奴のことなんか知るかよ。
バッファ捕まえてJcode-le.phpでも使っとけ。
152nobodyさん:03/12/08 19:18 ID:???
本7やマニュアル読まない輩にレスするのは止めて下さい。果てしなく不毛にログが流れます。
153nobodyさん:03/12/08 19:23 ID:9m5nHctB
ん?あんたらもう10スレ以上も従順な人力検索エンジンもどきとして役に立ってくれてるじゃん いつもありがとう(^o^)
これからも頑張ってね
154nobodyさん:03/12/08 19:25 ID:???
劣等さを晒して何を喜んでんだろうねこのバカは。
155nobodyさん:03/12/08 19:27 ID:9m5nHctB
技術向上に役立たせてあげてるんです。感謝してくださいρ(^^*)
156nobodyさん:03/12/08 19:29 ID:???
話がかみ合ってないぞ。
こういうやつらって何で判で押したように日本語の読解に難があるのかね。

>>152
http://www.excite.co.jp/search_stream/filter_off/
157nobodyさん:03/12/08 19:31 ID:???
読解もそうだが、文章つづれてないことには触れないのかw
158nobodyさん:03/12/08 19:39 ID:???
      (  _,, -''"      ',             __.__       ____
   HA   ( l         ',____,、      (:::} l l l ,}      /      \
   HA   ( .',         ト───‐'      l::l l l l l     l        │
   HA   (  .',         |              l::|二二l     |  HA こ  .|
       ( /ィ         h         , '´ ̄ ̄ ̄`ヽ   |  HA や │
⌒⌒⌒ヽ(⌒ヽ/ ',         l.l         ,'  r──―‐tl.   |  HA つ │
        ̄   ',       fllJ.        { r' ー-、ノ ,r‐l    |  ! め │
            ヾ     ル'ノ |ll       ,-l l ´~~ ‐ l~`ト,.  l        |
             〉vw'レハノ   l.lll       ヽl l ',   ,_ ! ,'ノ   ヽ  ____/
             l_,,, =====、_ !'lll       .ハ. l  r'"__゙,,`l|     )ノ
          _,,ノ※※※※※`ー,,,       / lヽノ ´'ー'´ハ
       -‐'"´ ヽ※※※※※_,, -''"`''ー-、 _,へ,_', ヽ,,二,,/ .l
              ̄ ̄ ̄ ̄ ̄       `''ー-、 l      ト、へ
159nobodyさん:03/12/08 19:47 ID:???
>>156
さっきから「前髪 パッツン 画像」がしつこいな。
160nobodyさん:03/12/09 00:28 ID:???
161nobodyさん:03/12/09 06:03 ID:???
$hour = (localtime(time))[2];
if(time > (stat("check.txt"))[9] + 60){#1分以上やってくれてない場合
open(WRITE, ">> check.txt");
if(flock(WRITE, 6) != 0){
print WRITE localtime(time) . "\n";
--------俺がやらせたいこと---
}
close(WRITE);
}
こんな風にcheck.txtに最後にやった時間記録してスクリプトが呼ばれるたびに
最後にやった時間チェックして一分以上やってなかったら仕事やらせて
やらせた時刻をcheck.txtに記録ってふうにしてるPERLスクリプトがある。
これをPHPにしたいんだがさっぱりわかりませぬ。
どなたかご教授を。m(--)n
162nobodyさん:03/12/09 06:14 ID:???
>>161
ファイルアクセス時刻を参照するのが手っ取り早いような。
俺もPHPでそう言う事やっているが、簡単だぞ。
163nobodyさん:03/12/09 06:46 ID:???
>162
取得してるやん。
phpならstat()よりfilemtime()、localtime()よりdate()のほうがスッキリするけど。

>161
さっぱりわからんと言われても・・。全部書けってことなら別のスレでどうぞ。
164nobodyさん:03/12/09 07:13 ID:???
武富士おわったな。
165nobodyさん:03/12/09 08:32 ID:???
header(location
でリダイレクトするときに、
リダイレクト先に値を渡したいのですが
URLからGETで渡す以外にはどのような方法がありますか?
166nobodyさん:03/12/09 08:33 ID:???
>>165
session や cookie を使っては?
167nobodyさん:03/12/09 08:51 ID:???
$hour = date('h');
if ( time() > filemtime('check.txt') +60 ) {
  $fp = fopen('check.txt', 'a');
  if ( flock($fp, LOCK_EX) ) {
    fwrite($fp, localtime());
    /*--- todo ---*/
  }
  fclose($fp);
}

こんな感じ。>>161に似るように書いたけど、
この書き方だとエラー処理ができてないので、見苦しいエラーが出る可能性あり。
あと、
> print WRITE localtime(time) . "\n";
は何の処理なのか分からなかった。何を追記?
localtimeは配列を返すので、エラーが出て、ファイルには array と出力される。

化けてる3箇所については適当に想像した。
168nobodyさん:03/12/09 09:01 ID:???
ごばくしたーと思ったらこっちでもよかったのか。

win2000 + php500b2でSqlite試してるんですが、適当にINSERT INTO mytable VALUES('234234234');とか
繰り返すと100行入れるのに20秒くらいかかります。selectは別段不満のない速度です。
Mysqlと比べると異常なんですが、、。
なんかコツないでしょうか。
文字コードはUtf-8。セレ733MHz, 196MBメモリでやってます。
169nobodyさん:03/12/09 09:03 ID:???
あと、ロック解除忘れてますた。>>167 flock($fp, LOCK_UN);
170165:03/12/09 09:04 ID:???
>>166
POSTは使えないのでしょうか?
171nobodyさん:03/12/09 09:05 ID:???
どうやって使うんだ。
172166:03/12/09 09:08 ID:???
>>170
使えるなら166みたいなレスしませんって。
173nobodyさん:03/12/09 09:13 ID:???
webprog初心者質問のほうでやってくれよ。
174nobodyさん:03/12/09 09:22 ID:751nlK79
フォームからの値をログファイルに書き込んだ後に、値を一定秒数だけ
表示して、入力ページへリダイレクトさせたいんですけど・・・

今は、テンプレートのhtmlを用意して、それをmetaタグRefreshを使って
るんですけど、クライアントサイドでのリダイレクトを使わずにやる
方法ってありますか?

header("Location:〜")だと、headerの前で出力してるから無理だし・・・
175nobodyさん:03/12/09 09:27 ID:???
クライアントが要求もしていないファイルを送りつけてくるようなのをサーバーと呼べるのか。
176nobodyさん:03/12/09 09:40 ID:???
>>174
Javascript使えば?
177nobodyさん:03/12/09 09:53 ID:751nlK79
>>175
俺に言ってるんですよね?
えーと、今、画像掲示板を作ろうとしてて、必須項目が未入力やファイルサイズが
設定より大きい場合に、そのエラーをログに保存した後に、エラー内容を一定時間
(数秒間)表示して、元の入力ページにリダイレクトさせたいんです。
エラー表示をクライアントは要求してないかもしれないんですが、何も表示させず
突然入力ページにリダイレクトさせるのも、なんだかなぁ〜って感じなのでこういう
仕様にしたいのです。

>>176
JavaScript や、metaタグなどのクライアントサイドでのリダイレクトの場合、
ユーザーがそれを切ってたらリダイレクトしないので、どうにかサーバサイドで
やりたいのですが・・・
178nobodyさん:03/12/09 09:56 ID:???
> エラー表示をクライアントは要求してないかもしれないんですが、何も表示させず
> 突然入力ページにリダイレクトさせるのも

天然ボケもお腹いっぱい。開いた口がふさがらない。
179nobodyさん:03/12/09 09:58 ID:???
いいからPHPの話をしようぜ。
180176:03/12/09 09:59 ID:???
>>177
そういう場合は「このページは自動的に移動します。移動しない場合はこちらをクリック・・・」
て書いておけばいいじゃん。
181nobodyさん:03/12/09 10:06 ID:???
常人をはるかにしのぐ、信じられない発想力によって、ログが流されていくことに、何かえたいの知れない無常感がある。
182nobodyさん:03/12/09 10:08 ID:???
もしやhttpを知らないのか・・・。
183177:03/12/09 10:19 ID:???
つまり、今の方法以外はなさそうですね。
ありがとうございました。
184nobodyさん:03/12/09 10:22 ID:5gjkqVTX
>>183要約しちゃったよ
185nobodyさん:03/12/09 10:27 ID:???
ハナから学習しようってタイプじゃないんだ。掘っとけ。
186nobodyさん:03/12/09 11:47 ID:???
・・・世の中にはこういう人もいるんだな
187177:03/12/09 12:51 ID:???
また釣られましたか…懲りませんね君らも
188176:03/12/09 12:57 ID:???
>>187
マジレスするんじゃ無かったよ。
189165:03/12/09 13:19 ID:???
おいおい俺にもマジレスしてくれよ
190nobodyさん:03/12/09 15:09 ID:IrWTYwOe
>>167
たぶん時刻をcheck.txtに一行づつ記録して次に一分たってるかたってないか比較するんだろう。
if(flock(WRITE, 6) != 0){は二重に走らないようにしてるのかと思われ
191nobodyさん:03/12/09 15:16 ID:IrWTYwOe
元ネタ→iMonaスクリプト
$hour = (localtime(time))[2];
if(time > (stat("check.txt"))[9] + 60*60*24 && 4 <= $hour && $hour <= 6){#1日以上消去されていない場合
open(WRITE, ">> dat/check.txt");
if(flock(WRITE, 6) != 0){#ロックされていない時(二重にdatの消去コマンドが走るのを避ける)
print WRITE localtime(time) . "\n";
system("find $dat/ -type f -amin +60 -exec rm {} \\;");
}
close(WRITE);
}

ようは指定した時間間隔にJOBを行わせたいわけだな。
俺PERLしかわからんから後任せた↓
192nobodyさん:03/12/09 15:18 ID:AMt6pk4l
PHP で、
ユーザー登録(メールアドレス入力) -> 入力されたメールアドレスに
メール送信(認証文字列みたいなものを付加)

そのメールに送られてきた認証文字列を入力すると、
ユーザー登録完了
みたいなページを作ろうと思っているのですが、そういった事を行なう
サンプルなどは存在しますか? あればそれを有効活用したいのですが。。
193nobodyさん:03/12/09 15:27 ID:???
「有効活用」って…ただ「パクる」だけでしょ?

モノは言いようですね。
194nobodyさん:03/12/09 15:31 ID:???
>>192
あるけどDB絡むからお前の環境次第。
195nobodyさん:03/12/09 15:35 ID:???
>>193
「パクるな」と明示されていたり、ライセンスがそうなっているものを
こっそり「パクる」わけじゃなく、「パクってもいいよ」的に公開されている
ものをありがたく「パクら」せて頂いて何か問題でも?
公開している人も、了承しての事だと思いますし。
まー「パクる」って言葉はあれだと思いますが >>193.

196nobodyさん:03/12/09 15:37 ID:???
>>194
DB は postgresql or mysql ならどちらでも問題ないです。
公開されている URL 教えて頂けませんか?
197nobodyさん:03/12/09 15:49 ID:???
>190
ファイルの最終更新で1分経ってるかどうか判定してるんだから、それはちょっと
わからん処理だなあ。$hourもほったらかしだし。

if ( time() > @filemtime('check.txt') + 60 ) {
  if ( @flock($fp = @fopen('check.txt', 'a'), LOCK_EX) ) {
    fputs($fp, time() . "\n");
    /* 処理 */
    flock($fp, LOCK_UN);
    fclose($fp);
  }
}

でいいのでは。
あと、flock()の6はどんなロック?
198nobodyさん:03/12/09 15:53 ID:???
P、PHPの、PHPの話、話を、話を・・・・しよーぉぉぉぉおおおおおおおおおおおぅ
199197:03/12/09 15:56 ID:???
処理順ちがった、、吊ってくる。

if ( time() > @filemtime('check.txt') + 60 ) {
  if ( @flock($fp = @fopen('check.txt', 'a'), LOCK_EX) ) {
    fputs($fp, time() . "\n"); flock($fp, LOCK_UN); fclose($fp);
    /* ゾヌ */
  }
}
200197:03/12/09 15:59 ID:???
if ( time() > @filemtime('check.txt') + 60 ) {
  touch('check.txt');
  /* ギコ */
}

ファイルの中身つかわんならこんでええやろ。
201nobodyさん:03/12/09 16:02 ID:???
もうバッチファイルでいいじゃんか。
202nobodyさん:03/12/09 16:54 ID:???
なんでテンション下がってきてるんだよw
203193:03/12/09 18:43 ID:???
>>195
別に問題はありませんが?
ただ、「有効活用」と書いてあると
「無駄になっているものを活用してやる」
みたいな感じを受けるのでね。
普通に
「使いたい(利用したい)と思うのですが」
って書けばいいんじゃないかな、と。

>>192
マジレスすると、そんなに難しくないような気がするんですが。
小規模なら(ただの有効メアドチェックだけとか)DB使わなくても
行けると思うし。
まぁ、簡単に作れても既存のものがあればそれ使うのが
一番早いじゃんか、と言われればそれまでだが。
204nobodyさん:03/12/09 19:08 ID:???
>>200
Parse error: parse error in /virtual/qwe/public_html/test.php on line 3
205nobodyさん:03/12/09 19:37 ID:qAQMw3aN
指定したURLに飛ばすのに、
header( "Location:http://hoge.com" );
としても、

Cannot add header information - headers already sent by (output started at /home/public_html/hoge.php:19) in /home/public_html/hoge.php on line 51

というエラーが出てしまいます。
51行目に、header文を書いています。
なぜURLに飛ばないのでしょうか?
使い方がおかしいでしょうか?
お願い致します。
206nobodyさん:03/12/09 19:50 ID:???
>>205
せっかくエラーメッセージを出してるんだからメッセージを読もうよ

すでに何かの文字を出力していてヘッダーは出力済みだから
その時点でLocationヘッダーは出力できないんだよ
207nobodyさん:03/12/09 20:15 ID:???
別サーバー内のサイトから特定の部分を抜き出して来たいのですが、PHPで実現することは出来ますか?
出来るのでしたら、ヒントが欲しいです。
208nobodyさん:03/12/09 20:23 ID:???
209nobodyさん:03/12/09 20:28 ID:???
>>205
1行目に書け
210nobodyさん:03/12/09 20:30 ID:qAQMw3aN
>>206
入力フォームのあるhtmlファイルと、処理を行うphpファイルを分けることでうまく飛ばすことができました。
phpファイル一つに、フォームも処理もまとめると、どうしてもできませんでした。
知らずに何か出力してしまっているのでしょうか…
送信ボタンくらいしか思いつかないのですが…
211nobodyさん:03/12/09 20:34 ID:???
>>209

単にエラメコピペしただけでつ。
212nobodyさん:03/12/09 20:40 ID:qAQMw3aN
>>206>>209
色々いじりまくっていたら、なんとか一つのphpファイルで全ての処理ができました。
結局何があのエラーをだしていたのかがわかりませんでしたが、勉強点として残しておきます。
アドバイスをありがとうございました。
213nobodyさん:03/12/09 21:35 ID:???
とりあえずどうしてそのエラーが出たか
考えておくのが後のためにも吉。
214nobodyさん:03/12/09 21:59 ID:???
>>213
わかりました。
後のためにも、復習(?)して、原因をつきとめてみたいと思います。
さらに上達する事を目指して…
215室長 ◆VVVF/Nq4YU :03/12/09 23:53 ID:LN+ISMr9
すみません、教えていただきたいです

CGIよりPHPのほうが便利そうなので始めてみたのですが、何とも上手く動きません
http://e-jts.com/~shitucho/php/
この中のphpinfo.phpなのですが、ファイルのダウンロードのダイアログが開いてしまいます
サーバーではPHPは利用できることになっているみたいですし、アスキーモードで転送もしました。
これは原因は何か教えていただけないでしょうか?
216nobodyさん:03/12/09 23:56 ID:???
217室長 ◆VVVF/Nq4YU :03/12/09 23:57 ID:???
と、いうと、やっぱり通常では考えられないような異常なのでしょうか?
どの本を読んでも、こういった症状は出てないですし、、、
218165:03/12/10 00:01 ID:???
セッションつかおうと思いました。
session_start();
session_register("var1");
header("location....php".SID);
としてリダイレクトするわけですが、
リダイレクト先にSIDがわたっていない模様です。
アドレスバーには
http://hogehoge.com/ses.php?
としか表示されてくれません。
何か特別な方法を用いるのでしょうか?
219nobodyさん:03/12/10 00:08 ID:???
>>215
鯖の設定の問題なんだから鯖の管理者に聞け
220室長 ◆VVVF/Nq4YU :03/12/10 00:10 ID:???
>>219
わかりました。ありがとうございました

三時間も無駄にしてしまった、、、
221nobodyさん:03/12/10 01:54 ID:???
>218
ところでSIDって定数?
222nobodyさん:03/12/10 02:02 ID:tmH7rkV3
223nobodyさん:03/12/10 02:06 ID:tmH7rkV3
>218
Var_dumpしてみたか? マニュアルにはこう書いてある。

> クライアントが正しいクッキーを送信してこなかった場合にのみ
> SIDが定義されるということに注意してください
224nobodyさん:03/12/10 02:21 ID:???
> header("location....php".SID);
ブラウザの中の人も大変だな
225nobodyさん:03/12/10 02:23 ID:tmH7rkV3
つーかお前165かよ。
分からないことが出てくる度に逐一質問するのはよせ。
ここはお前専用サポートすれではないし、お前自身の技術も向上しない。
面倒なようでもマニュアルに一通り目を通し、サンプルを読み、必要な分野の
知識を自分で学ぶことを覚えるのが、スクリプトを書けるようになる一番の近道。
次に404 obj not foundが返ってきますとか質問したらマジしばきたおすぞ。
226nobodyさん:03/12/10 02:28 ID:???
カブッタ・・(´・ω
227165:03/12/10 04:25 ID:???
>>225
それをいっったら
このスレの必要性が無くなる。
ぐぐっても出てこないから
聞いてるんだ。
228207:03/12/10 04:34 ID:???
お忙しいところすみませんが、教えていただけないでしょうか?
229nobodyさん:03/12/10 04:39 ID:???
>227
いいから死ね

>228
preg系の関数で正規表現つかえば何とかなるかも。
230nobodyさん:03/12/10 04:40 ID:???
231nobodyさん:03/12/10 04:41 ID:???
・`)
232nobodyさん:03/12/10 04:49 ID:???
http://snaps.php.net/win32/PECL_4_3/threads.dll
こんなん前からあったっけ?
233nobodyさん:03/12/10 04:58 ID:???
>>227
確かにこのスレッドは質問スレで、知らないことを聞くのは悪いことじゃないんだ。
ただし条件はあって、無条件に質問してもいいではない。
質問の内容がまったく基礎的な常識である以上、ぐぐったことは言い訳にはならない。
Httpでの値の受け渡しなんて、誰もが自分で学習するレベルだろう?
ましてマニュアルに回答が書いてあるわけだ。

重要なことは、その姿勢ではスキルが向上しないということだ。
スキルをつける機会をみすみす投げ捨てるのはもったいないぞ、と言いたいわけ。
いくつかTipを提示しただろう。それを読み取って力をつけ、早く回答する側に回れよ。
234207:03/12/10 05:05 ID:???
分からないよ分からないよ
235nobodyさん:03/12/10 05:06 ID:???



H







夜勤あけたぜーいぇー
236235:03/12/10 05:08 ID:???
echoとprintの違いは何でしょうか。
またどの用に使い分ければ良いのか教えてください。
237nobodyさん:03/12/10 05:17 ID:???
セッションサンプルやクエリーの出し方なんてググれば腐るほど出てくるが。
238nobodyさん:03/12/10 05:26 ID:???
検索するまでもないじゃん。
コーディング => 変数が出ない => エコーデバッグ => なんか変だ => Man => ああソウカ !! => コーディング

自然な動作だろ。だからPHPユーザは終わってるんだよ。
239165:03/12/10 07:28 ID:???
>>237
リダイレクトでセッションを使う例はほとんどでてこないです。
SIDはクッキーが使えないときに定義されるものですが、
それは今回値がわたらない理由ではありません。
240165:03/12/10 07:41 ID:???
全く同じソースで
リダイレクトさせる部分をふつうのリンクに
変えるとうまく値がわたるので。
リダイレクトではセッションが使えないようですね。
GETでも使いたいと思います。
241nobodyさん:03/12/10 07:47 ID:???
if ( time() > @filemtime('check.txt') + 60 ) {
touch('check.txt');
// 接続開始
$sock = fsockopen($host, 110, $err, $errno, 10) or die("サーバーに接続できません");//$hostはPOP鯖
$buf = fgets($sock, 512);
if(substr($buf, 0, 3) != '+OK') die($buf);
$buf = _sendcmd("USER $user");//メアドのID
$buf = _sendcmd("PASS $pass");//メアドのパス

上にあったの利用して定期的にソケット通信でメール拾いにいこうとおもったんだがなぜか
if ( time() > @filemtime('check.txt') + 60 ) {
touch('check.txt');
があると
Fatal error: Call to undefined function: _sendcmd() in /virtual/public_html/test.php on line 1
みたいな
$buf = _sendcmd("USER $user");//メアドのIDのある行がエラー指摘される。
どなたかご教授お願いします
242nobodyさん:03/12/10 08:16 ID:???
>>241
IFブロック内で function _sendcmd(){} やってるとか。
243nobodyさん:03/12/10 08:22 ID:???
>>241
[第1問] 次のエラーメッセージを日本語訳せよ。[配点5点]
Fatal error: Call to undefined function: _sendcmd() in /virtual/public_html/test.php on line 1
244nobodyさん:03/12/10 08:40 ID:???
>>240
普通に使える。仕組みを考えれば当然だろ。
245233:03/12/10 08:45 ID:???
>リダイレクト先にSIDがわたっていない模様です。

とりあえずこの根拠から述べろ。
これからして間違ってる。
246165:03/12/10 08:54 ID:???
考える?
考えるというのはどういうことですか。
247165:03/12/10 09:00 ID:???
>>246
はぼくじゃないです。

>>245
渡したはずのセッション変数が
出力されないです。

全く同じ内容のスクリプトを
リンクで渡すとうまくいくのに
リダイレクトだとうまくいかないので、
これはやはりリダイレクトで
セッションを使うには
特別な処理が必要なようです。
248165:03/12/10 09:03 ID:???
りんくでしかセッションをつかったことがないのに
リダイレクトでも同じようにうまくいくはずだと
脳内でおもっているんだろうな。
249165:03/12/10 09:04 ID:???
>>248
ぼくの名前を騙るのはやめてください。
250nobodyさん:03/12/10 09:15 ID:???
トリップつけれ!
251nobodyさん:03/12/10 09:15 ID:???
特別な処理などいらん。
リダイレクトとGETリクエストは同じものだ。
252165:03/12/10 09:24 ID:???
あ、原因がわかった。
253233 & 251 :03/12/10 09:37 ID:???
ともかくリダイレクトであってもセッションはつかえる。
技術的に特に関係がない。
移動先で print_r($_GET); print_r($_SESSION); とやってみろ。
アドレバーのSIDがみたいならキチンとセッションクッキーを消してOFFにして、
localhostではなく127.0.0.1でアクセスするかOpera等のブラウザで試してみればいい。
たぶんスクリプトでこけてるからそっちを見直せばおそらくやれるぞ。

何度もいうが、まず鯖とセッション全般の勉強をやれよ。その知識がないから、
自分で問題点を見つけられず、誤った結論で納得しようとするんじゃないのか。
ついでに質問の仕方も勉強してしまえ。
http://www.hyuki.com/writing/techask.html
http://www.geocities.co.jp/SiliconValley/5656/

> 渡したはずのセッション変数が
> 出力されないです。

こんな抽象的な説明では答えられるものも答えられない。
コーディングレベルで説明したほうがいい。
254165:03/12/10 09:39 ID:???
自分で定義した関数の中でSID
を使おうとしたのが悪かった
っぽい(?)
255nobodyさん:03/12/10 09:41 ID:???
>>254
んなわけねーだろ。http://life.2ch.net/yume/
256nobodyさん:03/12/10 09:44 ID:???
うぜえよ真性
257165:03/12/10 09:50 ID:???
ほんとだって。
マジで
そうだって。

http://php.s3.to/man/faq.using.html

ここの一番下に関係しているような気がする
258233 & 251:03/12/10 09:54 ID:???
すまん。コミュニケが成り立つはずだと思った俺がバカだった。
スレが腐らないように喋りたくてももう完全に放置するよ。
259nobodyさん:03/12/10 13:26 ID:dk4dX0Dw
PHPでFreeBSDに後でパスワードを入力することがなく(passwd)、
ユーザーを追加する構文を考えているのですが、うまくいかなくて困っています。
以下は後でパスワードを入力することなく 非対話で追加できるコマンドなのですが、
#echo password | pw useradd -n test -c 'test taro' -g users -d /data/test -s /usr/local/bin/bash -h 0

上記文をsudoからexecやsystemで吐かせてみても、どうもうまく
いきません。どなたか教えてくれると助かります。
よろしくお願いします。

※つっこまれる前に自白しますが、yahoo掲示板にもPOSTしてます。 ごめん。
260nobodyさん:03/12/10 13:30 ID:7UmICggX
どうもうまく
いきません。

どい?
261nobodyさん:03/12/10 13:54 ID:???
260>>
キチガイうざい
262nobodyさん:03/12/10 14:51 ID:???
どううまくいかないんだよ。エラーログは?
263nobodyさん:03/12/10 16:41 ID:???
>>242
解決法はありますでしょうか?
264nobodyさん:03/12/10 16:45 ID:???
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」
―――――――――――――‐┬┘
                        |
       ____.____    |
     |        |        |   |
     |        | ∧_∧ |   |
     |        |( ´∀`)つ ミ |
     |        |/ ⊃  ノ |   |  ◆
        ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄    |     鯖機を窓から投げ捨てろ
                        |
265nobodyさん:03/12/10 17:00 ID:G9iVhv8U
>>263
if ( time() < @filemtime('check.txt') + 60*5 ) {
でその場でEXITで終わらせるとか。
266nobodyさん:03/12/10 18:27 ID:dwMK56FA
PHP3を使っているのですが
相手のブラウザ情報を取得する方法ってありませんでしょうか?
267nobodyさん:03/12/10 18:28 ID:???
あります
268nobodyさん:03/12/10 19:39 ID:???
>>266
方法…PHP4を使う。
269nobodyさん:03/12/10 20:17 ID:???
西暦 <-> 和暦 を変換してくれるクラス、ライブラリ
はありますか?
270nobodyさん:03/12/10 20:20 ID:???
あります
271nobodyさん:03/12/10 20:37 ID:???
>>269 マンモス本に載ってる。
272nobodyさん:03/12/10 20:43 ID:???
>>271
ありがとう。早速 PDF で公開されているマンモス本を見ました。
西暦 -> 和暦 はありましたが、その逆は自分で作らないと
だめですかね。というか PDF で公開してくださっている
著者の方々に感謝!
273nobodyさん:03/12/10 20:44 ID:???
氏ねヴォケ
274nobodyさん:03/12/10 21:12 ID:p2O3VRMT
if (!CheckPassword($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])) {
header("WWW-Authenticate: Basic realm=\"$http_title\"");

とかいて、認証画面が出て問題ないんですが、
Netscape7.1 で設定されてないパスワードとID入れた時に、apacheのログを見ると、永遠とHTTP/1.1" 401のログを出しつづけて
ブラウザも固まります。

IEとかは特に問題ないようなんですが、Netscapeにも対応させるには何か特別なことをしなければいけないんでしょうか?
275nobodyさん:03/12/10 21:35 ID:???
>>271
余裕があるのなら全部自分で実装しる。
他人様のコードは、あくまで「参考|手本」にすべき。

上達したいのであれば、だけど。
276nobodyさん:03/12/10 22:01 ID:x0RAWNAg
echo文使ってのHTMLタグの吐き出しのレスポンスが悪いのですが。。。。。
効率のいい方法があったら教えてください。
277nobodyさん:03/12/10 22:18 ID:???
>>276
テンプレート(キャッシュ型の)を使う。
278nobodyさん:03/12/10 22:24 ID:???
メールフォームを作成中ですが
フォーム記入者にも確認メールを送るようにするには
どうしたらよいのでしょうか?

PHP4+Apache1.3.27です。
279nobodyさん:03/12/10 22:25 ID:???
パワーコールで聞いてみればいいのに
280nobodyさん:03/12/10 22:32 ID:???
>>278
どこかに発注すれば?
281nobodyさん:03/12/10 22:35 ID:???
>>280
すでに普通のフォームはできてますので。。
282nobodyさん:03/12/10 22:36 ID:???
残りも発注しなよ。
283nobodyさん:03/12/10 22:36 ID:???
>>278
それがもし通販の注文受付の確認メールとかなら今すぐ設計からやり直せ。
284nobodyさん:03/12/10 22:43 ID:???
         _______________________
        || ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||
        || 1、糞質問は釣りと思え          。   λ_λ 
        || 2、マジレスして凹むぐらいならレスするな☆ \ (`ー´  ) ̄\  
        ||_____________________ ⊂⊂  |ノκ\ )
         ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄|\)\)
  λ λ     λ λ    λ λ.                  |____|
  ( ,, λ λ  (  λ λ (  λ λ
@(_(  λ λ __(  λ λ__(   λ λ
  @(_(  λ λ_(  λ λ_(   λ λ
    @(_(   ,,)@(_(   ,,)@(_(   ,,)
      @(___ノ  @(___ノ   @(___ノ

         /   ハーイ先生!ワカッタッス!   \
285nobodyさん:03/12/10 22:47 ID:???
>>283
設計自体に問題があるんですかね?
知らないコードがあると思うので、それを組み込んだら
登録ユーザーにも同内容のメールが送信されると思ってました。。
286nobodyさん:03/12/10 22:56 ID:???
>>285
それじゃ「確認」にならんだろが馬鹿。
店側への受注メールがトラブルで配送されなかったらどうする。
287nobodyさん:03/12/10 23:10 ID:???
スイマセン、ちょっと分からなくなったので質問させてください。
ログファイルが1つのみの、ページ別のカウンターを作ってます。
各ページに番号を振当ててカウントするまではできました。

-----count.txt-----
25,7,11,4

あるページが $no = 2 だった場合、2個目のカウントをup(上の場合7→8に)

-----data.txt-----
no,pagename,url
1,トップ,/index.html
2,リンク,/link.html
3,日記,/diary.html
4,ぎゃらりー/gallery.html

それを、上のようなファイルを作り、ページ番号でそれぞれを当てはめます。
$no: <A href=$url>$pagename</A> $count
すると、各ページへのリンクとカウンタが表示するようにしました。
(例: <A href="diary.html">日記</A> 11 )

これを、ページ番号ではなく、任意のIDで同じくカウントしたいのです。
その場合、count.txtを次のようにして
------------------
top,25
link,7
diary,11
gallery,4

例えば、$no = link だった場合、link,8 になるようにカウントしたいのです。
こんな感じで指定したIDをカウントしたい場合は、どんな方法があるのでしょうか・・。
いろいろ考えましたがうまくできませぬ。教えてクンで恐縮ですがご教授下さい・・・
288nobodyさん:03/12/10 23:15 ID:???
>287
同時更新の問題はないのか?
無駄に見えても、ページごとにカウンタを用意したほうがいいと思うぞ。
289nobodyさん:03/12/10 23:18 ID:???
>>287
DB使え
290287:03/12/10 23:22 ID:???
>288-289
ありがとうございます。
このカウントを1つのページでランキングのように出力したいのです。。

DBが使えれば良いですが、鯖が対応してないんです(´・д・`)
291nobodyさん:03/12/10 23:23 ID:???
鯖のせいにする前に設計見直せクズ
292nobodyさん:03/12/10 23:48 ID:???
質問です。
私はzend.comはビジネスモデルとしてもアリだと考えているし,
好感も抱いています。でもzend.co.jpは嫌いです。
無くてもいい,むしろ無い方がいいと思っています。
みなさんはどうですか?
293nobodyさん:03/12/10 23:49 ID:???
294nobodyさん:03/12/10 23:59 ID:/aHApeEW
for($i = 0; $i <= 23; $i++){
 $h[$i] = 0;
 if($i == $hour){
 $h[$i] = 1;
 }
}

↑と↓どっちが効率がいいですか?
その理由も教えてください。

for($i = 0; $i <= 23; $i++){
 if($i == $hour){
  $h[$i] = 1;
 }else{
  $h[$i] = 0;
 }
}
295nobodyさん:03/12/11 00:18 ID:???
>>294
両方ともひどすぎて話になりません。
296nobodyさん:03/12/11 00:19 ID:???
>>294
あてずっぽだが、上でねぇかな。
毎回処理される$h[$i]=0が無駄のように思えるが、全ての代入処理は上が25回で下は24回と1回多いだけ。
毎回パースすることを考えると、ブロックの少ない上が速いと思う。
アセンブリ言語で書くと下のほうが速いんだけどね。
297nobodyさん:03/12/11 00:21 ID:???
>>295
クソが氏ねや

>>296
なるほどー、ありがとうございます。
私もそう思ってたんです。
298nobodyさん:03/12/11 00:31 ID:???
>>297
クソが氏ねや

for($i = 0; $i <= 23; $i++){
 $h[$i] = 0;
}
$h[$hour] = 1;
299nobodyさん:03/12/11 00:38 ID:???
バカだね。これでいいじゃん。

$h = array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
$h[$hour] = 1;
print_r($h);
300nobodyさん:03/12/11 01:09 ID:???
あの程度の処理でループ中で分岐を使うなんてクソには違いない
301nobodyさん:03/12/11 01:13 ID:???
$h = array_fill(0,24,0);
$h[$hour] = 1;

print_r($h);

で、どれが一番「効率」がいいんでしょうね。
302nobodyさん:03/12/11 01:26 ID:???
>>294があくまで例題と考えれば>>298が一番のクソ

効率で考えれば、>>301じゃないか。
303295:03/12/11 02:36 ID:???
>>297
本当のこと言われて逆ギレしてるようじゃレベルアップは望めません。
もうちょっと素直にならんとね。
304nobodyさん:03/12/11 02:42 ID:???
>>303
同感
っていうか、レベルアップが望めるレベルじゃないか
305nobodyさん:03/12/11 03:53 ID:???
>>294なら下の方が圧倒的に速い。
ベンチとっても多分速い。
理由は同一の処理が連続してるから。

でも>>298の方が>>294よりも速い。
やりたいことも明確で分かりやすい。

>>299>>301はもっと速いけど
(301はarray_fillの中身にもよるが)
$hを定義してる時点で>>294と働きが違う。
306あてずっぽの296:03/12/11 09:00 ID:???
>>305
ほぇ、そうなのか。
「同一処理の連続」ってのをもう少し詳しく説明してもらいたいが、
下が条件判定->代入->Loopの繰り返しに対して
上は代入->条件判定->代入?->Loopだからかな?

パース処理の件は? と思ったが、$hの定義つうてんで、
Loop回数が多くなるとパースよりも実際のLoopの方が
処理時間が長くなるから、意味ないわな。ゴメソ。
307nobodyさん:03/12/11 09:14 ID:???
>>294の下が上より「圧倒的に」速い理由が分からんな
308nobodyさん:03/12/11 10:47 ID:CiLbkcfE
PHPってWindowsで何の不便も無く出来ますか?
それともPerlのようにUNIXでやるのが普通なのでしょうか。
309nobodyさん:03/12/11 11:20 ID:???
>>308
何をやりたいかによる。
310308:03/12/11 14:01 ID:CiLbkcfE
>>309
なるほど、少し大雑把過ぎましたねすいません。
PHPで画像を取り扱える掲示板CGIを作りたい場合、Windowsで何の不便も無く出来るでしょうか。
よろしくお願いします。ペコリ(o_ _)o))
311nobodyさん:03/12/11 15:26 ID:???
不便はなくても何もわからないやつにとっては無理なことだろうな
312nobodyさん:03/12/11 15:47 ID:???
>310
それでもカナーリ大雑把杉。
Windowsで難があるとすればImageMagick使いたい処理が多分面倒。
GDで済む処理は、ほぼ差は無い。

画像を何でもかんでも加工したいという要求には、
有料のライブラリ使うけどね、俺は。
313nobodyさん:03/12/11 19:36 ID:TIpD1Nds
>>310
だめやったら U N I X でやればいいと思ゆよ
314nobodyさん:03/12/11 19:53 ID:???
GDとImageMagickはクオリティにかなりさがあるよ。
GDでサムネイル作ってたけど
汚くて
ImageMagickに変えた。
315nobodyさん:03/12/11 20:18 ID:???
>>314
同じgdでもImageCopyResampled()とImageCopyResized()では差があるよ。
316314:03/12/11 21:38 ID:???
>>315
それ詳しく教えてもらえませんか?
今まではImageCopyResized()を
使ってました
317nobodyさん:03/12/11 21:43 ID:eEoLEo9K
質問させてください。

$HUA = $_SERVER['HTTP_USER_AGENT'];
if (strstr($HUA, "MSIE")) {
 $IE++;//IEの場合
} elseif (strstr($HUA, "Mozilla")) {
 $NS++;//Netscape/Mozilla 互換ブラウザの場合
} else {
 $other++;//それ以外
}

↑のようにブラウザがIEの場合は$IEのカウントを
ネスケの場合は$NSのカウントを一つ増やすプログラムが
あります。
これを更にIE1〜6、ネスケ1〜7に細かく振り分ける
にはどのような処理を行ったら良いのでしょうか?
318nobodyさん:03/12/11 21:52 ID:???
>>317
String関係の関数か正規表現関数使って自分で考えろ。
その程度のコードが書けないならお前にプログラムなんて無理。
319314:03/12/11 21:55 ID:???
phpマヌアルみたらありました
結構(・∀・)イイ!ですね
320nobodyさん:03/12/12 14:17 ID:t6tCveUY

長くなってしまいますが、お願いします・・!

class mysort{
$sortmode;
function mysort($data,$sortmode){
$this->sortmode=$sortmode;//mode2が格納される
uasort($data,array("mysort","sortmain");
return $data;
}

function sortmain($a,$b){
$al = strtolower($a[$this->sortmode]);//mode2を期待(無理・・)
$bl = strtolower($a[$this->sortmode]);//mode2を期待(無理・・)
return strcmp($al, $bl);
}
}


//$data -- $data[$i][$mode]の多次元配列
//$modeには'mode1','mode2','mode3'等がある。
mysort($data,'mode2');

上記の様に、usortに引数を設定したいのですが、mysort()の中からuasortとすると当然の如く$this->では引き継げません。
何か、期待値を得られるような手段はないものでしょうか。
321nobodyさん:03/12/12 14:29 ID:???
>>320
何かコンストラクタのところにreturnとか見えたりするんだが、目の錯覚か?
322320:03/12/12 14:31 ID:t6tCveUY
あうごめんなさい。
function mysort(){

}

function mysort_a($data,$sortmode){
$this->sortmode=$sortmode;//mode2が格納される
uasort($data,array("mysort","sortmain");
return $data;
}

mysort_a($data,'mode2');
書き間違えますた。



323320:03/12/12 14:34 ID:???
よくみるとvarとかも抜けてましたね・・。
こまかい所は大目にみてくださいまし
324nobodyさん:03/12/12 14:54 ID:???
プログラムについて「大目に見ろ」ってのはすごい感性だな。
とりあえず、期待値の使い方が間違っているのは大目に見てやる。
325320:03/12/12 15:03 ID:???
そういう意味ではなかったのですが。ごめんなさい
実際に作りこんでるプログラムは他の関数もぐちゃぐちゃなので、
質問用にだだっと簡略化した際に間違えてしまったのです。
んで、間違いが他にもあったけど、(宣言がないとか)また全部書き直した方が
見ててうざがられるんじゃないかとの予想で、ニュアンスが伝われば大丈夫かなと。
勿論動かすスクリプト自身は大目になんて感性では作ってないですよ〜(T_T

>とりあえず、期待値の使い方が間違っているのは大目に見てやる。
うっ・・ありがとう・・。
326nobodyさん:03/12/12 16:08 ID:zQM2CV3x
CGI版PHPで、コマンドラインからスクリプトを
/usr/local/bin/php -q /home/〜〜〜/test.php
と実行させると、test.phpの中に書かれたファイルのパスが
フルパスじゃないとダメ見たいなんです。
前は相対パスでもOKだったはずなのに、いつの間にか現在のような状態になってました。

実行させたいスクリプトが他のスクリプトをインクルードしてたら、
そのインクルードしたスクリプト中のパスも絶対パスでないとダメみたいで…

これっておかしいですよね?
ドコを直したらいいでしょうか・・・
327nobodyさん:03/12/12 16:10 ID:???
>>326
ボクもその症状には悩まされてます…
どうしたもんですかね…
328326:03/12/12 16:12 ID:zQM2CV3x
書き忘れです。
Redhat 7.3
CGI版PHP 4.3.1

ちなみにApacheモジュール版も使ってますが、もちろん相対パスで問題ない。
Apache 1.3.27
329326:03/12/12 16:14 ID:zQM2CV3x
>>327

おお!
あなたもですか…
そういう仕様になったんですかね・・・
マニュアル見てきます。
330nobodyさん:03/12/12 16:24 ID:???
ゴールデンレター
このスレを見た人はコピペでもいいので
30分以内に7つのスレへ貼り付けてください。
そうすれば14日後好きな人から告白され、17日後に
あなたに幸せが訪れるでしょう
331nobodyさん:03/12/12 16:27 ID:???
困った時のマニュアル頼み。
http://www.php.net/manual/ja/features.commandline.php
1. CLIとCGIの違いを把握。
2. getcwd()から何かを感じ取る
3. 通称アレックさんのポストを見る。
332nobodyさん:03/12/12 16:29 ID:O0tbE8Vp
>327
php.ini の include_path に カレントディレクトリは含んでいる?
debianでは cgi と apache 板の設定ファイルは別のファイルを参照していて、
apache上では動くスクリプトがコマンドラインで動かないって状況にあいました。
参考までに。
333nobodyさん:03/12/12 16:53 ID:bl4HZSzx
$fp = fopen("./aaa.txt", "a+");
fclose($fp);

ファイルを作成しようとして↑のように打ったのですが、
Warning: fopen("./aaa.txt", "a+") - Permission denied in /home/xxx/xxx.php on line
というエラーが出てきてしまいます。
aaa.txtファイルが存在する時は上のエラーは出ません。
このエラーを解消するにはどうしたらよいでしょうか?

334nobodyさん:03/12/12 16:55 ID:???
>>333
エラーメッセージの通り。
ディレクトリへの書き込み権限があるか確認汁
335nobodyさん:03/12/12 17:01 ID:???
>>>333 touch
336nobodyさん:03/12/12 17:14 ID:???
マニュアル読まないのもなんだが,エラーメッセージすら読まんとは・・・。
そんなに英語がいやならぴゅう太の日本語BASICでも使ってろって。
337320:03/12/12 17:15 ID:???
自己レス。
uasort($data,array($this,"sortmain");
馬鹿すぎ>自分
338nobodyさん:03/12/12 17:28 ID:AMQNkgnA
>>335
touchを使うと
Warning: unable to create file ./aaa.txt because Permission denied in /home/xxx/xxx.php on line
になります
339nobodyさん:03/12/12 17:43 ID:???
>>338
つーかパーミッションの問題でPHPとは関係ないんだから
スレ違いじゃねぇか?
340nobodyさん:03/12/12 19:53 ID:???
>>338
ディレクトリのパーミみてみてだめだったら
うーん
鯖の所為かなw
341nobodyさん:03/12/12 19:54 ID:???
再起動だ再起動w
342nobodyさん:03/12/12 20:45 ID:???
>>338
そんなサーバはラックから外して窓から投げ捨てろ
343nobodyさん:03/12/12 23:38 ID:???
$sql=select * from table;
$data=exe($sql);
echo "<form name='frmmain' method='post'>";
for($i=0;i<10;i++)
{
  echo "<input type='hidden' name='data_hid[".$i."]' value='data[$i]>";
}
echo "<input type='submit' name='sub'>";
echo "</form>";
でhiddenに待避したデータベースの抽出データをpostで次の画面に渡し
for($i=0;i<10;i++)
{
  echo "<table><td>".$data_hid[".$i."]' </td></table>";
}
で表示させようとしましたが漢字の後に\が入ってしまったのでそれをとるために
for($i=0;i<10;i++)
{
  echo "<table><td>".stripslashes($data_hid[".$i."]') </td></table>";
}
としましたが漢字が別の漢字に化けてしまいました。
文字化けを直す方法を教えて下さい。
344343:03/12/13 00:07 ID:???
すいません、分かりました。
345nobodyさん:03/12/13 00:34 ID:???
>>344
せっかくだから、何がどうわかったのか書いてみれば?
346松田新平 ◆XZJo/VMdco :03/12/13 00:36 ID:???
ヤ。
347nobodyさん:03/12/13 01:03 ID:???
$sql=select * from table;
これからしてよくないな。
348nobodyさん:03/12/13 01:04 ID:???
>>347
ほんと。漢字が化ける以前だろうがw
349nobodyさん:03/12/13 05:43 ID:???
ユーザ名とパスワードを入力させ、DBに問い合わせて照合するようなスクリプトを書くとき、
次のうちどちらが賢いですか?


if ( ユーザ名が空 ) { exit; }
if ( パスワードが空 ) { exit; }
if ( ユーザ名に不正な文字 ) { exit; }
if ( パスワードに不正な文字 ) { exit; }
//DBに問い合わせ
if ( 接続不可 ) { exit; }
if ( レコード存在しない ) { exit; }
if ( 入力したパスワード != DBから得たパスワード ) { exit; }
echo "認証されました";


if ( ユーザ名が空 ) { exit; }
elseif ( パスワードが空 ) { exit; }
elseif ( ユーザ名に不正な文字 ) { exit; }
elseif ( パスワードに不正な文字 ) { exit; }
else {
  //DBに問い合わせ
  if ( 接続不可 ) { exit; }
  elseif ( レコード存在しない ) { exit; }
  elseif ( 入力したパスワード != DBから得たパスワード ) { exit; }
  else { echo "認証されました"; }
}
350nobodyさん:03/12/13 06:32 ID:???
>>349
どっちとも賢くない。
ユーザ名とパスワードをエスケープさせた後、そのまま問い合せる。
いちいちスクリプト側で、パスワードの真偽を確かめる必要もない。
351nobodyさん:03/12/13 06:34 ID:???
>>349
俺ならこんなかんじ。

if ( empty($user) || empty($pass)){
if ( is_valid_char($user) || is_valid_char($pass)){
// DB 処理
}
}

function is_valid_char($char){
// チェック
}
352nobodyさん:03/12/13 11:43 ID:YAMk9qJe
文字変換について教えてください。

今までShift_JISで使ってたのですがEUC-JPに変えることになりました。
、でフォームから' \ " 等を登録すると前に\が表示されるようになりました。
DBに登録する際にはaddslashesで変換していたのですが
これを消したら直りました。

magic_quotes_gpc の設定も関係があるのはわかるのですが
これをOnにしたほうがいいのかOffにしたほうがいいのか?
またaddslashesをつけた方がいいのかよくわかりません。

セキュリティを考える上でどのような設定にするのが良いのでしょうか?
長文すいません。
353nobodyさん:03/12/13 11:55 ID:???
>>350
それはつまり
$result = pg_query("select * from テーブル where username=入力されたユーザ名 and passwd=入力されたパスワード");
if ( !$result ) { echo "NG"; } else { echo "OK"; }
みたいな感じでしょうか?
354nobodyさん:03/12/13 12:17 ID:???
>>353
そういうみたいな感じです。

>>352
自分で設定できるのなら、offにしておいた方がいいと思うが。
必要なとき、DBに問合せ/登録するならDBに合わせてエスケープさせれば
いいわけだし。
355nobodyさん:03/12/13 12:21 ID:???
>>353
c⌒っ*゚ー゚)φ メモメモ...
356nobodyさん:03/12/13 12:32 ID:???
>>355でツッコミが入っているが、>>353だと常にOKなんでダメだよと言っとく。
357nobodyさん:03/12/13 12:48 ID:DE7j+8PK
例えば商品紹介のページとか同じようなレイアウトのページを
たくさん作ったりする場合、あとの追加のこともあるので
データベースに写真と文章を追加するだけで新しいページが
出来たりするようなサイトにしたい場合、PHP + MySQL を用いて
出来ますでしょうか?
それとも他によりオススメの方法がありますか?
358nobodyさん:03/12/13 13:06 ID:???
>>357
いや、間違ってないよ。あなたの発想は。
359357:03/12/13 13:54 ID:???
>>358
選択に自信がなかったもので・・・、ありがとうございました。
これで頑張ってみます!
360353:03/12/13 18:30 ID:???
>>356
どこがだめなのか考えたのですがわかりません。
if ( !$result )という条件判定が怪しいとは思うのですが。。。
361nobodyさん:03/12/13 18:41 ID:???
>>360 まぬある より。
resource pg_query ( resource connection, string query)
362nobodyさん:03/12/13 19:02 ID:???
>>361
コネクションリソースは省略可能。

>>360
リザルトリソースは正しく返る。
少なくとも返った行数を数えないといけない。(1行ならOK、以外ならNG)
363353:03/12/13 22:05 ID:???
わかりました!
364nobodyさん:03/12/14 01:56 ID:I+QQRfQG
$arr[] = "abc";
$arr[] = "def";
$arr[] = "efg";

などと入れております。
連想配列を return($arr) とかで返すことは出来るのでしょうか?
365nobodyさん:03/12/14 02:02 ID:???
やってみてから、
どうしてできないのですか?とか
なぜできちゃうのですか?とか
メモリの1bitは血の一滴とかの発言になっていないのはなぜですか?
366364:03/12/14 02:07 ID:I+QQRfQG
>>365
でわ、ソースを抜粋させていただきます
function PersonalTable($cnt,$str) {
printf("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=euc-jp\">");
print("<Table width=500 border=1>");
print("<TR><TH>Field</TH><TH>Value</TH><TH>Hidden</TH></TR>");
for($k = 0;$k < $cnt ;$k++){
$L = $k + $cnt;
$arr_name[]=$str[$k]; <--ここで連想配列に入れています
$arr_value[]=$str[$L]; <--ここもおなじ
print("<TR><TD><B>$str[$k]</B><TD><input name=\"$str[$k]\" value=\"$str[$L]\" size=80></TD>");
print("<td><center><input type=checkbox name=\"$str[$k]\" value=\"\"></center></td></tr>\n");
}
print("</TABLE>");
}

function update(){
return($arr_name); <--テストで値が帰ってくるか確かめました。帰ってきませんでした。
}
しかし直接$str[$k] のなかを除くと値がきちんと入っています。
エラーなどは出ない状態でただ単に値がとれない状態です。

説明不足の無礼をお許しください。
367nobodyさん:03/12/14 02:22 ID:???
>>366
まぬあるの 言語リファレンス - 変数 - 変数のスコープ を見てください。
function update(){ } の中の$arr_nameは、PersonalTable()の$arr_nameと
一切関係ありません。(たまたま変数名が一緒なだけ。)
368nobodyさん:03/12/14 02:30 ID:???
出来るからマニュアル読めや。
369367:03/12/14 02:30 ID:???
っと、これじゃ冷たすぎるな。
おいちゃんなら、
function func_name(){ global $arr_name; 〜 } や
$GLOBALS を使ったり、
関数へはリファレンス渡しをしたり、
クラス化して $this->arr_name にしたりします。
370nobodyさん:03/12/14 03:53 ID:I+QQRfQG
今変数スコープのところ読んでいます
色々アドバイスありがとうございました
371nobodyさん:03/12/14 08:34 ID:I+QQRfQG
>>369
連想配列の値を、globalにして、別のfunctionでも値が渡るようになりました。
$this->update($arr_name) とゆう方法でも渡してみて、結果値がうまくいきました。

printf($arr_name[0]) などで確かめるとちゃんと表示もされました。

しかし、
return($arr_name) として、別のソースからインスタンスを作成して
$arr_name = $sel->update();
などとためしてみると、値が取得できません。

function間ではきちんと参照できたのですが、return で、値を返した時、受け取り側がきちんと受け取れない状態です。

>>367さんのおしゃったページは以下を見ました
php.s3.to/man/language.variables.scope.html

return(($arr_name) $arr_name<-連想配列でしてエラーは出ない状態です。



372nobodyさん:03/12/14 08:37 ID:???
マニュアル読めよ
373nobodyさん:03/12/14 14:12 ID:jgsrXET0
<?php
$logfile = "count.txt";

$fp = fopen($logfile, "r+");
flock($fp, LOCK_EX);

$count = fgets($fp, filesize($logfile));
$past_ip = fgets($fp, filesize($logfile));

$now_ip = $_SERVER["REMOTE_ADDR"];

if($now_ip != $past_ip){
$count++;
rewind($fp);
fputs($fp, "$count\n$now_ip");
}

flock($fp, LOCK_UN);
fclose($fp);

printf("%05d", $count);
?>

うまくできない。・゚・(ノД`)・゚・。
どこがおかしいかご教授ください。・゚・(ノД`)・゚・。
374nobodyさん:03/12/14 15:22 ID:???
>>373
errorがでるならerror内容を、
warningがでるならwarning内容を、
予想した挙動と違ったら、その予想と実際の挙動を。

うちでテストしたら、
fopen(count.txt) [function.fopen]: failed to create stream が出た。
ムカついたからテストするの止めた。
最後にスクリプトを見た。fgetsのマニュアルぐらい見ろよとつぶやいた。
太陽に向かって駆け出した。
375nobodyさん:03/12/14 16:38 ID:???
>>373
<?php
$logfile = "count.txt";

$fp = fopen($logfile, "r");
flock($fp, LOCK_SH);
$count = fgets($fp, 4096);
$past_ip = fgets($fp, 4096);
flock($fp, LOCK_UN);
fclose($fp);

$now_ip = $_SERVER['REMOTE_ADDR'];
if($now_ip != $past_ip){
$count = $count + 1;
$fd = fopen($logfile, "w");
flock($fd, LOCK_EX);
fputs($fd, $count."\n");
fputs($fd, $now_ip);
flock($fd, LOCK_UN);
fclose($fd);
}
printf("%05d", $count);
?>
こんなんでどうでせう
fgets flock fputsを確認してみた方がいいかな
376nobodyさん:03/12/14 16:49 ID:???
やり直し。
377nobodyさん:03/12/14 18:03 ID:???
ファイルに対して改行を多く含むテキストを書き込みたいとき、perlでは

print FH <<__eof__;
<html>
<head>
<title>$title</title>
</head>
__eof__

みたいにできますが、PHPならどういう書き方が一番メンテしやすいでしょうか?
378nobodyさん:03/12/14 18:10 ID:???
>>377
$str = <<<EOF
<html>
<head>
<title>$title</title>
</head>
EOF;

fputs($fp, $str);

かな?
379nobodyさん:03/12/14 18:11 ID:???
なるほど、dクス。
380nobodyさん:03/12/14 18:44 ID:CpmXElQJ
test.php?sample&mode=test



$qry = $_SERVER['QUERY_STRING'];

で、受信して

$nanika ・・・sample
$mode ・・・test

のように$nanika $modeそれぞれに代入したいのですが...
381nobodyさん:03/12/14 18:52 ID:???
マニュアル読んで好きにやれ。止めねーよ
382nobodyさん:03/12/14 18:55 ID:???
>>380
自分で調べれ。
383nobodyさん:03/12/14 19:20 ID:???
>>381
>>382
教えてくださいよー、キバヤシさん。
384nobodyさん:03/12/14 19:29 ID:???
死ねよカス
385nobodyさん:03/12/14 19:31 ID:???
俺にだって…解らないことくらい……ある!
386nobodyさん:03/12/14 19:40 ID:???
2chの人でも分からない事はあるのですね。
387nobodyさん:03/12/14 19:43 ID:???
2chの中の人も大変だなっ・・・!
388nobodyさん:03/12/14 19:51 ID:???
$qry = $_SERVER['QUERY_STRING'];

extract ($qry, EXTR_PREFIX_IF_EXISTS, "nanika");

print $nanika;
print $mode;
389nobodyさん:03/12/14 22:52 ID:???
まぁ、$_SERVERで取る時点でKUSO決定だな。
390nobodyさん:03/12/14 23:44 ID:???
簡単なファイルベースのデータベースをPHPで作ろうとしてます。
ローカルにデータをバックアップしたり、
Excelでも編集できるようにCSVで管理。
ダウンロード&アップロードできるようなイメージ。

ExcelのCSV吐き出しは、データ中にカンマが含まれると
AAA,BBB,"CC,C",DDD
のようになりますが、
これを上手く処理してsplit→配列格納するやり方が思いつきません。
何かヒント頂けたらありがたいです。
391390:03/12/14 23:52 ID:TETEo38b
すいません、ageておきます。
392nobodyさん:03/12/14 23:53 ID:???
>>390
正規表現で""に囲まれたカンマをエスケープしたらどうか。
splitしたあとにエスケープを戻せばよかろ。
393nobodyさん:03/12/15 00:22 ID:???
>>388
おかしくないか?
394390:03/12/15 00:52 ID:???
>>392
なるほど。大体理屈は分かりました。
とりあえずは正規表現をちゃんと勉強しなければ・・・
395nobodyさん:03/12/15 01:01 ID:???
>>394
"で括るとその間のカンマを飛ばしてくれる関数があったはず。
ちょとなんて関数だったかは失念。
396395:03/12/15 01:02 ID:???
fgetcsvだた。
397390:03/12/15 01:58 ID:???
>>396
おお、そのものズバリの関数があったのですね。
ファイルポインタを使った読み込みに変更しないといけないので
ちょっと苦労しましたが、何とか処理自体は上手く行きました。
ありがとうございます。
せっかくの機会なので >>392 のやり方も研究したいと思います。
398nobodyさん:03/12/15 02:05 ID:llm//hKN
PHPで作ったウェブアプリとC言語でつくったのとは
どちらがどの程度処理速度が違ってくるでしょうか。
比較サイトなどもあったら教えてください。
399nobodyさん:03/12/15 04:08 ID:???
>>398
そんなもの一概に言えるわけないだろ
知りたければ自分でベンチマークやってみろ
400nobodyさん:03/12/15 04:32 ID:???
>>398
多少遅くてもメンテしやすいようにコーディングして遅かったらCPU増やすなりしてハードでカバー。
401nobodyさん:03/12/15 05:06 ID:???
>>399 >>400 thanks
402373:03/12/15 05:18 ID:???
できました(´Д⊂ヽ
問題は読み込めなかったことなんです。
$fp = fopen($logfile, "r+"); ←これと
$count++; ←これがいけなかったみたいです。

>>374さん
>>375さん
ありがとうございましたm(_ _)m
403nobodyさん:03/12/15 09:09 ID:???
>402 再提出。
404nobodyさん:03/12/15 12:38 ID:???
はじめまして。質問させてください。
http://pya.cc/cnt2.php?uid=3018
を開いて読み込みが終わると、
http://pya.cc/pyaimg/pimg.php?imgid=1912
と変わっています。しかし、履歴を見るとQUERY_STRINGの3018がついたURLが残っていないのですが、
この様な事をするにはどのようにするのでしょうか?

私なりに
header ('Location: http://pya.cc/pyaimg/pimg.php?imgid=' . $ChangedQueryString); //$ChangedQueryStringは$_SERVER['QUERY_STRING']を元に1912から3018に変換
の様な事をするのかとおもいきや、そうすると履歴が残ってしまうので大変気になっています。

405nobodyさん:03/12/15 13:24 ID:???
IEの仕様の話なら他所でやれよ。
ロケーションヘッダでリダイレクトすれば転移元のURlはヒストリには残らん。
406nobodyさん:03/12/15 13:34 ID:TlrxTuXS
mb_convert_encoding関数を使うと
Unable to detect character encoding というエラーが表示されます。
どうすればいいのでしょうか?
407nobodyさん:03/12/15 13:40 ID:???
iniの設定値を晒すのだ
408nobodyさん:03/12/15 13:42 ID:???
> どうすればいいのでしょうか?

丸投げかよ。死ね
409nobodyさん:03/12/15 13:55 ID:???
>>405
headerでrefreshを使え。という事ですか?
410nobodyさん:03/12/15 14:02 ID:???
お騒がせしました。
http://www.coara.or.jp/~tkuri/D/002.htm#D2002-04-30
ですね。

解決です。
411406:03/12/15 14:05 ID:TlrxTuXS
>>407
どこらへんの設定を書けばよろしいのでしょうか?
すみません。
412nobodyさん:03/12/15 14:14 ID:???
>>411
mbstring。。
413nobodyさん:03/12/15 14:16 ID:???
履歴ってリファのことだったんだ・・・
414406:03/12/15 14:18 ID:TlrxTuXS
>>412

Multibyte Support enabled
Multibyte (japanese) regex support enabled

mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.

Directive Local Value Master Value
mbstring.detect_order no value no value
mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input pass pass
mbstring.http_output pass pass
mbstring.internal_encoding no value no value
mbstring.language neutral neutral
mbstring.script_encoding no value no value
mbstring.substitute_character no value no value

こんな感じでよろしいのでしょうか?
415nobodyさん:03/12/15 14:35 ID:???
>>413
いや、そういうわけではなく、
redresh使えば履歴に残らないような事が書いてあったからそう思ったのですが、
間違っているでしょうか?
416nobodyさん:03/12/15 14:35 ID:???
全部真っ白とは。4.3.xでそれは無謀。

設定ファイルを弄れない環境なら、最低ラインと思われる
language, detect_order, substitute_character
あたりをスクリプトから指定して再実験。

http://jp.php.net/mbstring
417nobodyさん:03/12/15 15:06 ID:???
PHPには、Perlのqqにあたる関数はありますか?l
418406:03/12/15 15:25 ID:TlrxTuXS
PHPのバージョンは4.3.4です。
mbStringの中にJapanese support の項目がないのが原因でしょうか?
インストールオプションには
--enable-mbstring=all としているんですが・・。

もしくはphp.iniにmbstring.language=japanase なんて
指定しなければいけないものなんでしょうか・・
419nobodyさん:03/12/15 15:53 ID:???
>>418
autoはやめれ
420nobodyさん:03/12/15 15:59 ID:???
コンバート関数のディテクトオプションは関係ない。
マニュアル通りやってそれで駄目な時に質問しろよ。
だいたい何をどうコンバートしようとしてるんだ。
421nobodyさん:03/12/15 16:05 ID:???
マニュアルも回答もシカトするようなアフォはほっとけ
422nobodyさん:03/12/15 16:14 ID:???
(´-`)oO( 試行錯誤なんてことば知らない・・・
423406:03/12/15 17:26 ID:TlrxTuXS
回答? シカトしてないです。
マニュアルは見ましたが関数の使い方はあってると思うのですが・・

mb_conert_encoding("あいう","EUC","auto");
みたいな感じでEUCコードに直そうとしたらエラーがでるのです。
424nobodyさん:03/12/15 17:48 ID:???
>>423
"EUC"という引数は無いよ。
「見る」だけじゃなくちゃんと「読め」。
425nobodyさん:03/12/15 17:52 ID:EM5GeBZh
フォームの入力チェックで、000〜999までの半角数字を可で、それ以外の文字列は不可にしたいんですが
なかなか上手くいきません。
$mache = ereg("[0-9]{3}",$_POST[no]);
これだと、「あいう001」でもマッチしてしまいます。
426nobodyさん:03/12/15 18:00 ID:???
>>425
$mache = ereg("^[0-9]{3}$", trim($_POST[no]));

という感じかな?(行末の記号があやすぃ)
427406:03/12/15 18:04 ID:TlrxTuXS
>>424
別サーバではEUCで問題なくいけましたが?
428nobodyさん:03/12/15 18:04 ID:???
>>432
おもいっきりしとるやないかw
429nobodyさん:03/12/15 18:05 ID:???
>>432 -> >>432
手が勝手に。
430nobodyさん:03/12/15 18:05 ID:???
なぜだ。
431nobodyさん:03/12/15 18:13 ID:???
おいおい、こうだろ。>>432







ハッ
432nobodyさん:03/12/15 18:22 ID:???
なんだおまいら俺が歴史を変えてやるぜ!
>>432











_ト ̄| . . ..○
433nobodyさん:03/12/15 18:29 ID:???
>>427
あっそ。じゃあそのサーバ使えば?
434nobodyさん:03/12/15 18:35 ID:???
∩___∩
   | ノ      ヽ
  /  ●   ● |
  |    ( _●_)  ミ   おらっしゃー
 彡、   |∪|  、`\  
/ __  ヽノ /´>  )
(___)   / (_/
 |       /
 |  /\ \
 | /    )  )
 ∪    (  \
       \_)
435nobodyさん:03/12/15 19:15 ID:???
そろそろ406が

「サーバーの方の調子が悪かっただけのようです。
再起動してもらったら動くようになりました。 」

とか言いそうな悪寒…
436nobodyさん:03/12/15 20:20 ID:???
簡単なログだけとるプログラムなんですが

$logfile = "log.txt";

$host = gethostbyaddr(getenv("REMOTE_ADDR"));
$ip = getenv("REMOTE_ADDR");
$date = gmdate("d(D) h:i:s a",time()+60*60*9);

$access = "$date - $host - $ip\n";

$line = file($logfile);
$fp = fopen($logfile,"w");
fputs($fp,$access);
for($i = 0; $i <100; $i++);
fputs($fp,$line[$i]);
fclose($fp);

ログファイルの先頭に追記していくようにしたのですがうまくいかないです。
どこがおかしいか指摘頂ければ助かります。
437nobodyさん:03/12/15 20:24 ID:???
forが空文。
438nobodyさん:03/12/15 20:59 ID:???
当たり前だが4.3.4とそれ以前のバージョンは違う。
439nobodyさん:03/12/15 21:27 ID:???
>>404
GET /cnt2.php?uid=3018
 302 Found
 Location: ./pyaimg/pimg.php?imgid=1912
GET /pyaimg/pimg.php?imgid=1912
 200 OK
440nobodyさん:03/12/15 21:32 ID:LFvlwWuZ
>>438
それが分からず、指摘されてもなおマニュアルを確認しないから、
406は時間を無駄にするわけだ.
441nobodyさん:03/12/16 11:25 ID:PIEuD9TP
下記を実行すると9行目の$str変数を表示してくれません。
しかし、5行目のif文をとると表示します。
if文をつけたまま表示するにはどうしたらよいでしょうか?
1 <?php
2 echo "<form method=POST action="fetchtest.php">";
3 echo "<input type=text name=day>";
4
5 if($sign=="input"){
6 $d_base=pg_connect("user=foo password=foo dbname=foo");
7 $result=pg_query($d_base,"select f_time,e_time from kintai");
8 $str=pg_fetch_row($result);
9 echo "test= $str[0] test2= $str[1]";
10 }
11
12 echo "<input type=submit name=sign value=input>";
13 ?>
442nobodyさん:03/12/16 11:42 ID:???
>>441
$signの意味が…
12行目のことかな
それだったら
<form method="post" action="fetchtest.php">
<input type="text" name="day">
<input type="hidden" name="sign" value="input">
<input type="submit">
</form>
<?php
if($_POST['sign'] == "input"){
$d_base = pg_connect("user=foo password=foo dbname=foo");
$result = pg_query($d_base, "select f_time,e_time from kintai");
$str = pg_fetch_row($result);
echo("test=".$str[0]."test2=".$str[1]);
}
?>
こんなんでどう?
443nobodyさん:03/12/16 12:39 ID:PIEuD9TP
442さんありがとうございさます。
試してみましたけど$strの値を表示してくれませんでした。
$signは$dayに値が入力した時に6,7,8行目が実行できるようにしたつもりです。
(<input type="submit"> だけでいいみたいですね)
$dayは7行目のsql文に「where ?=$day」とつけてあとあと検索条件を絞ろうと
考えていました
444441:03/12/16 12:52 ID:PIEuD9TP
442さん、すいません
できました。「action="fetchtest.php"」ここをまんま使ったのが
悪かったみたいです。
ふと疑問に思ったのですが、
<input type="hidden" name="sign" value="input">
       と
if($_POST['sign'] == "input")
だとそのページにアクセスした時点でそれ以下を実行して$strを表示してくれ
ると思うんですけど実際は送信ボタンを押した後にしか表示しません。
なぜでしょう?

445nobodyさん:03/12/16 13:47 ID:???
>>444(>>441)
入門書でも買って読んだ方がよさげ。
レベル低すぎ。話にならん。
446442:03/12/16 14:26 ID:???
>444
Σ(・∀・*;)
送信されたら表示じゃなかったの?
hiddenのデータはsubmitしないと送信されないよw
447nobodyさん:03/12/16 18:47 ID:XFpo38pa
掲示板を作っています。
過去のログを表示するのにはどうしたらいいのでしょうか?
最終的には、$page=1 というようなアドレスになるのでしょうが、うまく過去のログを指定記事数だけ拾えません。
どういう処理が考えられるでしょうか?
CSVファイルで、1行づつログを記録しています。

どうかよろしくお願いいたします。
448nobodyさん:03/12/16 18:54 ID:???
>441
2 echo "<form method=POST action="fetchtest.php">";
から既におかしい。PHPになったつもりで頭からこの行辿っていって考えれ。
あとmethodにクオートがなくて、actionはクオートしてるチグハグさに
気持ち悪さを感じないとは...htmlからやり直し。
449nobodyさん:03/12/16 19:08 ID:???
>>447
掲示板1つをとってもやりかたはいろいろあるので、
適当なものをダウンロードしてきて勉強がてら覗いてみるといい。
450nobodyさん:03/12/16 20:46 ID:???
>>447
全ての記事を配列に入れて欲しい記事の位置から表示したい数だけ位置をずらしながら表示すればいい。
一番新しい記事を0行目として、$n番目の記事を配列$kiji[$n]に代入してあるとして、
最初のページを0ページとして、ページあたりに表示したい記事を$x件として、$yページを表示したいとすると、
for($n=0;$n<$x;$n++){echo $kiji[$x*$y+$n];}
これでいけると思う。
451nobodyさん:03/12/16 23:44 ID:XFpo38pa
>>449さん>>450さん
>>450さんのやり方を自分なりに少しアレンジしてやってみたらできました!!
4時間戦っていました。
アドバイスありがとうございました!

今考えてみると、できるはずなのにできない。という状態で1時間以上費やしていたみたいです。
プログラムは組めて、何度も見直してできるはずなのに、なぜかできない状態でした。
テストはローカルでしていたんですが、アドレスの最後に、 ? で引数を指定してやっても、全く反応しなかったんです。

おかしいと思い試しに
echo($hoge)
とだけかいたファイルを作り、ローカルで?hoge=1にアクセスしても何も出ませんでした。

今度は鯖にアップして同じ事をやってみたら、1と表示されました。
ローカルだとできなかったのはなぜなのでしょう。
これはバージョンに依存するのでしょうか。

そこで、思い切って、作ったプムグラムを鯖にアップして動かしたら、できました。
まさかローカルでの実験がいけなかったとは…

本当にありがとうございました。
長文失礼致しました。
452nobodyさん:03/12/16 23:49 ID:???
いいからマニュアル読めよバカ
453nobodyさん:03/12/17 00:00 ID:???
>>451
お前が作ってるものの動作なんか他の奴がわかるわけないだろ
ここは独り言や愚痴のスレじゃない
二度と来るなよ
454nobodyさん:03/12/17 00:20 ID:???
>>451に書いてあるようなことを>>447で言ってくれてたら、
>>449みたいに冷たい言い方はしなかったのだが...

前置きも無しに「最終的に、$page=1〜」ってきたので、>>453が言ってるのと同じような感じを受けた。
>>451の鯖の挙動の違いは、register_globalsの設定の違いから来るもの。
マニュアルの「新しいバージョンのPHPで古いコードを使用する」に書いてある。
455nobodyさん:03/12/17 03:32 ID:cjabnnkZ
Apache/1.3.29 (Win32) PHP/4.3.4の環境で、
$_SERVER['$HTTP_IF_MODIFIED_SINCE']って取得できないのでしょうか?
456nobodyさん:03/12/17 03:48 ID:cjabnnkZ
訂正
$_SERVER['$HTTP_IF_MODIFIED_SINCE']

$_SERVER['HTTP_IF_MODIFIED_SINCE']
457nobodyさん:03/12/17 03:59 ID:cjabnnkZ
すいません、出来ました。寝る前に頸吊ってきます
458nobodyさん:03/12/17 20:49 ID:???
日本語マニュアルmany filesを落としたのですが、
language.types.htmlが真っ白です。(他はどうもない。ソースは見れて、描画されてないので、IEのせいだとおもう。)
ちなみにOperaでも見れました。

だれかzipで圧縮してうpしてくれませんか?tarとかgzがちゃんと解凍できてないのかも・・・
無理なこと言いますが、改行コードがCR+LFのを持ってる人いませんか?
なんか、ソースみると
<html
>
こんな風に改行されてるんですよ・・・
459nobodyさん:03/12/17 20:56 ID:???
>>458
改行コードなんてnkf通せば簡単に変更できるだろうに‥‥
460nobodyさん:03/12/17 20:58 ID:???
>>459
そうですね。ソフトも普通にありますよね。
でも、改行コード変えるだけでいいんでしょうか?
このマニュアル、全部>の前で改行してるんですよね・・・
なんでこんな変なことしてるんだろう・・
461nobodyさん:03/12/17 20:59 ID:xAGvsX5t
初歩的な質問ですいません.
phpで仮に$urlという変数があるとして$url内に含まれたURL部分を自動リンクするルーチンはどう組めばいいでしょうか?
462nobodyさん:03/12/17 21:01 ID:???
>>461
正規表現でURLを抜き取る
463461:03/12/17 21:23 ID:???
$url = ereg_replace("(https?|ftp|news)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)","<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>",$url);
これで大丈夫ですよね?>462
464462:03/12/17 21:26 ID:???
知らんがな
PHPやったことないし
465nobodyさん:03/12/17 21:56 ID:EAj1WsCj
セッションを使いたいのですが、
SIDをメソッドGETで使用する際に
<FORM ACTION=\"./test.php?{$GLOBALS["sid"]}\" METHOD=\"GET\">
としてもうまくいきません。
POSTだと上手く行くのですがどうしたらいいのでしょうか?
<INPUT TYPE="HIDDEN">ってしたいのですがどうやったらいいのかわかりません。
466nobodyさん:03/12/17 22:14 ID:???
>>460
タグとタグの間に改行があるとブラウザによっては
無用なスペースが入るのを防ぐ為じゃないかな。
全てのタグじゃないけど、imgタグとかなど。

>>463
なにをもって大丈夫といっているのかわからんけど、
正規表現のところはググればいくらでも出てくる。
と、\\1\\2は\\0でいいのでないか。
467465:03/12/17 22:25 ID:???
自己解決しました。
session_name()とsession_id()をHIDDEN属性に書けば良かったんですね。
失礼しました。
468nobodyさん:03/12/17 22:25 ID:???
セッションはセッションIDで管理されていて、そのセッションIDはCookieとして保存されてます。
なのでブラウザがCookieを許可していない場合、セッション機構が利用できなかったりします。
もしもしCookieを許可しないブラウザも対応したかったら
SIDをURLにつけてページリンクしたり、POSTしたりするとセッション機構が利用できるようになります。
469nobodyさん:03/12/17 22:26 ID:???
>>468
>そのセッションIDはCookieとして保存されてます。

そうとは一概には言えません。
470468:03/12/17 22:27 ID:???
すまん。
某PHP解説サイトからの引用ですた
471nobodyさん:03/12/17 22:33 ID:???
これからPHPを勉強しようと思っている者です。
上級者の皆さんに質問があります。自分のHPで動画を
扱っているのですが、PHPでダウンローダー対策を取りたい
のですが、どのような方法が考えられるでしょうか?
よく、www.hoge.com/hoge.php?id=123のようなリンクは
どのような仕組みになっているのでしょうか?これを
取っ掛かりに勉強して行きたいのですが、どなたかお教え下さい。
よろしくお願いします。
472nobodyさん:03/12/17 22:33 ID:???
<A HREF=aaa.php?<?php echo SID; ?>">aaaへジャンプ</A>
これって、現在のページにあるセッション全部渡せるんだよね?
473nobodyさん:03/12/17 22:37 ID:???
>>471
それだけが目的だったらcgi(perl)が断然楽。
cgi-lib.pl使ってReadParseすればいい。
その点PHPはGET、POSTの両方を考えないといけないからなぁ
474ヽ(´ー`)ノ:03/12/17 22:48 ID:???
(´-`).。o(…_REQUEST…)
475nobodyさん:03/12/17 22:53 ID:???
>>473
すばやいRe有難う御座います。早速、ぐぐってみます。
これを期にPHPを勉強しようかと思ったものですから、
CGIは考えてませんでした。w
476nobodyさん:03/12/17 23:04 ID:???
>>474
それって、
?aaa=1&bbb=2
みたいなのでも
$aaaと$bbbにちゃんと入るの?
それならば$_POST,$_GETが存在する利点は?
477nobodyさん:03/12/17 23:05 ID:???
>>476
過去との互換性。
478ヽ(´ー`)ノ:03/12/17 23:26 ID:???
>>476-477
(゚Д゚;)ポカーン…って感じなんだが。

_POST は POST メソッドで受けた値が、_GET は GET メソッドで受けた値が入る。
_REQUEST は GET/POST メソッド、Cookie、session などで受けた値が
variables_order で指定した順序に入る。基本中の基本ですぜ(;´Д`)

>>476
> $aaaと$bbbにちゃんと入るの?
register.globals は Off にしましょう。もっとも、On でも期待通りに動くはずだが。

> それならば$_POST,$_GETが存在する利点は?
POST と GET で挙動を変えたりとかをしたい時に使う。

>>477
_ENV/_GET/_POST/_REQUEST/_SESSION(superglobals) は 4.1.0 の時に同時に
導入されますた。互換性のために _REQUEST が存在するわけではありませぬ。

お前ら二人揃って、まぬあるの「定義済の変数」のところを穴が開くまで読んでくださ
い。
479nobodyさん:03/12/17 23:36 ID:???
GETとPOSTのリクエストが同時に来た場合、$_REQUESTじゃどうしようもないな
480nobodyさん:03/12/17 23:43 ID:???
その為に variables_order があるんちゃうんかと小一時間問い詰めたい。
481nobodyさん:03/12/17 23:45 ID:???
なるほど。
それで優先順位決めるわけね。
ん?????
ハッシュって後から追加されたのが優先?
$hash["aa"] = 1
$hash["aa"] = 2
echo $hash["aa"]
は2?
482nobodyさん:03/12/17 23:54 ID:???
>>478
>_REQUEST は GET/POST メソッド、Cookie、session などで受けた値が

で、非推奨になったんだっけか。
483nobodyさん:03/12/17 23:55 ID:???
>>481
と、言うかキー一緒なんだから当然上書きされます。
HashMapのMapとはそう言うことです。
484nobodyさん:03/12/17 23:58 ID:???
なるほど。
つまりvariables_orderは優先順位低い順に書けばいいのか
485ヽ(´ー`)ノ:03/12/18 00:10 ID:???
>>482
deprecated になったのは gpc_order では?
486nobodyさん:03/12/18 11:53 ID:???
データファイルを変数に読み込むとして、データファイル無いのPHPの命令を
実行してから変数に格納することって出来るのでしょうか。
マニュアルを色々探してみたのですがみつかりませぬ。
487486:03/12/18 12:00 ID:???
データファイル無いってなんだよ・・・。
正しくはデータファイル内、です。

fopenするときにHTTPでリクエストすれば良いのかとも思ったのですが、
これだと無駄に重くなりそうなので他の手段を探しています。
488nobodyさん:03/12/18 12:50 ID:???
>>487
eval()かな?
489nobodyさん:03/12/18 13:07 ID:???
テキストファイルから一行毎にCSVに展開したいのですがfgetcsvより速い方法はないですか?
490487:03/12/18 13:57 ID:???
>>488
どうもです。eval()試してみましたが、エスケープしないとだめなので
なかなか使いにくいですね。
やっぱりHTTPリクエストしかないのかな。
491nobodyさん:03/12/18 16:20 ID:aXTLYDWm
<?php include("./head1.txt");?>

<title>ほげほげ</title>

<?php include("./head2.txt");?>

↑のように定型ヘッダとか出力してるんですが、titleの中はファイルごとに違うんで
いまいちな感じになってしまいます。
もうちょっとうまくやる方法ないでしょうか…。
titleの中を変数にするのはなしでお願いします。
(うちで使ってる全文検索では<?php〜?>内が引っかからないんで)
492nobodyさん:03/12/18 16:27 ID:es7PySeA
質問です。
ランダムで画像を表示させるphpプログラムで
1日おき(日がかわったら)ランダムで表示させる画像を変えるには
どうすればいいでしょうか?
493nobodyさん:03/12/18 16:43 ID:???
自分で考えればいいよ。
494nobodyさん:03/12/18 17:04 ID:???
>>492
cronで画像を置き換える。
495nobodyさん:03/12/18 18:04 ID:???
>>494
つまんない。死ね
496nobodyさん:03/12/18 18:21 ID:???
SCRIPT_NAMEもパスが含まれるのなんでだろ〜
仕様?
ファイル名のみを出力したいんだけどなぁ。。。
最後のスラッシュから抜き取るしかないか・・・
497nobodyさん:03/12/18 18:32 ID:???
独り言はhttp://life.2ch.net/yume/でやれ
そうでないならマニュアル読め。
498494 ではないが:03/12/18 18:40 ID:???
>>495
そうかなあ?? それほど非現実的な回答じゃないと思うけど。。
php の中だけで解決する場合だと、画像ファイルを「自分でランダムっぽい
順番で格納」しておいて、date("d") の値(要素数との剰余)を使って取り出す
みたいなダサい方法しか思いつけないっす。

>>496
parse_url で取れませんかねえ??
499nobodyさん:03/12/18 18:47 ID:???
アフォ回答キタ━―━―━(゚∀゚)━―━―━―
500nobodyさん:03/12/18 18:48 ID:???
折り返し地点です。
501nobodyさん:03/12/18 18:50 ID:???
夢板に案内するヤシって基地外ばっかり。
自分がちょっと知ってるとなんでもヒトリゴト、おめでてぇな。
どうせてめぇも始めたときは質問房だったんだろ
502nobodyさん:03/12/18 18:51 ID:???
>>501
お前みたいな無能と一緒にすんなよ(´Д`)
503497:03/12/18 18:54 ID:???
>>501
俺がお前じゃなくて良かったと、心の底から思うよ。
もしお前だったらと震えるこの恐怖感を共有できないのが残念でしかたない。
504nobodyさん:03/12/18 18:59 ID:???
スクリプトネームを取得する方法が知ってるとかそういうレベルか?
それより>>496はどう見ても個人的なつぶやきだろ。
図書館の中で平気な顔で携帯かけてるやつに対する殺意と同じものを感じるよ。
そして言いたい。すべてのドキュソに言いたい。


滅びろ。頼むから。
505nobodyさん:03/12/18 19:07 ID:???
  ̄ ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           O 。
              以上、ヲチスレからの出張組みだったとさ。
506nobodyさん:03/12/18 19:07 ID:zH9wrNbx
厨房質問スマソ。
検索のキーワードが分からず。

mberegが使えない鯖で、日本語マッチングをしたいんでつが。
eregを使って日本語マッチングをする場合、日本語をどういう表現で書けばいいんでしょうか。
具体的には「☆」「★」「!」をマッチさせたいんです。

自分で調べた感じだと「\x〜」なんかを使ったりするのかな、と。
IMの文字パレットで「☆」のJISやSJIS、区点コード、Unicodeも調べられるのは分かります。
どなたか一言で教えて下さいませ。
507nobodyさん:03/12/18 19:08 ID:???
>もしお前だったらと震えるこの恐怖感を共有できないのが残念でしかたない。
もうちょっとましな煽りキボンヌ

>図書館の中で平気な顔で携帯かけてるやつに対する殺意と同じものを感じるよ。
ネタ?
508nobodyさん:03/12/18 19:10 ID:???
>お前みたいな無能と一緒にすんなよ(´Д`)
デムパキタ━━━( ´∀`)・ω・) ゚Д゚)゚∀゚)・∀・) ̄ー ̄)´_ゝ`)−_)゚∋゚)´Д`)゚ー゚)━━━!!!!
509nobodyさん:03/12/18 19:12 ID:???
>>507-508 晒し age
510nobodyさん:03/12/18 19:12 ID:???
>>509
晒しsage
511nobodyさん:03/12/18 19:14 ID:???
ちょっと前まで、たいがいの質問は重複FAQだったところがあるんだが、
最近これまで出なかった質問が出始めてるよな。
誰でも知ってるはずだったことが。
512nobodyさん:03/12/18 19:16 ID:???
>>506
実際試して、どんな不具合があったんだ。
513nobodyさん:03/12/18 19:17 ID:???
マニュアル読むのもだるいので、ここで全部質問してます
514506:03/12/18 19:19 ID:zH9wrNbx
>>512
情報の小出しスマソ。
実際にereg("☆"〜、にしてみましたが、ダメでした。eregiも同じでした。
515496:03/12/18 19:19 ID:???
parse_url['path']もやっぱりパスだ・・・
どれでファイル名取得するんですか?
516nobodyさん:03/12/18 19:27 ID:???
>>514
内部文字コードと対象ソースの文字コードが一致してない可能性は。
517nobodyさん:03/12/18 19:27 ID:???
>>513
なんかホントにそうみたいだな(w
518506:03/12/18 19:29 ID:zH9wrNbx
>>516
ありません。両方共SJISです。
519nobodyさん:03/12/18 19:38 ID:???
>>518
そうか。力になれなくてすまんな。
こっちではmbstring使えない環境でもマッチするんだ。
520nobodyさん:03/12/18 19:40 ID:???
>>519
まあ当たり前だからな。誤ることじゃないだろ。
521nobodyさん:03/12/18 20:18 ID:???
すいません、質問ですがPHPでクラスのメンバ関数の返り値が
別のクラスの場合に
 objA->func()->method
みたいな呼び出しって出来ないのでしょうか?
試しに書いてみたのですがParseErrorになってしまうのです・・・
522nobodyさん:03/12/18 20:31 ID:???
php4のオブジェクトモデルだと無理。
ところでphp5はいつになったら・・もう師走なんですが。
523nobodyさん:03/12/18 20:31 ID:???
>>521
php5だとできる。まだベータだけど。
524523:03/12/18 20:32 ID:???
カブッタ。
525nobodyさん:03/12/18 21:01 ID:???
>>515 あら、ホントだ。スマソ
んじゃ、SCRIPT_NAME + basename() でどうです?
526nobodyさん:03/12/18 21:04 ID:???
$user["$_SESSION['name']"]でうまくいかないのですが、なぜでしょう?
添え字が$_SESSION['name']のハッシュにアクセスしたいのですが・・・
527523:03/12/18 21:05 ID:???
>>526
知るかボケ
528526:03/12/18 21:06 ID:???
>>527
そんなに怒らなくてもいいじゃないですか・・
教えてください
529523:03/12/18 21:09 ID:???
>>528
口のきき方を勉強して出直せハゲ
530nobodyさん:03/12/18 21:13 ID:???
basename(__FILE__,'hoge')

hogeに拡張子を入れればファイル名のみ取得できるぜよ。
531nobodyさん:03/12/18 21:18 ID:???
>>515
なやまずbasename(パス)
>>521
別クラスのオブジェクトが、戻ってくるという意味ですか?
できないと思いますが $a = $this->test();$a->test2();は、いやなのですか?
532nobodyさん:03/12/18 21:54 ID:???
>>526
そのダブルクォーテーションはいらん。
533nobodyさん:03/12/18 22:11 ID:???
無駄だが、この際あってもよかろう。
534526:03/12/18 22:14 ID:???
>>532
ありがとうございました。できました。

>>533
あったらできませんでした_| ̄|○
535nobodyさん:03/12/18 22:15 ID:???
>>533
未確認だが、配列を""で括るなら{ }も追加しないといけなくないかい。
536nobodyさん:03/12/18 22:23 ID:???
>>533
この際ってどの際だよw

>>534
エラーメッセージ見ればもろ書いてあるだろ。
537nobodyさん:03/12/18 22:28 ID:???
複数の変数および配列を各ページへ引き継いで画面遷移
したいのですが、セッションを使った場合、配列そのものを
セッション変数に登録できなかったので
(_SESSION['ary'] = $ary; //←できない $ary は array())
現在は画面遷移しなければならない動作を全て POST にし、
必要な変数や配列の内容を全て HIDDEN に出力して
持ちまわっています。

このように複数画面で使用したい場合は通常の変数を
セッションに登録するか HIDDEN で出力して持ちまわるしかない
でしょうか?

何かいいアドバイスがあればお願いします。
538nobodyさん:03/12/18 22:28 ID:???
もう最近の人はマニュアルなんて読まないんだよ老人ども
539nobodyさん:03/12/18 22:34 ID:???
>>537
serialize();するとか。
540nobodyさん:03/12/18 22:37 ID:???
ぃゃ、そゆもんだいじゃぁ...
541nobodyさん:03/12/18 22:43 ID:???
ああ自動でシリアル化されるんじゃん。
じゃあそもそも問題ないのか。
542nobodyさん:03/12/18 23:21 ID:???
>>537
DBセッションハンドラ
543nobodyさん:03/12/18 23:28 ID:???
あれれ、おめーら、マジで配列変数を$_SESSIONに代入できないんすか?
544nobodyさん:03/12/18 23:32 ID:???
>543
リロードしろよ
545nobodyさん:03/12/18 23:32 ID:???
できるよな?
なんか自信無くなってきてWindowsのphpで試してみようとしたら、
apacheのAllowOverride Noneで session.use_trans_sid offで、
いろいろやってるうちに げwいzば3あおいbljklぜぉb

クラスもセッションに入れられます。
546nobodyさん:03/12/18 23:38 ID:???
>>544
は? セッションハンドらなんて関係ないべ。
547nobodyさん:03/12/18 23:45 ID:???
クッキー拒否されたときにエラーを返すってできますか?
perlだとrepost_checkというものでなんとかなるらしいんですが
ttp://tohoho.wakusei.ne.jp/lng/199912/99120292.htm
548nobodyさん:03/12/18 23:55 ID:???
何も解ってないね。
549nobodyさん:03/12/19 00:02 ID:???
>>547
その処理なら言語は関係ないよ。
httpの構造上その手の方法しかないかと。
550nobodyさん:03/12/19 00:05 ID:???
http://www.asahi.com/politics/update/1218/images/pol1218002.jpg
またおれの画像フォルダにコイツの写真が増えてしまったよ。
551537:03/12/19 00:10 ID:???
みんなすまん。$_SESSION に配列でもクラスでもつっこめた。
一度試してセッションに保存されなかったのでできんと思い込んで
しまった。

本当にすまん。
552547:03/12/19 00:10 ID:???
あ!なるほど、わかりました。
特別なコードとかでなしにアイデアの問題だったですね。
repost_checkは魔法のようなことが出来るんだなぁって思っていました。
今夜また一歩、大人の階段のぼれました。ありがとです。
553nobodyさん:03/12/19 00:31 ID:???
いや、特定の言語に限定されない話だと言っただけ。
分かってないと思うけどスレ違いだからもう来ないでね。
554nobodyさん:03/12/19 00:43 ID:???
PHP に依存しないテンプレートってないですか。
PHP と JSP と .NET が混在するんです。(あー、やだやだ)
555nobodyさん:03/12/19 01:02 ID:???
会社を辞めるのが一番
556nobodyさん:03/12/19 02:27 ID:KjnAZxfD
$message = file(xxx.txt);
$fp = fopen(xxx.txt, "w");
rewind($fp);
for($i = 0; $i < sizeof($message); ++$i){
list($url,$urlcount) = split( "<>", $message[$i]);
fputs($fp, "$message[$i]<>\n");
}
fclose($fp);

↑のようにすると実行するたびに倍に増えていきます。
実行しても$message要素数を増やさないようにするには修正するにはどうしたらよいですか?
557nobodyさん:03/12/19 02:40 ID:???
改行がダブってるだけだろ。

http://jp.php.net/file
> 改行記号はついたままと なります。
558nobodyさん:03/12/19 02:51 ID:???
なんで入出力を見てデバッグするというあたりまえのことを思いつかないんだろう。
帽子に入れた玉がハトになってでてきたらチンパンジーでも訝しむだろうに眠い。
559nobodyさん:03/12/19 03:04 ID:???
まあこの時間だしどうでもいいよ。
560nobodyさん:03/12/19 04:42 ID:???
>>515
ttp://example/~hoge/file.php
var_export(pathinfo($_SERVER["REQUEST_URI"]));
array (
'dirname' => '/~hoge',
'basename' => 'file.php',
'extension' => 'php',
561nobodyさん:03/12/19 09:26 ID:???
>>554
使ったことないけど Velocity は?
http://www.jajakarta.org/velocity/
562nobodyさん:03/12/19 10:54 ID:jbmv19h7
行末の改行を取り除くにはどうするんでしたっけ?
563nobodyさん:03/12/19 10:58 ID:???
>>562
ちょっとはマニュアル嫁
perlと一緒。
564521:03/12/19 12:43 ID:???
>>512-522
ありがとうございます。やっぱりできないんですね・・・(´・ω・`)

>>533
>できないと思いますが $a = $this->test();$a->test2();は、いやなのですか?
別に・・・それほどいやというわけじゃ… う、うーん、やっぱり…イヤかも。
なんとなく無駄に変数を消費してる気がして…貧乏性なもんで。
まぁ深く考えないようにしますw。

ありがとうございました。
565521:03/12/19 12:47 ID:???
うわ、リンク先が無茶苦茶やん・・・ ダメポ…> orz
それぞれ、こっちが正解でした
>>521-523
>>531
566nobodyさん:03/12/19 13:01 ID:Jpq7knlc
セーフモードONでもUpできる画像掲示板ありませんか?
567nobodyさん:03/12/19 13:02 ID:???
>>566
お前が死ねば万事解決。
568nobodyさん:03/12/19 13:03 ID:???
そうですか、ありがとうございました。 (*゚д゚) 、ペッ
569nobodyさん:03/12/19 13:05 ID:???
        _,..::-:::'``::':ー 、
       ,/~:::::::::::::::::::::::::::::ヽ
       :l::::::::::::ノ)ヾ:::::::::::::::::l
      {:::::::ノ    ``ー:::::::{
      {::::}    567   {::::}
      {:::j._____,,   ,,_____ {:::j
      Y.イ'',ニ。=ヽ ,=。ニ、 Y
       `|    `- '    |
         l 、  ー三=-  :!
        i ヽ  ""   / l
        l   ヽ、___,. /  l
        l          l
        l         l
        l  回答終了 l
        l          l
        l          l
570nobodyさん:03/12/19 16:08 ID:???
セーフモードの制限すら知らないでよく言えるよな>>566
571nobodyさん:03/12/19 17:26 ID:???
メル欄に文書く奴ほどキモイのはいないよ
572nobodyさん:03/12/19 23:10 ID:???
Fatal error: Call to undefined function: mb_convert_encoding() in

って出たのですが、何かわかりますか?
573nobodyさん:03/12/19 23:16 ID:???
>>572
未知の関数"mb_convert_encoding()"が呼び出されました。

ちゃんとマルチバイト関数使えるように設定してるか?
574nobodyさん:03/12/19 23:17 ID:???
エラーメッセージ
575nobodyさん:03/12/19 23:17 ID:???
字句通りに解釈すればいい。
mbstringモジュールがロードされていないため。
576572:03/12/19 23:31 ID:???
>>573-575
すみません、、情報が少なすぎました。。
OSは赤帽の9でApacheは2.0.40でPHPは4.2.2でMySQLは4.0.17です。

それで573さんの言っている意味がわかりません・・。
Apacheの設定ですか?LanguagesをEUC-JPにするとかですか?

>>575
それもApache的な問題ですかね?
577nobodyさん:03/12/19 23:33 ID:???
>>576
php.iniじゃないの?
578nobodyさん:03/12/19 23:34 ID:???
毎度おなじみのマニュアル。
http://jp.php.net/mbstring

>576
rpmじゃ駄目。
579572:03/12/19 23:36 ID:???
>>577-578
今、ちょうどgoogleで検索してたらどうやらphp.iniの事みたいですね。
577さんのレスを見て確信しました。
>>578
ソースからコンパイルするのはうまくいかなくて・・・。

とりあえずphp.iniを修正してみます。ありがとうございました。
580nobodyさん:03/12/19 23:40 ID:???
またredhat9か。
581nobodyさん:03/12/19 23:47 ID:???
またマニュアルを読まずに無駄な苦労をする人間が一人。
582nobodyさん:03/12/19 23:48 ID:???
>>576
Redhat9のCDROMからrpmでPHPを入れると、
マルチバイトをサポートしないものがインストールされる。

1. ソースをDLしてきて、configureする時にマルチバイトを使用可にする。
2. srpmを拾ってきてspecファイルをいじくってrebuildする。
3. どこぞの誰が作ったか分からんマルチバイト可のrpmを拾ってくる。

オイラも7.3から9相当にrpmでアップデートしていってPHPではたっと困った。
鯖機にコンパイラを入れたくないので暇なPCを使って2.をする予定。
583nobodyさん:03/12/19 23:50 ID:???
確信しちゃったのかよっ!












いや、意味は無いけど三村ファンでなもので四六時中頭の中で小さい三村が俺に俺に・・。
584572:03/12/19 23:54 ID:???
やっぱり、php.iniのmbstring.internal_encoding = EUC-JPの;
を取っただけでは無理でした・・・。

>>582

実は自分もそうなんです・・。7.3機ではうまく動いていたのに
9にしてから全く駄目で・・・。

とりあえず、もっと調べます。。(もう、かれこれ1週間は調べてますが
585nobodyさん:03/12/19 23:56 ID:???
>>582
伝わってないようだぞw
586582:03/12/20 00:17 ID:???
ちと甘いかなと思いつつ、同じ苦悩を味わった者として追加情報を。
redhat9で配布されてるrpmだとmbstringを扱う部分がごっそり抜けてるので
php.iniをいくら設定しても無駄。
>>582で書いた2.の方法がお薦めなので、「php mbstring spec srpm」でググってみてください。
587572:03/12/20 00:18 ID:???
>>586
わかりました。2の方法で試してみます。ありがとうございました。
588nobodyさん:03/12/20 00:47 ID:???
PHP4でクラスを使うありがたみを初めて感じたのはどのような時ですか?
589nobodyさん:03/12/20 00:57 ID:???
DBのカラム変更が激しかった時、
変更パートを人に押し付けることができてマンセー
590nobodyさん:03/12/20 03:32 ID:???
>>58

亀さんですがー。

HTML Help Workshop 使って、一旦 decompile してからもう一回コンパイルし直すとあら不思議。
ちゃんと読めるようになりました。ちょっとサイズが増えちゃったけど(4.4MB)。
少しだけ手直しが必要だったけどほとんど何もせずに済みました。
こんなことなら本家でやってくれりゃーいいのに…。(-_-;)
591nobodyさん:03/12/20 15:54 ID:???
$user['master'] = "aaa";
$user['user1'] = "aaaaa";
上のように、添え字がID、中身がパスワードという形式で配列にしています。
フォームからIDとパスワードを入力します。(フォームの名前はnameとpassword)
そして以下のようなスクリプトを書いているのですが、両方空白でログインした際もログインできてしまいます。。。
i
f(isset($_REQUEST['name']) && $_REQUEST['name']!=""){$_SESSION['name'] = $_REQUEST['name'];}
if(isset($_REQUEST['password']) && $_REQUEST['password']!=""){$_SESSION['pass'] = $_REQUEST['password'];}
if($user[$_SESSION['name']]==$_SESSION['pass']){ echo "ユーザー ".$_SESSION['name']." でログインしました。<br>";}

どうしたらいいでしょうか?
592nobodyさん:03/12/20 16:03 ID:???
すいません。自己解決したっぽいです。
passwordのif文にelse{$pass = "False";}を付け加えたらできました。
なぜだろう・・・
PHPでは、定義された変数と定義されてない変数を比較したら真になってしまうんでしょうか?
593nobodyさん:03/12/20 16:06 ID:???
頭をオーバーホールして出直せ。
それからお前はSessionを使った認証コードを書くな、絶対に。
594591:03/12/20 16:09 ID:???
すいません。592のはelse{$_SESSION['pass'] = False;}でした。

>>593さん
session_register();
で宣言はしているのですが・・・
根本的に間違っているのであれば、マニュアルのどこを読めばいいか教えていただけませんか?
595nobodyさん:03/12/20 16:38 ID:???
>>591
セッションはページをまたぐ時に効果を発揮するもの。
同じページ内だったら単なるグローバル変数。

1,2行目は$_SESSIONに nameとpassを格納。
3行目 nameとpassの比較。nameをecho。
nameとpassが一緒なら空白じゃなくてもechoされるべ。
596591:03/12/20 16:48 ID:???
>>595
それで>>593さんが怒ってらしたのですか・・・
それは私も理解しています。
ログインしたら、ページが複数あるのです。
ですから、先にセッションに入れておこうかな・・・と。
この場合、まずは変数に入れて認証して、認証されたらセッションに入れる
という方法を取ったほうがよいのでしょうか?
597591:03/12/20 17:00 ID:???
すいません。解決しました。
>添え字がID、中身がパスワード
こういう形式でやるのがそもそもの間違いだったのですね。。
他の方法でやってみます。失礼しました。
598nobodyさん:03/12/20 17:03 ID:???
>>597
>>591のコードには、パスワードをチェックしてる部分が無いのよ。
$_SESSIONを普通の変数のように扱うこと自体は問題無いけど、
>>595が最後の行に書いてるようにロジックがおかしいの。
599591:03/12/20 17:05 ID:???
>>598
え?そうなのですか・・・
初歩的な部分が全然なってないのですね・・・
$user[$_SESSION['name']]==$_SESSION['pass']
これで比較しているつもりだったのですが・・・
600nobodyさん:03/12/20 17:56 ID:???
>>591
$user配列にkey($_REQUEST['name'])が存在するかどうかの
確認もしとけよ。
601nobodyさん:03/12/20 20:35 ID:???
失礼します。
ファイル操作を行いたいのですが、いろいろ探しても解説サイトが見つかりません。
具体的にしたいことは下記の通りです。

・ファイルは、data,data,dataの形式で十数個のデータがコンマで区切ってある。
・そしてそれが数行ある。
1行目のデータだと、$data[0][0],$data[0][1],$data[0][2]・・・・
2行目$data[1][0],$data[1][1]・・・・
という多次元配列に格納したい。

よろしくお願いします。
602nobodyさん:03/12/20 20:46 ID:nvaGG63Y
<?php
$host = "whois.internic.net";
$command = "whois -h ". $host . " ". $_POST[q];
$stdout = passthru($command);
print nl2br($stdout);
?>

ってだけのスクリプトなのですが、
改行コードが<br />に変換されません。なぜなのでしょか?
根本的な勘違いをしてるのでしょうか?
教えていただけたら幸いです。
603nobodyさん:03/12/20 20:52 ID:???
>>602
nl2brは改行コードの前に</br>を挿入する関数。
604602:03/12/20 21:00 ID:???
>>603
そうだったのか・・・・勘違いしてました。ありがとうございます。

ん?でも、それでも<br />は表示されるはずですよね?

実は、改行コードの問題なのか?とも思って、
$stdout = str_replace("\r\n", "\r", $stdout);//Win系は\r\n
$stdout = str_replace("\r", "\n", $stdout);//Mac系は\r
を、
print nl2br($stdout);の前に入れても同じでした。
なお、PHP Version 4.3.3です。
605nobodyさん:03/12/20 21:57 ID:???
>>599
$user[$_SESSION['name']]
未定義変数が現れた時点で、初期化される。
ここで$_SESSION['name']が未定義ならPHPのおかげで$user[0]が定義される。
また、$_SESSION['pass']も自動的に空白が定義される。
$user[0]、$_SESSION['pass']は空白だから、等しい。

ま、最初に
$_REQUEST['name']、$_REQUEST['pass']の空白ではじくこった。
606nobodyさん:03/12/20 22:10 ID:???
>>602
× passthru
○ exec
http://www.php.net/manual/ja/function.passthru.php
http://www.php.net/manual/ja/function.exec.php

exec($command, $result);
$str = implode("\n", $result) . "\n";
print nl2br($str);
607nobodyさん:03/12/20 23:33 ID:???
配列をグローバル宣言するのにはどうしたらよいのでしょうか・・・
608607:03/12/20 23:37 ID:???
すいません。訂正します。
1次元なら$arrayでできたのですが
多次元だとどういうふうにすればいいのですか?
609nobodyさん:03/12/20 23:40 ID:???
セッション変数にpasswd入れるとかノータリンなことやってる奴とは仕事したくないな。
610nobodyさん:03/12/20 23:42 ID:???
>>601
for ($i=0; $data[$i][] = fgetcsv($fp); $i++) { ; }
611610:03/12/20 23:51 ID:???
fgetcsvの引数が足りんかった。
612607:03/12/21 00:37 ID:???
できたからいいです。
多次元配列でも添え字どかいらないんだね・・・$arrayで$array[100]にも$array[100][100][10]にもなるんだね
613nobodyさん:03/12/21 00:46 ID:???
独り言でつか
614nobodyさん:03/12/21 00:47 ID:???
触れないほうがいいと思う。
615nobodyさん:03/12/21 01:54 ID:???
>添え字どか
どこにお住まいですか?
616602:03/12/21 04:56 ID:???
>>606
なるほろー。
ありがとうございます。
617nobodyさん:03/12/21 07:13 ID:???
ファイルロックを使っているときって、
file関数を混ぜると危険だったりするでしょうか?
618nobodyさん:03/12/21 09:16 ID:???
>>617
私にはあなたの質問内容の方がさっぱりわかりません。
619nobodyさん:03/12/21 09:34 ID:???
>>617
file関数と塩基性洗剤と酸性洗剤を混ぜると危険です。
620nobodyさん:03/12/21 10:42 ID:???
Perlで(undef,$a,$b) = split(/-/, $c);
のようにsplitした値をundefで切り捨てるやり方は、PHPではどうやりますか?
621nobodyさん:03/12/21 11:05 ID:???
>>620
配列の添え字の初期値を1以上にすればよい。
622607:03/12/21 12:07 ID:???
>>613
ばーかしね
623nobodyさん:03/12/21 13:00 ID:???
>>620
, だけでok
list(, $a, $b) = explode('-', $c);

http://www.php.net/manual/ja/function.list.php
624620:03/12/21 14:28 ID:???
>>623
サンクス
625nobodyさん:03/12/21 14:30 ID:???
>>624
市ね
626607:03/12/21 14:37 ID:???
>>625
ばーかしね
627620:03/12/21 15:28 ID:???
>>625
うっせーハゲ。
628nobodyさん:03/12/21 16:42 ID:???
file_uploadsが1ってなってるのはうpロードできるの?できないの?
629607:03/12/21 17:21 ID:???
>>628
厨房は滅びろ
630nobodyさん:03/12/21 17:27 ID:???
>>629
もまいなに?
631607:03/12/21 17:43 ID:???
>>627
ばーかしね
632nobodyさん:03/12/21 23:10 ID:???
>>628
しね
633nobodyさん:03/12/21 23:19 ID:???
>>628
他人に質問する時は俺用語は極力使うな。

phpinfoでfile_uploadsが1の場合、設定値はtrueなのでファイルアップロード許可されている。
んでも、phpinfoでfile_uploadsの表示がOnじゃなくて1とは、結構古いPHPの気がする。
#ディレクティブで指定した「文字列」がそのまま表示されるんだっけ?<phpinfo
634607:03/12/21 23:21 ID:???
>>632
ばーかしね
635607:03/12/21 23:38 ID:???
>>633
ばーか
636617:03/12/22 06:47 ID:???
質問の意味がわかりにくかったですかね・・・

flockでファイルロックをかけるわけですが、
この場合、全てのファイルアクセスにおいて
ファイルロックをかけないと穴ができる思うんです。

しかし、file関数でファイルを読み込んだ場合は、
明示的にロックをかけることができないと思うのですが、どうでしょう?
あるいは読み込みの場合は、ファイルロックなしでも大丈夫なもんでしょうか?
637nobodyさん:03/12/22 12:01 ID:0MXzRakt
すいません、PHP(4.3以降)のコマンドライン版をつかってるんですが
大量のテキストを出力する場合に

print FILE <<EOF
 〜出力したいテキスト〜
EOF;

というようなことは出来ないのでしょうか?
標準出力に書き出してリダイレクトという手も考えたのですが
一度の実行で複数のファイルに出力する必要があるので無理でした。
やはり、fwriteでチマチマと書いていくしかないのでしょうか…
638nobodyさん:03/12/22 12:03 ID:???
>>607
本7は帰れ
639nobodyさん:03/12/22 12:06 ID:???
>>637
できるよ。ところでFILEってなに?
640607:03/12/22 12:11 ID:???
>>638
ばーかしね
641637:03/12/22 12:12 ID:0MXzRakt
>>639
FILEはファイルハンドルです。つか、これってPerlの書き方でした・・・スンマセン

できればやり方を教えていただけると助かります。
マニュアルのどの部分かだけでも良いので・・・
642nobodyさん:03/12/22 12:20 ID:???
>>637

$text = <<EOF
 〜出力したいテキスト〜
EOF;

$fp = fopen("file", "w");
fwrite($fp, $text);
fclose($fp);

じゃ如何のか?
#小分けにする必然性は無い
643607:03/12/22 12:27 ID:???
>>642
あんさんもperlに慣れてますな

Perl→<<
PHP→<<<
644637:03/12/22 12:33 ID:???
>>642
なるほど、変数にどんどん書き込んじゃえばいいんですね。
ありがとうございました。(^ー^)
645642:03/12/22 12:42 ID:???
>>643
ハウス > 本7
Copy & Pasteしただけなんだが
どういう構造してんのかね、このkittyは。
646nobodyさん:03/12/22 12:43 ID:???
>>645
藻前、、、ヒアドキュメントミスってんのに八つ当たりかよ・・
<<でやってみろや
647nobodyさん:03/12/22 12:48 ID:???
>>645
藻前、、痛いな・・・
648642 :03/12/22 12:50 ID:???
元の質問の本題は、それじゃないだろ。
くだらんスクリプトのあら探ししかできんのだろ、おまいは
649nobodyさん:03/12/22 12:51 ID:???
>>648
藻前痛いな・・・
650nobodyさん:03/12/22 12:52 ID:???
なるほど。本題さえあってればあとはどんな解答してもかまわんのか・・・
人生の参考にさせてもらうよ
651nobodyさん:03/12/22 12:52 ID:???
とりあえず
>ハウス > 本7
の意味がわからんのは俺だけだろうか
652nobodyさん:03/12/22 12:53 ID:???
>>648
ワラタ 痛すぎる
653nobodyさん:03/12/22 12:53 ID:???
>>651
ここにもう一人いる。
654651:03/12/22 12:55 ID:???
>>653
もう少し詳しく教えてくれ
655nobodyさん:03/12/22 12:56 ID:???
そろそろ釣り発言がくるかな(・∀・ )っ/凵 ⌒☆チン
656648:03/12/22 12:56 ID:???
釣られんなよヴォケが
657nobodyさん:03/12/22 12:57 ID:???
>>654
わからんのにどうやって教えろってんだ。
658651:03/12/22 13:00 ID:???
>>657
ぬ??
本7ってのはあのヤシだろ?
ハウスも、また新種のヤシ??
んで、不等号は何か・・・
と思ったんだ
659nobodyさん:03/12/22 13:01 ID:???
>>658
「わからんのは俺だけだろうか」と言うから、ここにも分からない奴(俺のこと)がいると。
660651:03/12/22 13:04 ID:???
>>659
やっと分かったw
スマンかった∧_∧
661nobodyさん:03/12/22 13:04 ID:???
ところで、痛い>>648はどこへ行った
662nobodyさん:03/12/22 13:05 ID:???
>>660
本7は家に帰れという意味かも。ハウスじゃなくてホームだと思うが。
663nobodyさん:03/12/22 13:10 ID:???
>>662
なるほど。
しかし>>648のほうが本7っぽいが
あぁ、自分で気づいて家に帰ったのか(プゲラッチョ
664nobodyさん:03/12/22 13:12 ID:???
>>648は満場一致で逝ってよし













665nobodyさん:03/12/22 13:20 ID:???
犬のしつけでハウスって言葉を使うからその意味かも
666nobodyさん:03/12/22 13:21 ID:???
失礼します。
アクセス解析のperl→phpへの移行を考え、
ttp://www.lovpop.net/apricot/
のを使いたいのですが、
詳しい解説がないので挫折気味です。
自分の鯖にうpしたところ、
Fatal error: Call to undefined function: mb_internal_encoding() in /home/btb.users/〜〜〜/apricot.php on line 3
と表示されてしまいます。
しばらく自分で調べてみたのですが、打開策が見つからず。
ヒントでも結構ですので、よろしくお願いします。
ちなみにレン鯖ですが、PHPは可とあります。
667nobodyさん:03/12/22 13:25 ID:???
>>666
>>572-577
ちっとは調べろ糞野郎
668nobodyさん:03/12/22 13:31 ID:???
>>667
罵りつつも教えてくれてありがとう。゚(゚´Д`゚)゜。
まだちょっと基本知識が足りないみたいです。
もう少し勉強したらまた来ます。
669nobodyさん:03/12/22 13:39 ID:???
>>668
・php.iniとは何か
・それはどこでいじれるのか
この辺りを理解してみ
670nobodyさん:03/12/22 13:42 ID:H6TLE3X4

                  P              H           P
 
           っ             て         な        に       よ     
671nobodyさん:03/12/22 14:07 ID:???
>>670
エレガントかつワイルドなプログラミング言語
672nobodyさん:03/12/22 14:18 ID:???
エレガントではないな。
673nobodyさん:03/12/22 18:15 ID:???
エレガンツっ
674nobodyさん:03/12/22 18:52 ID:???
wikiはなぜHTMLタグではない独自の文書記述方法を用いているのですか?
675nobodyさん:03/12/22 18:55 ID:???
お前はなぜwikiスレではないここで聞くのですか?
676nobodyさん:03/12/22 19:04 ID:???
いや、PHP言語という観点から見て、HTMLタグを使えるようなシステムにはできないのかと。
677nobodyさん:03/12/22 19:21 ID:???
PHPから見るようなところは無いから675は向こうに回そうとしてるんだろう。
このスレで明らかなように、厨房発言にレスするのは馬鹿馬鹿しいしな。
2ちゃんねるでタグが使えないことが特定言語と関係あるかよ面倒くせえ。
678nobodyさん:03/12/22 20:23 ID:???
答えられないからってキレんなよ(w
679nobodyさん:03/12/22 20:45 ID:???
まあこの場合答えられないとすれば678の方だろうな。
680nobodyさん:03/12/22 20:51 ID:???
>>636
ファイルロックできる環境だとflockしてくれるみたいだね。
つーか試してみ。
つーか風邪気味で頭痛いんだよな。怖きゃ自前でflockしときな。
681678:03/12/22 23:12 ID:???
>>680
お前の風邪のことなんて知るかボケ
682nobodyさん:03/12/22 23:33 ID:???
知らないならスルーすればいいのにね。ヤレヤレ。
683nobodyさん:03/12/22 23:45 ID:???
文字列に日本語(マルチバイト文字)が含まれるかどうかを知るにはどのようにやればよろしいでしょうか?
684nobodyさん:03/12/22 23:56 ID:???
>>683
strlen($str) > mb_strlen($str) ならマルチバイト含み
685nobodyさん:03/12/23 00:10 ID:???
な〜るほど!
686nobodyさん:03/12/23 06:48 ID:???
>>684
毎日ROMってるけど勉強になるね。
687nobodyさん:03/12/23 08:51 ID:???
class Test{
  var $hoge1;
  var $hoge2;
  function Test(){
    $this->$hoge1 = 'moge1';
    $this->$hoge2 = 'moge2';
  }
  function print1(){
    print $this->$hoge1;
  }
}
$test = new Test;
$test->print1();

上のコードを実行したとき、
エラーを出さずに'moge2'と出力するのですが、
これはエラーじゃないのでしょうか?
勘弁してほしいのですが。
688nobodyさん:03/12/23 09:15 ID:???
>>672
ワイルドではあるんだ(´・ω・`)
689nobodyさん:03/12/23 09:34 ID:???
>>687
> class Test{
>   var $hoge1;
>   var $hoge2;
>   function Test(){
>     $this->hoge1 = 'moge1';
>     $this->hoge2 = 'moge2';
>   }
>   function print1(){
>     print $this->hoge1;
>   }
> }
> $test = new Test;
> $test->print1();
>

こうだろ。
要はあなたの書き方が間違ってるの。

今日のところはこの辺で勘弁しといたる。
690nobodyさん:03/12/23 09:48 ID:???
そんなことはわかってます。
というか解決してからの書き込みです。
エラーを出すようにするオプションとかはないのでしょうか?
また、この実行結果はどう解釈されていたのでしょうか?
691nobodyさん:03/12/23 09:55 ID:???
>>690
偉そうに言う前に自分で調べろボケ。
692nobodyさん:03/12/23 10:16 ID:???
PHPの公式サイトのchmヘルプをfixしたんだが、
関係者の人がいつでもいるサイトとか、スレとか無いですか?
693nobodyさん:03/12/23 11:01 ID:???
>>690
error_reporting()
解釈はマニュアルの通り。
694nobodyさん:03/12/23 12:32 ID:???
〜だが、
〜ですか?
695nobodyさん:03/12/23 12:47 ID:???
>>690
偉そうだな、おい。
696nobodyさん:03/12/23 13:11 ID:1v4bioMN
RedHat9&Apache2.0.40-21上でPHP4.2.2-17を使っています。
あるPHPスクリプトのテストをしていまして、
エラーメッセージを表示させたいのですが、
デバッグをどのように行えばよいのかわかりません。
PHPマニュアル(http://php.planetmirror.com/manual/ja/debugger.php)は
見ましたが、やり方がわかりませんでした。
何か良い方法は無いものでしょうか。
php.iniは編集できる環境にあります。
697nobodyさん:03/12/23 13:41 ID:???
698nobodyさん:03/12/23 13:51 ID:???
ちなみに、上のキーでぐぐると、
上から2番目にこのサイトが表示される
ttp://www.matsusaka-u.ac.jp/~okumura/networking/php.html
699nobodyさん:03/12/23 14:10 ID:1v4bioMN
ありがとうございます!大感謝です。
700nobodyさん:03/12/23 21:53 ID:???
配列$arr = array(1,1,1,0,0,0,0,0,1,1,0,0);
の$arr[5]から順番にキーを1つずつ増やして最初に要素が1となるキーを調べたい。
next()を使って考えてみたのですが、配列の内部ポインタを最初に5まで飛ばすうまい方法
が思いつきませんでした。他に賢い方法があればよろしくお願いします。
701nobodyさん:03/12/23 22:01 ID:???
>>700
for($i = 5;$i < length($arr);$i++){
if($arr[$i] == 1){
print("ero ero");
break;
}
}
702nobodyさん:03/12/23 22:17 ID:???
サンクス
703nobodyさん:03/12/23 22:58 ID:???
count($arr)とlength($arr)ってどう違うの?
教えてエロい人
704nobodyさん:03/12/23 23:01 ID:???
>>703
マニュアルに書いてあるだろ。
705nobodyさん:03/12/23 23:03 ID:???
>>703
ちうかそれをいうならsizeofだろ?
706nobodyさん:03/12/24 03:06 ID:COKb7Qt+
現在表示中のURLから、ドメインを抜いた残りの文字列 を
取得したいんだけど、どうしたらいいかな?

1. 現在のURLをシュトーク
2. URLから http://*/ をサクージョ

という手段しかない?
2. はわかるんだけど 1.はわかんない。
707607:03/12/24 03:30 ID:???
>706
お前が死ねば万事解決
708706:03/12/24 03:57 ID:COKb7Qt+
おれはとんでもないアドバイスを受けたようだ。これを見てくれ。
まず「死ねば」をひらがなで表記する
『しねばー』
これを英語らしく発音すると、
しねばー → しーばー → さーばー →
『SERVER』
そして「お前」つまり「おまえ自身」を更に英語に直すと
『SELF』
レスを書いたのがPHPスレと言う事を考えれば先頭に『PHP』を加えるのが当然だ。
すると導き出される解は
『PHP_SELF』
そして最後の仕上げにこれらを並び替えて文法を整える。
するとできあがる言葉は・・・・・・ $_SERVER['PHP_SELF']
709nobodyさん:03/12/24 03:59 ID:???
邪魔だつーの厨房
710nobodyさん:03/12/24 04:51 ID:???
>>709
        _,,.-‐-..,,_       _,,..--v--..,_
    /     `''.v'ν Σ´        `、_,.-'""`´""ヽ
    i'   / ̄""''--i 7   | ,.イi,i,i,、 、,、 Σ          ヽ
.     !ヘ /‐- 、u.   |'     |ノ-、 ' ` `,_` | /i'i^iヘ、 ,、、   |
    |'' !゙ i.oニ'ー'〈ュニ!     iiヽ~oj.`'<_o.7 !'.__ ' ' ``_,,....、 .|
.   ,`| u       ..ゝ!     ‖  .j     (} 'o〉 `''o'ヽ |',`i
_,,..-<:::::\   (二> /      !  _`-っ  / |  7   ̄ u |i'/
. |、 \:::::\ '' /        \ '' /〃.ヽ `''⊃  , 'v>、
 !、\  \. , ̄        γ/| ̄ 〃    \二-‐' //
711nobodyさん:03/12/24 05:09 ID:???
phpinfo見て必要な変数から取れ
712nobodyさん:03/12/24 05:17 ID:???
同じネタに引っかかれてとってもハッピーですね、頭が。
713nobodyさん:03/12/24 05:19 ID:GaZA2the
全角数字を半角数字に変換したいのですがどういう方法がありますか?
714nobodyさん:03/12/24 05:53 ID:???
str_replace('全角数字','半角数字',$str);
715nobodyさん:03/12/24 06:24 ID:???
>>714
それだと
str_replace('1','1',$str);
str_replace('2','2',$str);
str_replace('3','3',$str);
などとしなければいけないですよね。
もっと簡単に済む様な方法はないですか?
716nobodyさん:03/12/24 06:30 ID:???
>>715
10行書くのが面倒ならプログラミングなんてやめな。
717nobodyさん:03/12/24 06:43 ID:???
>>715
ネタじゃなかったのか?

mb_convert_kana($str,"n");
718nobodyさん:03/12/24 11:00 ID:???
[0-9][0−9]使えないかな。
719nobodyさん:03/12/24 12:02 ID:???
Win2k,PHP4.3.4.4
ソをフォームから投稿した場合、ソの次に\が入ってしまいます。
これは何ですか?
720nobodyさん:03/12/24 12:38 ID:???
>>719
¥ [yen]
邦貨,円の記号。


大辞林(国語辞典) から引用

721nobodyさん:03/12/24 13:06 ID:???
ソ\=疎遠
嫌われてるんだよ
722nobodyさん:03/12/24 13:54 ID:???
PHP4.3.4.4
って使ってる人いる?
俺4.3.4だけど。
723nobodyさん:03/12/24 14:04 ID:???
724nobodyさん:03/12/24 14:23 ID:EH1qTJaU
HTMLフォームの属性にGETを指定すると、
"./***.php?id=3"などとアドレスに?や渡した値が付いて、
$_GET['id']とする事で取得出来るとマニュアルに書いてあったのですが、
これを<a href="./***.php?id=3">link</a>として、
linkをクリックした先の***.phpでid=3を取得する方法は無いでしょうか?
フォームを使わず単純にリンクをクリックする事で値を渡したいのです。
725a:03/12/24 14:24 ID:DnWkMN5E
あなたのホームページを無料でリンクしますhttp://wl.pmcj.com/06/000kiko/wlink.cgi リンク登録はこちら
ま〜とりあえず来て!ちなみに私が作ったサイト(?)なので安心を!
726nobodyさん:03/12/24 14:31 ID:???
>>724
$_GET['id']
727nobodyさん:03/12/24 14:51 ID:???
ばかばっかだな
728nobodyさん:03/12/24 16:52 ID:Z5+vM3sX
Redhat9を使っている人で、mbstringを有効にしたい場合、どうしてますか?
デフォルトではmbstringが動作しないようになっているようです。
729nobodyさん:03/12/24 16:54 ID:oKJIuIoU
PHPの日本語ヘルプ(chm版)のキーワードの文字化けはまだ直らないの?
ヘルプで調べようと思ってもできなくてイライラするんでつが・・・
730nobodyさん:03/12/24 17:06 ID:???
>>728
検索して出直してこい、ボケ。
731nobodyさん:03/12/24 17:08 ID:Z5+vM3sX
検索して出てきた方法はもちろん試しましたよ。
732nobodyさん:03/12/24 17:10 ID:???
なら、解決してよかったですね
733nobodyさん:03/12/24 17:11 ID:Z5+vM3sX
使えない回答ありがとうございました。
734nobodyさん:03/12/24 17:16 ID:???
>>731
いったい何を試したんだろう。。。
735nobodyさん:03/12/24 17:21 ID:???
>>728
このスレで既出
>>729
自力で修正したヤシがこのスレに居た気がする
736nobodyさん:03/12/24 17:21 ID:???
>>729
>>692がfixしたみたいなんだが。適当なUploaderにアップしてくれんかなぁ。
737nobodyさん:03/12/24 17:22 ID:???
>>728
このスレにも何度も回答が出てるんだがな。
調べたというなら,何をやって,どうだめだったか示してみろ。
738nobodyさん:03/12/24 17:27 ID:???
>>729
HTML Help Workshop
http://www.microsoft.com/downloads/details.aspx?FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc&DisplayLang=en
これ落としてインストしてchmファイルを逆コンパイルしてcharsetをShift_JISに置換してからコンパイル
それで検索できるようになると思うよ〜

落としてから解凍に失敗する場合は自己解凍形式のcabだと思うから解凍ツールで解凍できるぽ

コマンド一覧
http://www.keiyu.com/help/command.htm
739nobodyさん:03/12/24 18:03 ID:???
超ド忘れで質問スマソ

ClassName::MethodName()型式の、インスタンスを生成しないでクラスメソッドを用いる事、って
一言でいうと何て呼ぶんでしたっけ????
○○参照〜みたいな呼び名が有ったと思うのですが、ど忘れしました。
740nobodyさん:03/12/24 18:15 ID:???
基底を継承して派生
741nobodyさん:03/12/24 18:33 ID:???
いや、違うのでは。(それはextends)
742738:03/12/24 18:39 ID:???
>>736
http://up.isp.2ch.net/up/541447fe8538.zip
一応揚げてみますた

chmodだけエラーでるので勘弁してください(´Д⊂
743nobodyさん:03/12/24 20:55 ID:???
>>733 冷静をよそおってるけど、ほんとはもの凄ーく悔しいんでしょ
744692:03/12/24 21:04 ID:???
>>694に激しく萎えたがとりあえずうp
ツールバーは無駄なので消しました。必要な人はつけてください。
ttp://snow.prohosting.com/~putit/fileuploader/file03122401.chm

ttp://ns1.php.gr.jp/mailman/listinfo/php-doc
の人ここにいないかな・・・。

>>723
マジレスありがとう。
745nobodyさん:03/12/25 01:52 ID:ILVzkLpC
test.php?word=氏ね
で検索結果だそうとすると出ません。
もうダメポ。どうすればいいんですか。
746nobodyさん:03/12/25 02:35 ID:???
$_SERVER['SCRIPT_NAME'].'?word='.rawurlencode('氏ね');
$query = rawurldecode($_REQUEST['word']);
747745:03/12/25 03:22 ID:ILVzkLpC
>>746
神降臨。
ありがとうございました。
748nobodyさん:03/12/25 08:33 ID:???
// 接続設定(サーバ/データベース/ユーザ/パスワード)
$sv = "localhost";
$dbname = "userid";
$user = "userid";
$pass = "pswd";

// データベースに接続する
$conn = mysql_connect($sv, $user, $pass) or die("接続エラー");
mysql_select_db($dbname) or die("接続エラー");
〜略〜
// 取り出したデータを表示する
$sql = "SELECT id FROM t_userid ORDER BY id";
$res = mysql_query($sql, $conn) or die("データ抽出エラー");
〜略〜

某書籍に入っていたプログラムです。
フォームから文字列を入力して送信して、その文字列がデータベースに登録されているかどうか調べるものです。
ですが、実行すると「データ抽出エラー」が出てしまいます。どこが間違ってるんでしょうか?
サーバはXREAを使っています。
749nobodyさん:03/12/25 09:08 ID:???
>>748
とりあえず、
> $res = mysql_query($sql, $conn) or die("データ抽出エラー:" . mysql_errno() . ":" . mysql_error());

として、もう少し詳細なエラーを出してみてはどうでせう。
750736:03/12/25 09:24 ID:???
>>742
最近Google DesktopBarからphpのサイトを呼び出していた。
特定の関数を調べるのなら十分だが、目的の処理をする関数名がわからないときは
ちょとつらかった。
感謝してます。ありがとう。
751nobodyさん:03/12/25 09:31 ID:93wqOOHK
整数を整数で割って、少数が出れば全て切り上げたいのですが、
どのような方法がありますか?
752nobodyさん:03/12/25 09:36 ID:???
>>751
切捨て、切り上げ、四捨五入すべて関数がある。
753nobodyさん:03/12/25 10:38 ID:???
PHP以前の質問が多すぎるんだが
754nobodyさん:03/12/25 11:41 ID:???
>>753
そういう話はよそでやってくれ
755nobodyさん:03/12/25 12:30 ID:???
>>753
甘やかして駄目になった
756nobodyさん:03/12/25 12:53 ID:???
昼の暇つぶしに関数を使わずに書いてみた。

echo $int1%$int2 ? (int)($int1/$int2)+1 : (int)($int1/$int2);
757nobodyさん:03/12/25 13:34 ID:QXesoB1y
mb_encode_mimeheaderでエンコードしたSubjectを
渡してmailを呼んでいるんですが(mb_send_mailはHTMLメール等に使えないので)
Subjectの文字数が多い場合、ヘッダーがSubjectの途中で終わって
ヘッダー部分が本文中に見えてしまうということが起きて困っています。

<?php
$header = "適当なヘッダ情報";
$subject = mb_encode_mimeheader("あああああああああああああああああああああああああああああああああああああああああああ");
mail("xxx@yyy", $subject, "test", );
?>

ヘッダの最後
Subject: =?ISO-2022-JP?B?GyRCJCIkIiQiJCIkIiQiJCIkIiQiJCIkIiQiJCIkIiQiJCIkIiQiGyhC?=

メール本文
=?ISO-2022-JP?B?GyRCJCIkIiQiJCIkIiQiJCIkIiQiJCIkIiQiJCIkIiQiJCIkIiQiGyhC?=
=?ISO-2022-JP?B?GyRCJCIkIiQiJCIkIiQiJCIkIiQiJCIkIiQiJCIbKEI=?=
適当なヘッダ情報

test
↑こんな感じです。

送られたメールをながめるとSubjectの最初の改行で\r\r\nとなっており
これが主原因ではないかと思って\nにしてみると、うまくいきましたが
こっちの場合はSubjectが長くなってしまいみっともなくなっている状態です。

Subject: =?ISO-2022-JP?B?GyRCJCIkIiQiJCIkIiQiJCIkIiQiJCIkIiQiJCIkIiQiJCIkIiQiGyhC?= =?ISO-2022-JP?B?GyRCJCIkIiQiJCIkIiQiJCIkIiQiJCIkIiQiJCIkIiQiJCIkIiQiGyhC?= =?ISO-2022-JP?B?GyRCJCIkIiQiJCIkIiQiJCIkIiQiJCIkIiQiJCIbKEI=?=
↑こんな感じ。あとはOK

できればきれいな形で送りたいと思っているんですが
何かご存知の方がいればご教示ください。
758757:03/12/25 13:45 ID:QXesoB1y
php4.3.2
RedHat 2.4.7
apache 1.3.29
MTAはqmailです
759nobodyさん:03/12/25 15:01 ID:???
なぜ最初の改行は\r\r\nになるのか不明だが、\r\nを指定したらどうよ。
と、mb_send_mailでもhtmlメールを送ろうと思えば送れるはずだが。
760nobodyさん:03/12/25 17:53 ID:0kAtX7WB
apache+phpだがlocalhostでphpファイルを開くと保存になってしまう・・・。
インストールが間違ってるのだろうか・・・。 何回やり直してもだめだ。 ヘルプ!
761nobodyさん:03/12/25 17:54 ID:???
httpd.confとか.htaccessとか
762nobodyさん:03/12/25 20:51 ID:???
getメソッドで値を渡すとアドレスバーに値が映っちゃって嫌なんですが
値を見せずに値を渡す方法はありませんか?
763nobodyさん:03/12/25 20:56 ID:???
POST
764nobodyさん:03/12/25 21:03 ID:???
>>762
生値を見せたくないだけなら、何らかの形でエンデコード掛ける。
765nobodyさん:03/12/25 21:51 ID:???
>>762
フレーム
766nobodyさん:03/12/25 22:21 ID:???
pc初心者に ftpクライアントのインストールから使い方までいちいち
説明するのがだるいので phpで動作するftpクライアントっていいなと
思っちゃったんですが、ftp_get なんかでダウンロードしたファイル
って php が動作してる WEBサーバ上に保存されるんですか?ブラウザ
が動作してる pc に保存されるならありがたいんですが。
767nobodyさん:03/12/25 22:39 ID:???
>>766
コイツ頭おかしいんジャネーノ
768nobodyさん:03/12/25 22:49 ID:???
>>766みたいな初心者に
いちいち説明するのがだるい。
769nobodyさん:03/12/25 22:51 ID:???
>>766
初心者ならIEをFTPクラとして使わせろ
770nobodyさん:03/12/25 23:12 ID:???
>>748
結果くらい報告しろよ!
771nobodyさん:03/12/25 23:33 ID:8z5T3FjX
>>769
通ぶって
 クライアントを
     略すバカ。
772nobodyさん:03/12/25 23:49 ID:???
>>771
('A`)
773nobodyさん:03/12/26 06:17 ID:???
>>771
チですか?キですか?デですか?
774nobodyさん:03/12/26 06:23 ID:???
チンポ
キンタマ
デンブ
775nobodyさん:03/12/26 09:20 ID:???
  ワケ     ワカ       ラン
  ∧_∧   ∧_∧    ∧_∧
 ( ・∀・)  ( ・∀・)   ( ・∀・)
⊂ ⊂  )  ( U  つ  ⊂__へ つ
 < < <    ) ) )     (_)|
 (_(_)  (__)_)    彡(__)
776nobodyさん:03/12/26 09:56 ID:???
↓フィーバー
777nobodyさん:03/12/26 10:18 ID:???
_____________________
|____皿_____||
| ./:::+:+::::\. ||
|√:*::::###::::*:: ||
|| | ::U::777::U::: ||
|||| .::*::::u::::*::: ..||/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
||| \ ∧_∧ < なんぼでも出るんでねえか、ハコたんねーじゃー!!
|||____(   ´∀) ..|\_________
| ==(    )◎〓
|  (○    )  〓
|.. ━┳━) )  〓
 ̄ ̄ ┻  ̄ ̄ ̄
778nobodyさん:03/12/26 10:45 ID:???
>>777
ぜんぜん足りねーじゃん!
申し訳ありません!
ぜんぜん足りねーじゃん!
申し訳ありません!
ぜんぜん足りねーじゃん!
申し訳ありません!
779nobodyさん:03/12/26 16:09 ID:VRlNESxZ
PHP4.3.3のセーフモードでBasic認証を行う
場合、$_SERVER["PHP_AUTH_*"]を受け取
れないとマニュアルにあります。
PHPのセーフモードでユーザ認証をする方法
はあるのでしょうか?
(ApacheのBasic認証を使わない方法で)
780nobodyさん:03/12/26 19:59 ID:???
DB htpasswd
781nobodyさん:03/12/26 22:46 ID:???
ちょっと有名になってくれるとスレも荒れるんだね。
ほんとおまえらしねよ
782nobodyさん:03/12/27 01:10 ID:???
ごめんね。ほんと。
783nobodyさん:03/12/27 07:05 ID:???
まぁいいけどさ。
で、WEB+DBはもう発売されたの?年末ひきこもる前に買い
に行こうか迷い中。
784nobodyさん:03/12/27 10:25 ID:???
>783
もう売ってるから狩って来い。
785nobodyさん:03/12/27 18:28 ID:fzHfq0UG
厨な質問で申し訳ありません。
$arg = array(
     array('a' => '0', 'b' => '1'),
     array('a' => '0', 'b' => '1')
   );
こんな配列を動的に(ファイルから読み込んだりとかして)作成したい場合は
ループ(ファイルが終わるまで){
  $arg[]['a'] = ファイルより取り出した値;
  $arg[]['b'] = ファイルより取り出した値;
}
こんな風に書くのでしょうか?
(日本語で書いた部分は、適当な処理を当てはめて下さい)

宜しくお願いします。
786nobodyさん:03/12/27 20:07 ID:???
PHPのMySQL関数で複数のSQL文を同時発行する事は出来ますか?
$sql = "select * from table1; selet * from table2";
$sql = "select * from table1\; select * from table2";
や、結果セットIDを$rst,$rst[*]の形など
自分でも色々と試して見ましたが、上手く行きませんでした。
mysql.exeへ直接コマンドを打つ時は、
"select * from table1; select * from table2;"等とすると二つの検索が一度の
入力で出来たのですが、PHPからは上手く行きません。
787nobodyさん:03/12/27 20:42 ID:???
$sql1 = ...
$sql2 = ...
$rst1 = mysql_query($sql1);
$rst2 = mysql_query($sql2);
じゃだめなの?
788786:03/12/27 20:51 ID:???
>>787
一度に発行した方が速いかと思って。
mysql_queryが一度で済みますから。
ちなみに自分はいつもsql文を入れる変数は一つしか用意してません。
メモリを節約したいので。
一度使ったsql文をもう一度使う事って滅多に無いし。
789nobodyさん:03/12/27 21:14 ID:???
じゃあ
$sql = ...
$rst = mysql_query($sql);
.
.
.
$sql = ...
$rst = mysql_query($sql);
.
.
.
にすればいいじゃん。
790sage:03/12/27 21:19 ID:8axrId4l
特定のディレクトリだけPHPの実行を禁止したいので、
<Directory /home/httpd/public_html/nophp>
php_admin_flag engine off
</Directory>
のように書いて、nophpディレクトリではPHPを実行させないようにしました。
ためしに、nophpディレクトリにPHPスクリプトを置いてアクセスしてみると、
確かにそれは実行されなかったのですが、1回nophpディレクトリ内の
PHPスクリプトにアクセスしてしまうと、その後サーバ内すべてのディレクトリ
でPHPが無効になってしまいます。

もちろん、nophpディレクトリにアクセスする前は、他のディレクトリでは
きちんとPHPは動作します。nophpディレクトリ内だけをPHP無効にし、
もちろんnophpにアクセス後も、他のディレクトリはPHP有効にしておくには
どのように設定すればよいのでしょうか。

なお、Apacheは2.0で、PHPは4.3.3です。PHPはApacheのDSOとして動作してます。
791786:03/12/27 21:20 ID:1z3yuhjx
>>789
mysql_queryが二度あるので・・・
mysql.exeには一度の入力で済んでいるのですから、
phpのmysql関数にも一度の入力で済ます方法があるんじゃないかと思うんです。
792nobodyさん:03/12/27 21:39 ID:???
コマンドラインなら一度の入力ですんでようが
実際は2度クエリして2つのレコードセットを得るんだろ?

2つの条件で1つのレコードセットを得るようなSELECTをしたいなら
SELECT FROM table WHERE 条件1 AND 条件2
にすればいいだろ。
793nobodyさん:03/12/27 21:42 ID:???
>>791
mysqlのことは良く知らないけど、同時じゃなくて逐次実行されてるんじゃないの?
union all 使えば一回SQLを投げるだけで済むような気もするけど。
794nobodyさん:03/12/27 22:08 ID:???
今日やっとMySQLを使えるようになりました
795nobodyさん:03/12/27 22:18 ID:???
>>785

ループ(ファイルが終わるまで){
    $tmp =& $arg[];
    $tmp['a'] = ファイルより取り出した値;
    $tmp['b'] = ファイルより取り出した値;
}
796nobodyさん:03/12/27 22:54 ID:???
>>791
見た目と実際の動作をゴッチャにしてるようだが、
PHPで2回クエリーを発行することでどれだけ遅くなるのか、
ベンチマークでも取ってみればよかろうよ。
797nobodyさん:03/12/27 23:34 ID:???
SQL 分二つが云々ってのも阿呆臭い話だな。
798nobodyさん:03/12/27 23:47 ID:???
mysql がどのように返すか知らないけど、
php側(php_mysql_do_query_general())はひとつの結果分しか
処理してないので無理。
799nobodyさん:03/12/28 00:15 ID:???
rubyのCGI#escapeHTMLに相当する物を教えて下さい。
800nobodyさん:03/12/28 00:54 ID:???
>>790
RemoveHandlerじゃだめか?AddTypeも禁止しなきゃならないが。
>>799
htmlspecialchars()
801nobodyさん:03/12/28 04:17 ID:???
バージョンを4.3.4にあげたら文字化けするようになってしまいました。
php.iniはこんなかんじで、↓
default_charset = Shift_JIS
output_buffering = Off
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.detect_order = auto
mbstring.substitute_character = none;

phpスクリプトはもちろん全部EUCです。で、
<html><body><form method="post" action="<?php echo $_SERVER["REQUEST_URI"] ?>">
<p>テスト文字列
<input type=text name=iTest size=60 value="ソリューション表示">
<input type=submit value=" テスト "></p>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
  echo "<hr><p>入力した文字列は「" . htmlspecialchars($_POST['iTest']) . "」ですよね?</p>";
?>
</form></body></html>
が、化けてしまいます。(「\\[V\\ヲ」となる)
なお、Apache/1.3.27、FreeBSD 4.7です。
どなたかお助けを。。。
802nobodyさん:03/12/28 06:12 ID:vZZk4md3
自宅鯖にPHP入れて動かしているのですが、
phpinfo()を無効にする方法ってあるのでしょうか?
ディレクトリ丸見えで、すごくカッコワルイです・・・
803nobodyさん:03/12/28 06:20 ID:???
かっこわるくないディレクトリにしてください
804nobodyさん:03/12/28 07:12 ID:???
掲示板を作ってるんですが
1つのファイルで作る場合リロードしたときに二重に投稿されないようにするにはどうしたらいいでしょうか?
805nobodyさん:03/12/28 07:41 ID:???
二重投稿禁止にすればいいんです
806nobodyさん:03/12/28 09:31 ID:???
>>802 ある。

>>804 1つのファイル云々は関係ないでしょ?
2重投稿のチェック用のユニークキーを入力フォームに持たせて、
それのチェックを書き込み時に行うスタイルがオーソドックスかと思う。
807nobodyさん:03/12/28 09:35 ID:???
>>802
php.ini
--
disable_functions = phpinfo
808786:03/12/28 09:47 ID:???
レスありがとうございました。
PHPのMySQL関数では一度のSQL文発行で
二つの結果を受け取るのは無理なようですね。
あと、変数や関数を節約する事は、
負荷軽減や速度向上には繋がらないのでしょうか?
CやC++ならコンパイル時にある程度最適化されると思いますが、
PHPもPHPA等を使えば細かい気遣いは必要無くなるのかな?
809nobodyさん:03/12/28 09:54 ID:OUnFn62i
mb_eregi関数を使って日本語を含む文字列から文字列を取り出したいと思っています。

与えられる文字列は
「タイトル: 初めまして」
もしくは
「title: 初めまして」
です。もちろん「初めまして」の部分は任意な文字列です。

これに対して
mb_eregi("(タイトル|title):[ \t]*([^\r\n]+)\r\n", $text, $subject)
というように正規表現を使うとどちらも検出してくれません。

ですが、
mb_eregi("title:[ \t]*([^\r\n]+)\r\n", $text, $subject)
のようにすると
「title: 初めまして」
だけは検出してくれます。まぁこれは当たり前なのでしょうが…。

mbstringの設定が間違っているのでしょうか?
それとも正規表現の文法が間違っているのでしょうか?
設定は以下のようにしています。

mbstring.language = Japanese
mbstring.internal_encoding = SJIS
mbstring.encoding_translation = On

よろしくお願いします。
810nobodyさん:03/12/28 10:25 ID:???
" :"でマッチさせたらどうだろう?どうせその前の文字列は"title"と各種文字コードの"タイトル"でしょ?
811nobodyさん:03/12/28 10:50 ID:OUnFn62i
>>810
「たいとる:」の他にも「なまえ:」とか「ID:」とかもあるので、これらを区別しなくてはいけないんです。。
ので、それはちょっと無理だと思います…。
812nobodyさん:03/12/28 11:23 ID:???
面倒だからifで分岐しろ
813nobodyさん:03/12/28 11:39 ID:???
>>811
explode()使ったら?
814nobodyさん:03/12/28 12:18 ID:???
少数まで計算しないもしくは少数第一位まで計算する除算がやりたいのですがどうすればいいですか
815nobodyさん:03/12/28 12:30 ID:???
少し頭を使えよ
除算してからやればいいだろ
816nobodyさん:03/12/28 12:55 ID:???
>>814
キャストしてから計算する。
計算してからキャストする。
切り上げる、切り下げる、四捨五入する。
printf()で書式を整える。

どれでもお好きなものを。
817804:03/12/28 15:06 ID:???
>>806
その方法でもいいんですが
二重に送信してしまうこと自体を防ぐにはどうすればいいでしょうか。
818nobodyさん:03/12/28 15:18 ID:???
>>817
Javascriptをつかっていいなら、送信ボタンを押した瞬間に送信ボタンを無効にするとか。
二連打しても二打目は無効にできる。
819nobodyさん:03/12/28 16:31 ID:???
>>804
miniBBSのソースでも見て勉強してはどう?
こなれているソースにはノウハウがつまっているよ
もちろん2重カキコチェックもある。
820nobodyさん:03/12/28 16:45 ID:???
>>819
ノウハウは詰まってるのかもしれないが
あの変態じみたソースを読まされるのは勘弁plz
821nobodyさん:03/12/28 19:28 ID:/yitJExf
>>816
やりたい事は四捨五入なのですが、特定の桁を四捨五入する方法は分かります。
少数第1位を四捨五入する場合は10倍してから最後に10で割れば良いんだけど、
(キャストとはこのn倍してからnで割るという方法の事でしょうか?)
少数第1位以上を四捨五入する場合の方法が分からないのです。
(0.4567835456等の少数を一つのプログラムで整数値まで四捨五入するという事)

自分が考えたコードは、
$p = 5.5;(少数第一位までの少数)
$p = $p * 10;
$p = ($p - ($p % 10)) + ($p % 10 * 2);
$p -= $p % 10;
$p = $p / 10;
なのですが、これでは特定の一桁しか四捨五入出来ません。
少数の桁を全て四捨五入する様なプログラムはどう書けば良いのでしょうか?
822ヽ(´ー`)ノ:03/12/28 19:43 ID:???
http://www.google.co.jp/search?q=php+%BB%CD%BC%CE%B8%DE%C6%FE&lr=lang_ja&ie=EUC_JP&hl=ja
何か必要な機能があるときは、まず調べてみて、気にいったものが存在しなければ
自分で書く、ってスタンスを持った方がいいぞ。でないと、車輪の再発明になる。
823nobodyさん:03/12/28 20:29 ID:6xylSeWv
>>820
ポッカーン・・・
824nobodyさん:03/12/28 22:07 ID:???
ローテクの積み重ねを突き詰めると車輪の再発明に行き着く事はしばしばあるよ。
便利な道具にだけ慣れてると原理まで考えが及ばないからね。
825nobodyさん:03/12/29 04:31 ID:Civnt5Fk
あるスクリプトをCGI版のFORKで常駐させようと思ってます。

そのスクリプト中にfsockopenで110番ポートを開く処理があるんですが、
常駐している間はオープンしっぱなしで良いんでしょうか?
タスクの無限ループ内で開いては閉じ開いては閉じを繰り返した方が良いでしょうか?

826nobodyさん:03/12/29 04:46 ID:???
phpを常駐させないでください。お願いします。
827825:03/12/29 04:50 ID:Civnt5Fk
>>826
なんでですか?
828nobodyさん:03/12/29 05:46 ID:???
共有スペースだとしたら迷惑だってんだろ
もっとも強制終了させられるけどな
829825:03/12/29 05:51 ID:Civnt5Fk
>>828
そんなことを・・・

専用鯖だからこそ、常駐を考えてたんですが・・・
830nobodyさん:03/12/29 06:36 ID:???
>>829
それなら構いませんがね。

一般にスクリプトは常駐させない方がいいです。
メモリがどれだけ無駄に使われてるかわかりませんからね。

もっとも自分のパソコンだし大したことをやるわけでもないでしょうし
それに止まっても問題なさそうだし誰にも迷惑をかけないでしょうから
常駐させてもいいんじゃないでしょうかね。

誰にも迷惑かけない、と言いましたけど、まあその、あれです
「誰にも」 っていうほどユーザいますかね・・・ ああ、失礼。
自分のみがユーザですか。
831825:03/12/29 07:11 ID:Civnt5Fk
>>830
ケンカ売ってんの?
自宅サーバじゃない専用サーバでサイトを運営して、
そのサイト運営での収益が年間2000万円ですと書けば規模は解っていただけますかね?

WEBとメールを連動させたアプリで、今までは.forwardでメール受信をきっかけに
スクリプトを起動させてたのを、常駐させてメールを監視した方が効率がいいと思いたったわけです。

と、ここまで書かないといけなかったのでしょうか?
常駐化させた場合のメリット・デメリットはコチラで試行錯誤しますよ。
そんなに誰かをバカにしたいのですか?

825で聞いた内容に答えて欲しいだけです。
832nobodyさん:03/12/29 07:30 ID:???
>>831
オープンしっぱなしでいいよ
833825:03/12/29 07:32 ID:Civnt5Fk
>>832
有り難うございます。
834nobodyさん:03/12/29 07:36 ID:???
こんなこともわからずに2000万とは恐れ入ったねw
835825:03/12/29 07:52 ID:Civnt5Fk
>>834
うまく流行にのれましたから。
別にプログラミング技術は無くても稼げますよ。

ってゆーか、オープンしっぱなしだと思ったような結果が得られなくなった…
いろいろと試してみます。
836nobodyさん:03/12/29 07:53 ID:???
オープンしっぱなしだとサーバから切られそうだけどね。
自分ちのメールサーバなら大丈夫かな。

>>834
収益が2000万だから、年収はもっと少ないんじゃない?それでも凄いかw
837nobodyさん:03/12/29 07:58 ID:???
>>835
大丈夫、うまくいきますよ。
がんばってください。
あきらめたら負けですよ!
838825:03/12/29 08:06 ID:Civnt5Fk
>>836
たぶんSTATやらのコマンドをうち続けてるから切られはしないと思う。
法人にしてるけど、経費なんかほとんど無いもんで大半はお国へ…
消費税だけでも100万以上でつ…(´・ω・`)

>>837
なんか…からかわれてる?
いや、素直に受け取っておこう。
ありがとう!
839nobodyさん:03/12/29 08:32 ID:???
>WEBとメールを連動させたアプリ

メール投稿型携帯無料掲示板に1クリw

スレ違いだが、個人に毛がはえたような香具師が運営してるとこでも、
携帯系サービスは月1000万稼ぐとこもあるらしい。
840nobodyさん:03/12/29 08:44 ID:???
>>831
> >>830
> ケンカ売ってんの?
> 自宅サーバじゃない専用サーバでサイトを運営して、
> そのサイト運営での収益が年間2000万円ですと書けば規模は解っていただけますかね?
>
> WEBとメールを連動させたアプリで、今までは.forwardでメール受信をきっかけに
> スクリプトを起動させてたのを、常駐させてメールを監視した方が効率がいいと思いたったわけです。
>
> と、ここまで書かないといけなかったのでしょうか?

あたりまえだろ。
841825:03/12/29 09:12 ID:Civnt5Fk
>>839
残念・・・
メルマガ登録時に、あまりにもメールアドレスの間違い(イタズラ)が多いので、
空メールを送らせてメールのFromを取得しようかと…
月に1000万は凄い。

>>840
そうですか。
842nobodyさん:03/12/29 10:38 ID:???
て言うかポートを開くなんてコンシューマ厨房用語使うからややこしくなる。

Listenした状態で放っておきたいのか、それとも何かとAcceptしたままの状態を保ちたいのか。
843nobodyさん:03/12/29 12:45 ID:???
from取得しても意味ないよ。
確認メール送って指定URLクリックさせりゃ良い。
IP取ってるからいたずらすんなよって書いておけば多少いたずらは減るが冬休みは効果激減。
844nobodyさん:03/12/29 15:25 ID:???
質問させてください。

system関数を使い、
バックグラウンドで大量のメールを配信するプログラムを作りました
手順は、宛先の書かれたファイルと本文の書かれたファイルを
file関数で読み込み
読み込んだアドレス宛てにメールを送信するという方式です。

しかし、約800件位までのデータの場合は上手く送信出来るのですが
1000件を越したデータを使用すると
まったく実行もされていない状態のようで上手くいきません。

サーバ環境はレンタルで
RedHat9
PHP4.3.3
Apache2.0
です。

以前、別のレンタルサーバで同じサーバ環境で実行させていたときは動いたのですが・・・
845nobodyさん:03/12/29 15:53 ID:???
なんで他でできたらどこでもできると思っちゃうのかねぇ
しかもこれじゃ、そういう制限のサーバなんだろとしか言えないわな
846844:03/12/29 16:03 ID:???
>>845
たしかにおっしゃるとおりです・・
自分の認識が甘かったです。

一応、今のサーバは専用サーバを借りてroot権限もいただいてます。
php.iniをいじればいいのか、
それともsendmailの設定なのか・・と色々と考えてます。
847nobodyさん:03/12/29 16:32 ID:???
root持ってるならログで確認すればいいのに
848801:03/12/29 17:49 ID:???
>>801
なのですが、どなたかわからないでしょうか?

http://www.php.gr.jp/project/i18n/license-lgpl.html
と関係あるのでしょうか・・・
849801:03/12/29 18:09 ID:???
すいません、perlみたいに行末に「;」がはいってました・・・なおりました・・・
850nobodyさん:03/12/29 18:39 ID:???
このスレの回答者がいちいち質問側を批判するのはなんでだろう
851nobodyさん:03/12/29 19:03 ID:???
そうされてしまうような質問をするからじゃないの?
852nobodyさん:03/12/29 19:44 ID:???
>>851
いいえ、鼻くそをけなしたい目くそがたくさんいるのですよ。
まぁ、ただで赤の他人からまともなアドバイスをもらおうと思う時点でずうずうしいといっちゃ図々しいわけで。
853nobodyさん:03/12/29 21:18 ID:???
phpは兄から教わりました。
854nobodyさん:03/12/29 21:32 ID:???
phpは妹から教わりました。
855nobodyさん:03/12/29 22:50 ID:???
質問です。
URL内の「?」から後ろのデータを取得する関数(方法)を教えてください。
例)
http://〜〜〜/test.php?id=123&key=456
となってたら、「id=123&key=456」を文字列として取得したい。
よろしくお願いします。
856nobodyさん:03/12/29 22:58 ID:???
さようなら。
857目くそ:03/12/29 22:58 ID:???
先生!
鼻くそな>>855をけなしてもいいでしょうか?

858nobodyさん:03/12/29 23:00 ID:???
>>855
その文字列からURLを切り取った残り。
phpinfo見れ。
859nobodyさん:03/12/29 23:32 ID:???
>>855
$_SERVER['QUERY_STRING']
860nobodyさん:03/12/29 23:53 ID:???
>>855は$_GETを知らないという悪寒。
861nobodyさん:03/12/30 00:43 ID:???
>>860
じゃあ教えてあげればいいじゃない。
862nobodyさん:03/12/30 03:54 ID:???
>>825 >>838
細かいところを指摘するようで悪いけど、
>そのスクリプト中にfsockopenで110番ポートを開く処理があるんですが、
オープン(開く)じゃなくてコネクト(接続)じゃない?
fsockopenのopenを指してるのかな。
その後のやり取りでクライアント側だと分かったけど、
この場合は110番ポートは開いてる訳ではなく、メールサーバのPOP3(110)portに繋ぎに行ってるだけ。

ところで、POP3 で繋ぎっぱなしにするならSTATじゃなくてNOOPだよ。(TimeOut回避策なら)
後、DELEでは削除フラグ付けるだけで実際に削除されるタイミングはQUIT時だから、
はまるとしたらその辺りじゃないかなぁと予想。SEE RFC 1939
863802:03/12/30 06:51 ID:MP9mlg10
>>806-807
サンクスです。設定・確認できました。
864nobodyさん:03/12/30 09:51 ID:???
>>862
だからポートを開くとか厨房用語を持ち出すからややこしくなる。
865nobodyさん:03/12/30 10:15 ID:???
>>852
ここは質問スレ。このスレに置いては目くその方がおかしいと思う。
質問する事が図々しいと思うならこのスレ自体に疑問抱くのが筋だろ。
866nobodyさん:03/12/30 10:33 ID:???
>>865
俺にやつあたんなよ。
後、相手のことも考えず権利ばかり主張するや釣ってどうかと思うぞ。
867nobodyさん:03/12/30 11:07 ID:???
>>866
ごめんなさい。
868nobodyさん:03/12/30 11:18 ID:???
>>866
とりあえずもちつけ。
869nobodyさん:03/12/30 11:28 ID:???
>>865
質問スレじゃなくて素人を小バカにして優越感に浸るスレです
まともに答えてくれる人もいるけどね
870nobodyさん:03/12/30 11:42 ID:???
既出つうかFAQな質問や、PHP以前の質問が多いのだろ。
以前、あまりにもひどいので、初心者用のスレが一時できていたのだけど、
あれってどうなったの?
871nobodyさん:03/12/30 11:51 ID:???
>>870
ここがそうだと思ってたんだが・・・
872nobodyさん:03/12/30 17:19 ID:gDnAjtIa
なんで & が == より優先度が低いのですか?

if ($bit & BIT == BIT) func();

なんてやっててハマってしまいました。
873nobodyさん:03/12/30 17:21 ID:???
ごめんsage
874nobodyさん:03/12/30 17:43 ID:???
>>872
「なんで」に答えられる人はこのスレにはいないと思うけどなぁ。
マニュアルでも演算子の優先順位として== > & とはっきり明記しているし、
そう定義したからとしかいえないんじゃないかと・・・。
漏れは省略可能な括弧も極力明記するようにする主義なので、
はまることはないなぁ。

if (($bit & BIT) == BIT)
{
 func();
}
875nobodyさん:03/12/30 18:12 ID:???
大抵の言語で == の方が & より優先順位が高いよ。
実際のプログラムの中でも 算術演算 比較演算 論理演算 の順に
計算していくことが多いから真っ当な気がする。
オイラも
> 省略可能な括弧も極力明記するようにする
ようにしてるので困ったことは無いなぁ。
876nobodyさん:03/12/30 18:39 ID:SVxHeps/
Apache2 + PHP4.2.2で500kb以上のファイルがアップロードできないのは回避できませんか?
877nobodyさん:03/12/30 18:50 ID:???
>>876
php.iniは確認した?
878nobodyさん:03/12/30 19:07 ID:???
>>877
はい、メーリングリストを探し回って設定してみたのですが無理でした

php.iniの一部貼り付け
max_execution_time = 300
memory_limit = 10M
post_max_size = 8M
file_uploads = On
upload_tmp_dir = /tmp
upload_max_filesize = 5M
879nobodyさん:03/12/30 20:06 ID:???
>>878
php4.3.4でもだめぽ?
880nobodyさん:03/12/30 20:35 ID:???
一応ブラウザとOSも・・・とか言ってみるテスト
881ヽ(´ー`)ノ:03/12/30 21:27 ID:???
>>876
Apache 側の設定で LimitRequestBody とか設定されてたりしない?
882nobodyさん:03/12/30 21:28 ID:???
>>879
4.3.4にしたらうまく行きました
ありがとうございました
883nobodyさん:03/12/31 13:51 ID:NKIok0hy
フリーのPHPカウンターを3つほど試してみましたが、いずれも頻繁に
データが壊れます。(平均2日に一回ぐらい)
パーミッションやディレクトリは確認してます。
サポート掲示板に書いてもレスはなし。
アクセス数は1日7000〜10000ぐらいなんですが、ごれぐらいだと壊れる
のが普通なんでしょか?

ちなみに以下のものを試してみました。
http://php.s3.to/counter/
http://works.xrea.jp:8080/cnt/
http://www.try-php.com/script/index.php?menu=counter
884nobodyさん:03/12/31 14:44 ID:???
>>883
自分で作れば?
10行くらいでできるでしょ。
885nobodyさん:03/12/31 17:22 ID:???
>>883
それはレンタル鯖の規制とかのせいでは?どこ使ってるの?
886nobodyさん:03/12/31 23:26 ID:???
>>883
件のスクリプトは見てないけど、ロック処理が甘いか
ロックが動作してないんじゃない?
887nobodyさん:04/01/01 13:30 ID:naoSY8uG
ZendOptimizerとPHPAcceleratorって併用出来ないよね?
確か併用するとエラーが出てApacheが起動しなくなるとか聞いた事があるんだが
併用出来ると書いて両方使わせてるPHPのWEB講座を発見してしまった。
バージョンによって違うのかな?
888nobodyさん:04/01/01 13:52 ID:???
>>887
その講座の作者に質問汁!
で、結果をここにも流してちょうだいな。
889883:04/01/01 22:42 ID:lu5t9otf
今はこれ使ってますがやはり定期的にデータ壊れます。鯖は月12000円のまあまあのものです。
<?
$log = './all.dat';
$now_date = gmdate("Ymd", time()+9*3600);
$yes_date = gmdate("Ymd", time()-15*3600);
$dat = file($log);
list($key, $yes, $tod, $all)=explode("|", $dat[0]);
if($key == $now_date){
$tod++;
}else{
$yes = ($key == $yes_date) ? $tod : 0;
$tod = 1;
}
$all++;
$new = implode("|", array($now_date,$yes,$tod,$all));
$fp = fopen($log, "w");
flock($fp,2);
fputs($fp, $new);
fclose($fp);
$yesterday = sprintf("%0"."7"."d", $yes);
$today = sprintf("%0"."7"."d", $tod);
$total = sprintf("%0"."7"."d", $all);
if(0){
$yesterday = outhtml($yesterday, $yes_path);
$today = outhtml($today, $day_path);
$total = outhtml($total, $all_path);
}
?>
890nobodyさん:04/01/01 22:50 ID:???
>>883
PHPのカウンターは壊れるからアテにならんよ。
漏れはKentのPerlなカウンター使ってるが、壊れにくいよ。
日/18000ヒットのページに設置して1年使用して壊れたの1回だけ。
PHPの方はよく壊れてたから使うの止めたし。
891nobodyさん:04/01/02 00:04 ID:Sa3Xeut9
1000GEXで使ってるカウンタはPHPだが18000hitとなる現在でもデータが
クラッシュした事はない。
892nobodyさん:04/01/02 00:12 ID:???
実験してみた。

$fp = @fopen("count.txt","r+") or die("ファイルが開けません");
$count = fgets($fp, 64);//64バイトorEOFまで取得、カウントアップ
$count++;
fseek($fp, 0);//ポインタを先頭に、ロックして書き込み
flock($fp,2);
fputs($fp, $count);
fclose($fp);//ファイルを閉じる
echo $count;

の形式で1秒に10回アクセスしたらすぐにぶっこわれました。
893nobodyさん:04/01/02 00:20 ID:???
>>892
そのflockの仕方だと言語に関係なくcount.txtの中身がおかしくなる。
894nobodyさん:04/01/02 01:06 ID:???
>>890
痛いな
895nobodyさん:04/01/02 01:08 ID:Sa3Xeut9
1000GEX用テキストカウンタ
<?php
$num = 6; // 桁数
$f_size = "4"; // 文字サイズ
$f_color = "black"; // 文字色
$ctfile = './counter.dat'; // データファイルのパス(相対でよし)
$ct = 0;
 if (($fno = @fopen("$ctfile", 'r'))) {
  $ct = fgets($fno, 32000);
  fclose($fno);
 }
 if ($ct == '' || $ct < 1) {
  if (file_exists("$ctfile")) exit;
 }
 if(($fno = fopen("$ctfile", 'w'))) {
  $ct++;
   flock($fno,2);
    fwrite($fno, "$ct", 32000);
   flock($fno,2);
  fclose($fno);
}

 //表示
 print "<p align=\"center\"><font size = $f_size color = $f_color>";
 $ty = $num - strlen ($ct);
 for($rt=0;$rt <= ($ty-1);$rt++){
  print "0";
 }
 print $ct-1;
 print "</font></p>";
 $dt= date("Y/m/d H:i",time());
?>
896nobodyさん:04/01/02 01:11 ID:Sa3Xeut9
間違えた、、
2回目のflockは
flock($fno,3);

897nobodyさん:04/01/02 01:24 ID:???
>>889
書き込みモード "w" -> "r+"。
open, flock が成功しているかどうかreturn valueをチェック。
ファイルサイズを切り詰める必要があるなら、flock後にtruncate。で、どうだろう?
898nobodyさん:04/01/02 01:31 ID:Sa3Xeut9
今になって>>895見たらかなり糞ってるので作り直した。
<?php
$num = 6; // 桁数
$f_size = 4; // 文字サイズ
$f_color = "black"; // 文字色
$ctfile = "./counter.dat"; // データファイルのパス(相対でよし)
$buf_size = 20;
 if(file_exists($ctfile)){
  if ( !($fp = fopen($ctfile,"r")) ){
   print "Error";
  }
  $ct = fgets($fp, $buf_size);
  fclose($fp);
 }
 if(!$ct){
  $ct = 0;
 }
 $ct++;
 if( !($fp = fopen($ctfile,"w")) ) {
  print "Error";exit;
 }
   flock($fp,2);
    fwrite($fp, $ct, strlen($ct));
   flock($fp,3);
  fclose($fp);
 print "<p align=center><font size={$f_size} color={$f_color}>";
 $ty = $num - strlen ($ct);
 for($rt = 0;$rt < $ty;$rt++){
  print "0";
 }
 print "{$ct}</font></p>";
?>
899nobodyさん:04/01/02 01:39 ID:???
ファイルオープンがエラーになってもずっと処理続くっていうのはいただけない
exit;入れて味噌
900nobodyさん:04/01/02 01:51 ID:???
いや、本7はexitしすぎだから抜くくらいの感じがよいw
つーかいつの間にかflockの話から本7スクリプトデバッグスレになってるな
901nobodyさん:04/01/02 01:52 ID:???
不思議なインデントにワロタ
902nobodyさん:04/01/02 01:57 ID:Sa3Xeut9
見事にexit忘しれてるわ。
すんません。
ホントは全部の戻り値を判定するべきなんだろうけど
903nobodyさん:04/01/02 02:04 ID:???
>>902
ホントは?
バカ?w
904nobodyさん:04/01/02 02:08 ID:Sa3Xeut9
みなさんPHP5の導入に備えてテストとかされてますか?
905nobodyさん:04/01/02 02:50 ID:???
<input type=button value=予想のみ class=button onClick=location.href='?mode=exp&type=text&<?php echo SID; ?>';>
<input type=button value=結果のみ class=button onClick=location.href='?mode=result&type=text&<?php echo SID; ?>';>
こんな感じでセッション使ったページを作ってるんですが
初めてクリックしたら
?mode=exp&type=text&PHPSESSID=42d98f980709f3e0d6cc7ceabf731f39
ってなるじゃないですか?
そして、その後、セッションが有効なときにクリックすると、PHPSESSIDの部分が消えて
?mode=exp&type=text&
ってなってしまって最後の「&」が不恰好です。
こういう場合「?mode=exp&type=text」にしたいのですが、どういう風にすればいいのでしょうか?
906nobodyさん:04/01/02 03:03 ID:bx6X7nq2
ファイルが無いアドレスにアクセスされた時にTOPを表示または別ページを表示させるには?
907nobodyさん:04/01/02 03:04 ID:bx6X7nq2
PHPスレだった誤爆です。スマソ
908nobodyさん:04/01/02 03:33 ID:???
>>898
fopenに成功してflockで失敗した場合の動作を考えてみよう。
書き込みモード"w"では、fopen時にファイルサイズが0になってしまう。
ファイルが壊れる原因は大抵これなんじゃないかな?
909nobodyさん:04/01/02 04:37 ID:Sa3Xeut9
>>908のおっしゃる通り、厳密にはwモードでfopenした時点で一度ファイルを
新規で生成しているのでサイズは0バイトになる。
そこから書き込みが成功し書き込みが終わる空っぽのままだね。
さらにflockに限らず一連の処理が終わるまでにエラーや停止が行われると各処理層で
ロックが残る。
その後ファイルが開いたままだったりシステム側でロックが残ったままだと一部のファイル情報
に変化があった場合に正常な読み込みをしない。
で、その誤った数値データ等でで読み書きして不正なデータが出来上がる。
もしかしたらセキュリティー・ホールにだってなり得る。
ちゃんとしたI/O処理作るときはunlink renameで冗長性を持たせるようにはしてると自己弁護させてもらう。
PHPの欠点はfile()のようなカプセル化された関数が書き込み側に用意されていない事だね。
なぜか用意される関数の水準にムラがある。
910nobodyさん:04/01/02 04:49 ID:???
>>905
session.use_cookie/session.use_trans_sid
の設定を有効にすれば無理に
「&<?php echo SID; ?>」入れなくていいって言いのはダメ?
911nobodyさん:04/01/02 04:54 ID:???
>>906
PHPかな?
.htaccessの設定でいけるんじゃない?

>>PHP Counter
http://itbtech.itboost.co.jp/php/php_04.php
ここの解説のってどうなの?
あと俺はDBに保存する形取ってるんだけど問題なんかな?w
912nobodyさん:04/01/02 06:57 ID:Nm+pTy58
申し訳ありません、現在のPHPunit(0.6.2)で、コマンドラインから起動し、
100%OKなことをシェルスクリプトその他で判定する方法はありますか?

昔はあったようなのですが、現在のPHPunitだとみんなでGUI(HTML)を使っています(^^;
913905:04/01/02 10:58 ID:???
>>910
相手がクッキーを使わないのを想定してますのでURLにセッションを埋め込みたいんです。
914nobodyさん:04/01/02 11:34 ID:???
Perl ではあったような気がするけど、ファイルをロックしないカウンタ。
ただし、カウントファイルを移動するときには注意。
<?php
$countfile = './counter.dat';
$num = 6;

if (!is_file($countfile)) {
    @touch($countfile, 0) or die("Error\n");
}
$count = filemtime($countfile);
touch($countfile, ++$count);

printf("%0${num}d\n", $count);
?>
915nobodyさん:04/01/02 12:55 ID:???
>>913
>その後、セッションが有効なときにクリックすると、PHPSESSIDの部分が消えて
ってcookie読み込んでるから消えてるんじゃん?
session.use_cookie/session.use_trans_sid
を一回調べる事がbetter
91679:04/01/02 13:46 ID:i/aKj9Ae
CSSを切り替えるツールをjavaではなくPHPで作りたいのですが
クッキーを残すためにはどうすればいいですか?
917nobodyさん:04/01/02 14:35 ID:???
>>908-909
それは初耳ですね。

ロックかけて処理している途中、
他のプロセスが"w"モードのfopenでファイルの中身をカラにするから
壊れると思ってましたが。
918nobodyさん:04/01/02 15:27 ID:Sa3Xeut9
>>917
システムコールの優先度によるんじゃない?
919nobodyさん:04/01/02 15:42 ID:???
<? phpinfo() ?>
のような簡単なスクリプト(test.php)が実行できません。
Internal Server Error というエラーがブラウザ上で表示され、apache(2.0.48)のエラーログには
[error] [client 127.0.0.1] Premature end of script headers: test.php
のようにエラーが出ます。webで"premature end"というキーワードでいろいろ調べたのですが、
そもそもヒット数が数少なく、有用そうな情報はsuexecとの関連を指摘していました。
test.phpと同じディレクトリに同じ権限(605 user:users)でtest.cgiというファイルがあるのですが、こっちは
全く問題なく実行できています。
phpのバージョンは4.3.4でconfファイルには
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
AddHandler cgi-script .cgi .php
LoadModule php4_module extramodules/libphp4.so
を記載してます。
920nobodyさん:04/01/02 15:42 ID:???
>>916
普通にクッキー与えてif文でいいのでは?
921nobodyさん:04/01/02 15:45 ID:???
>>919
AddHandler cgi-script .cgi .php

AddHandler cgi-script .cgi
にしてみたらどう?
922919:04/01/02 16:06 ID:???
>>921
apache再起動後、やはり同一のエラーが出ます。
libphp4.soはありますし、そこへの参照も919のように書いてあります。
追加情報ですが、Gentoo/Linuxの上で動かしてます。
923nobodyさん:04/01/02 16:23 ID:???
>>922
<?php
phpinfo();
?>
でももちろんだめだよね?
924nobodyさん:04/01/02 17:21 ID:???
>>916
setcookie()じゃないの?
925nobodyさん:04/01/02 17:22 ID:???
>>919
俺の浅はかな読みでは
php_flag short_open_tagがoffでは?

<?php ?>と<? ?>では場合によっては(ry
926nobodyさん:04/01/02 17:24 ID:???
>>925のphp_flag←無視して(´;Д;`)
short_open_tagです
927nobodyさん:04/01/02 18:16 ID:???
>>919
"Premature end of script headers"でググって1200件。
ヒット数が数少なくは思えない。
928nobodyさん:04/01/02 19:02 ID:Sa3Xeut9
>>919
PHP/CGI失敗のよくあるパターン
・#!/usr/local/〜のパス。シェルが使えるならfind /usr|grep "php"で所在確認
・改行コード LinuxとかならLFに置き換える
・セミコロンの付け忘れ
・<?php にしていないとか
929919:04/01/02 22:39 ID:???
こんなに填ってるのは久々です。(w

>>925>>926>>928
?php でもダメです。ちなみに short_open_tag は on になってました。

>>928
nkf -Lu test.php > test2.php でサイズ変わらず。Linuxの上でファイルは編集しているので
改行コードはLFのみのはずですし。案の定これでもダメ。
モジュールと単体の両方php入れてたので混乱してると思い、単体の方を削除。
モジュールの位置は設定ファイルと一致していることは確認済です。ディストリが
gentooで各種設定ファイル(の位置)が特殊なのは心得てる積もりです。

>>927
apache php を加えて日本語だと167件です。明らかに関係なさそうなのを除いて
全ページ目を通しました。英語を読むしかないですね。

↓現時点でのtest2.phpの中身です。
--------
<html>
<body>
<?php phpinfo; ?>
</body>
</html>
930nobodyさん:04/01/02 22:41 ID:???
phpinfo();

…じゃないと駄目なんじゃないの?
931nobodyさん:04/01/02 22:54 ID:???
>>929
プッ…
-------
<?php
phpinfo();
?>
-------
こうしとけ。
932919:04/01/02 22:54 ID:???
>>930
おお!と思いましたが・・・ phpinfo(); でもダメでした。

なんか正月から2日もこれしかやってないんです。鬱氏
933919:04/01/02 22:57 ID:???
>>931
それでもダメです。

↓現在 -rw-r--r-- 1 user users 改行コードはLF
----------------
<html>
<body>
<?php
phpinfo();
?>
</body>
</html>
934nobodyさん:04/01/02 23:46 ID:???
AddModuleはしてるの?
935nobodyさん:04/01/03 00:06 ID:???
ScriptAliasしてないよね?
936nobodyさん:04/01/03 00:42 ID:2DwnkFHA
っていうかlibphp4.soじゃCGIで実行できないけどな。

#!/usr/bin/local/php
<?php
phpinfo();
?>

もしくは

#!/usr/bin/php
<?php
phpinfo();
?>
でダメなら根は深いかも
937nobodyさん:04/01/03 00:44 ID:2DwnkFHA
上の方を訂正
#!/usr/bin/local/php → #!/usr/local/bin/php
とういうか
php -v とかしてみれ
938919:04/01/03 00:55 ID:???
みなさん色々と手を煩わせてしまい、ごめんなさい。
もしかすると gentoo proper の問題かもしれないので
いったん離れて fedora でほぼ同等のバージョンで試してみます。
しばしお待ちを。その前に936さんと937さんのお知恵を拝借してみますが。
939nobodyさん:04/01/03 01:08 ID:???
そもそもCGIで動かしたいのかモヂュールで動かしたいのかよくわからん。
940919:04/01/03 01:58 ID:???
えーと、単体を削除したことからおわかりのように、モジュールで動かしたいです。
その辺が分らずに単体もインストールしてて、解説頁も手当たり次第に参考にしてしまったのが
原因ではないかとは思っていますが・・・。
Windows では過去に何回か動かした経験があるので甘く見すぎてました。
941nobodyさん:04/01/03 02:10 ID:2DwnkFHA
最悪のパターンだ、、

LoadModule php4_module extramodules/libphp4.so
AddType application/x-httpd-php .php
だけに書き換えなさい
CGIハンドラは
AddHandler cgi-script .cgi
に変更

最初に何がしたいのか明記する事が大事
942nobodyさん:04/01/03 02:10 ID:2DwnkFHA
LoadModule php4_module modules/libphp4.so
の間違い
943919:04/01/03 05:27 ID:???
あ、いままで掛かってしまいました。大半はネットで他のことしてたんですけど。
えっと、結論からいって、Fedoraでは httpd と apr-* php を入れて、設定をちょこっと
変えただけで動きました。
それで分かったんですけど、大間違いしてました。 pukiwiki というのを使おうとしてたんですけど
cgi 版の時は あるファイルを設定しないと動かないそうです。たぶん、これだと思います。
944919:04/01/03 06:16 ID:???
正常稼働キタ━━━( ´∀`)・ω・) ゚Д゚)゚∀゚)・∀・) ̄ー ̄)´_ゝ`)−_)゚∋゚)´Д`)゚ー゚)━━━!!!!

今まで根気よくお付き合い下さった皆様方、ありがとうございました。これでようやく寝正月を迎えられます。

原因:
これといって決定的なことがわからないのですが、いろいろ多重に重なっていたようです。
いちばんは、/etc/apache2/conf/apache.conf (RHでは/etc/httpd/httpd.confに該当)で
mod_userdirを有効にしてしまっていたことみたいです。
さらに、自分のディレクトリの権限を設定するところで
/home/user/public_html としなければならないところを、/home/user/~user/public_html としていたこと
さらに、DocumentRootが/var/www/localhost/htdocsになってて、その直下に
ln -s /home/user/public_html d として d (diaryの略のつもり)とリンクを張っていたのに
そっちの/varの方はいじらずに、~/の方のファイルばかりいじっていたこと
などが絡み合っていたようです。とりあえず、動くようになりました。ほんとにサンクスコ!
945nobodyさん:04/01/03 06:20 ID:???
一人相撲だな。
946nobodyさん:04/01/03 07:18 ID:???
動的なPHPと、まったく同じ内容の静的なHTMLとで、リクエストからブラウザ表示まで
どのくらいの時間差が生じるのか計測したいのですが、どういったやり方が
ございますでしょうか?
947nobodyさん:04/01/03 08:00 ID:???
>>946
普通にしたら?
948nobodyさん:04/01/03 09:44 ID:???
>>946
ab
949nobodyさん:04/01/03 11:00 ID:???
-n 10000 -c 1000
950nobodyさん:04/01/03 11:35 ID:4FfauiXh
今、興味でphpを打っていたのですが
Hello Worldすらうまく表示できませんでした

調べると、サーバーが対応していないと使えないとの事
PHPをサポートしているサーバーでいいところがあれば教えて下さい。
ちなみに現在はSAKURAのバーチャルドメインで月2000円払ってます
大体同じような規模で安定している所おねがいします。
951nobodyさん:04/01/03 11:39 ID:2DwnkFHA
XREA.com
952nobodyさん:04/01/03 11:43 ID:???
興味でやるのなら自分ちのPCでいいんじゃないの?
953nobodyさん:04/01/03 11:56 ID:???
>>950
この板で扱う話題ではありません

レンタル鯖板へどうぞ http://pc2.2ch.net/hosting/
954nobodyさん:04/01/03 17:01 ID:tyMZ1BXc
php で、他のサーバにあるページをインクルードしているのですが、
インクルードしてきたファイルのリンクをたどろうとすると
「サーバ内にそのファイルはありません。」となってしまいます。
なんかいい方法ないでしょうか。
955nobodyさん:04/01/03 17:19 ID:???
ディレクトリの関係を見直せ
956nobodyさん:04/01/03 22:07 ID:???
>>954
何故ソースを出さない do it!
957nobodyさん:04/01/04 13:00 ID:???
<?
$fp = fopen ($Path, "a");
flock ($fp, LOCK_EX);
fputs ($fp, $Data);
flock ($fp, LOCK_UN);
fclose ($fp);
?>

というスクリプトで、最下行にどんどん $Data を追記していくスクリプトを書いた
のですが、ファイルの膨大化を防ぐために、行数に応じて先頭行だけ消す処理を
加えたいと考えています。

そこで先頭行のみダルマ落とし方式で消すには、どのようにすればよろしいでしょうか?
よろしくご教示下さい。
958nobodyさん:04/01/04 13:13 ID:???
aなんてモードあったんですか。へぇ
959nobodyさん:04/01/04 13:44 ID:???
行数カウントして1行目を消せば良いだけじゃ?
目的に対する手段としてはどうかと思うけど。
960nobodyさん:04/01/04 13:52 ID:???
>>957
一度一行ずつ配列にぶち込んで"w"でfputsしたらどぅ?
<?php
$max = 10;//上限行数

$line = file($path);
$fp = fopen($path, "w");
flock ($fp, LOCK_EX);
for($i = 1;$i <= $max;$i++){
fputs($fp, $line[$i]);
}
fputs ($fp, "\n".$data);
flock ($fp, LOCK_UN);
?>
961nobodyさん:04/01/04 13:58 ID:???
$rot = 3; //消す行数
$data = file("./1.txt");
array_splice($data, 0, $rot);
//以下ファイルへ書き込み(省略)
962957:04/01/04 17:50 ID:???
>>959-961
う〜む、一旦すべてを読みこんで吐き直す手法になるわけですね。
いわゆる目的は、ログなどのデータのローテーションです。
負荷のことを考えて、a の追記のように、データ本体を読まずに
先頭行だけ抜くといったことを想定してたのですが・・・。
963nobodyさん:04/01/04 18:43 ID:???
964nobodyさん:04/01/04 23:18 ID:???
>>962
素直にlogrotate使えば良い。
965nobodyさん:04/01/04 23:36 ID:???
なるべく早朝にローテートさせれば負荷は気にすること無い。
966nobodyさん:04/01/04 23:50 ID:???
>>965
気にすることはなくはないと思われ。
967nobodyさん:04/01/04 23:54 ID:???
>>966
いや、この程度で悩むような香具師が絡んでるサイトは間違いなく(ry
968nobodyさん:04/01/04 23:57 ID:???
>>967
あなたの実績を教えてください。
人を小馬鹿にできるほどの大きな仕事人ってのを一度見てみたいのです。
969nobodyさん:04/01/05 00:04 ID:???
phpファイルの先頭に
<?xml version="1.0" encoding="Shift_JIS"?>
とかくと、phpのはじまりだと解釈されてしまうのか、エラーとなってしまいます。

どうすればこれを回避できるのでしょうか?
「<?phpじゃないとphpと認めない」という設定にするのも1案かと思いましたが、
他に、案はないでしょうか?
970nobodyさん:04/01/05 00:05 ID:PXoQ1Cnf
echo '<?xml version="1.0" encoding="Shift_JIS"?>';
971nobodyさん:04/01/05 00:15 ID:???
>>968
お前、>>957か?
人を小馬鹿にできるほどの大きな仕事をしてなくても
それぐらいわかるってことがわからんのか。かなりレベル低いぞ。
ひょっとして百姓タンか?
972nobodyさん:04/01/05 00:20 ID:???
>>971
あなたの程度が窺い知れました。

空の器ほど大きな音を立て弱い犬ほど良く吠えて、暴走族はパラリラパラリラ。
973nobodyさん:04/01/05 00:30 ID:???
>>969
short_open_tagを見直せばどうかな?

>>971-972
もちつけ。
974nobodyさん:04/01/05 00:32 ID:???
>>969
スマソ_| ̄|○
975nobodyさん:04/01/05 00:42 ID:???
>>973
漏れはすっごく落ち着いてるぞ。百姓もどきが勝手に
自分のレベルの低さを指摘されてカーッとなってるだけ。

>>972
技術力のなさは素直に認めようや。精進せいよ。
976nobodyさん:04/01/05 00:45 ID:???
>>975
オマエモナー
977nobodyさん:04/01/05 00:46 ID:???
>>975
チミに禿同。
いるんだよな、至極簡単なスクリプトを書いたまではいいが、ぐぐったり他人のソースを参考にすれば
分かりそうな事を質問する向上力が欠如した香具師。

978nobodyさん:04/01/05 00:49 ID:???
>>977
もうちょい文体変えた方が良いですよ。
改行の位置とか、特徴でまくりです。
979nobodyさん:04/01/05 01:03 ID:???
>>977
というかさ、ファイル処理なんていう基礎中の基礎ができてない奴が
最近多いんだよねぇ…。入門書でもいきなり「掲示板を作ろう」とかじゃない?
それよりもいわゆる「情報処理」の勉強してもらいたい。

>>978
ん?ジサクジエーンに見えたか?

まぁ荒らしと思われるのも本意ではないのでこのへんで失礼。
980nobodyさん:04/01/05 02:31 ID:???
>>979
正直俺phpでファイル処理シラネ
DBあるんだからいらないんじゃね?
981nobodyさん:04/01/05 02:42 ID:bmlxMgAb
>>980
fopen
fwrite
fputs
fgets
fclock
fclose
これくらい覚えとけば何とかなるさ
982nobodyさん:04/01/05 02:51 ID:???
fclockとはなんぞや
983nobodyさん:04/01/05 03:02 ID:bmlxMgAb
ビルゲイツは自分で書いたソースを
沢山の人に見てもらい指摘されながら成長した
と言っている。今でも上の人に指摘されるそうだ
上には上がいる
みんなソースを見て馬鹿にはしないから
馬鹿にされるのを恐れず出来るだけソースをいろんな人に見てもらいなさい

984nobodyさん:04/01/05 03:09 ID:bmlxMgAb
>>982
flockだった
俺もDBに頼ってる派で
しばらく使ってないから記憶があいまいだったよ
だって本当に使うこと少ないんだもん
985nobodyさん:04/01/05 03:34 ID:???
散々アドバイスしてもらいながら生かせなかった本7が何を言ってやがる
986●てすと:04/01/05 08:01 ID:???
>>984
結局、使えるならDB使った方が面倒なこと考えなくて良いよね〜
987nobodyさん:04/01/05 08:24 ID:???
流石に注文等で得た個人情報を平文でlogファイルとか怖くて出来ないよな
でもデーターベースでも気をつけないとログ全部ばら撒いたりするねw
988nobodyさん:04/01/05 09:10 ID:???
>>987
ちゃんと設計して下さいね。
989nobodyさん:04/01/05 13:42 ID:W0I4BCIn
PHPを勉強したいと思い、本屋へ行った。
3件目に廻った、この地域で最大といわれる本屋に、
PHPを解説した書籍がやっとあった。
しかし、そこでも、たった2冊しかなかった。

低学歴・DQNが密集している地域だから、
マンガばかりで、高度な書籍を扱ってないのか、
それともPHPが時代を終えたのか、教えて下さい。
アマゾンで買うのが無難なのかな?
990nobodyさん:04/01/05 13:53 ID:???
>>989
マニュアルでいいじゃん
991991:04/01/05 15:21 ID:pgXXLZrW
該当の日付になったら『今日は****の日』と表示させる方法を教えてください。
『****まであと****日』というのはJavaScript系のサイトで出まわっていますが
該当日だけ表示させる方法が見つかりません。
992nobodyさん:04/01/05 15:27 ID:???
>>991
<?php
if(date("Y-m-d") == "2004-01-05") echo "今日は2004年1月15日です。";
?>
993nobodyさん:04/01/05 15:34 ID:???
Perlのintみたいに小数点以下を切り捨てるにはどうすればいいんでしょうか?
994nobodyさん:04/01/05 15:45 ID:???
>>993
キャストする方法も,切捨てる関数もある。マニュアル嫁。
995nobodyさん:04/01/05 15:48 ID:???
>>993
intでキャストするだけ
996nobodyさん:04/01/05 17:17 ID:???
>>989
田舎ですね。
997nobodyさん:04/01/05 17:34 ID:???
998nobodyさん:04/01/05 17:34 ID:???
999nobodyさん:04/01/05 17:35 ID:???
1000nobodyさん:04/01/05 17:36 ID:???
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。