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

このエントリーをはてなブックマークに追加
1nobodyさん
・PHP全般の質問スレです。
・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。


■本家
 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-4


抜けているものがあったら補足願います
2nobodyさん:04/08/06 15:45 ID:paJ4kjjQ
過去スレ
【PHP】質問スレッドpart19【php】
http://pc5.2ch.net/test/read.cgi/php/1089929550/
3nobodyさん:04/08/06 15:50 ID:paJ4kjjQ
4nobodyさん:04/08/06 16:39 ID:???
>>1
立てたら前スレにリンク貼れやボケが!
5nobodyさん:04/08/06 16:59 ID:???
過去スレ
【PHP】質問スレッドpart19【php】
http://pc5.2ch.net/test/read.cgi/php/1089929550/

って2に書いてあるぞ、4よ
6軟式PHP:04/08/06 17:03 ID:8a2aplVU
(*´▽`*)乙
7nobodyさん:04/08/06 17:11 ID:???
>>5
前スレ「の」リンクじゃなくて、前スレ「に」新スレのリンクを貼れということだろ。
なかったから俺が貼ってきたけどさ。
8nobodyさん:04/08/06 17:21 ID:MRWEjhxd
php4.2.2でcheckauth関数を使うにはどこの設定をかえればよいのでしょうか?
おながいします
9nobodyさん:04/08/06 17:30 ID:zD2/bc5/
PHPからMySQLにデータ書き込みするとき、
たまに文字化けするってのにもうずっと悩まされています。

色々試しに修正いれても、
たまにしか文字化けしないので直ったかどうか分からず辛いです。

どうすればイイかの方法論を教えて欲しいです。
助けてください。
10nobodyさん:04/08/06 18:19 ID:???
【SJISで運用する場合】
my.ini の設定
以下のふたつは設定しておくこと
[mysqld]
default-character-set=sjis
[mysql]
default-character-set=sjis


ってことじゃないの?

あと影響しそうなのは
php.ini
magic_quotes_gpc = Off
とか?


表とか十とか申とか化けてない?
11nobodyさん:04/08/06 18:28 ID:???
ってか、設定変更するときは、本当にその問題なのか、
きちんと把握してから変更してね。
12nobodyさん:04/08/06 19:12 ID:???
>>8
PHPの標準関数の中にはねぇな。
> Sorry, but the function checkauth is not in the online manual.
pearのAuthのやつなら pearのマニュアルのインストール部分を読んで入れれ
13nobodyさん:04/08/06 19:37 ID:???
前スレ976です。

重複しますが、よろしくです。
/*前スレ990*/
$image_dir_path = dirname($image_path);/*元イメージ格納ディレクトリーパス*/
$mkdir_path = $image_path.$mkdir_name;/*サムネイルを作成するディレクトリーまでのパス*/
mkdir($mkdir_path , 0777);
chmod ($mkdir_path , 0777);/*←これが無いとmkdirでは755にしかならなかった、*/
で一応目的のディレクトリーを作ってサムネイルも作成できるのだけど
$mkdir_path へディレクトリーを作るにはその上層のディレクトリーのアクセス権を777にしないと
行けないので、mkdirの前にchownでchown($xxx , www);
としたけど、
chownするのはそのまた上層にwwwへのアクセス権777が必要みたい・・・
結局、サムネイルを作成するディレクトリーまですべてwwwをオーナにして777にしないと
いけない状態。。
どうすればいいんだろうか。。
14nobodyさん:04/08/06 22:24 ID:???
綺麗にかけよ
15nobodyさん:04/08/06 23:49 ID:???
>>13
そんなディレクトリ構成にしたお前が悪い
16nobodyさん:04/08/06 23:55 ID:???
777しろよ
17nobodyさん:04/08/07 00:01 ID:???
707にしろ
グループは0にしとけ、マジで。
無料鯖はユーザーを同じグループにしてて普通に他人のディレクトリは入れるようなずさんなところあるから
どっちにしてもセキュリティのためにグループは0で
18nobodyさん:04/08/07 00:21 ID:???
php5.0のphp.iniで
output_handler = mb_output_handler
と指定してもphpinfo()では"no value"となってしまいます。
mb_stringsを使いたいのですが、この項目は必要ないのでしょうか
19nobodyさん:04/08/07 00:24 ID:???
[No.13]
カポコン04/08/07 00:13
04/08/07 00:13
>>11
文句があるなら、ココに言ってくれ。
思いっきり.NETバイトコードって書かれてるだろ。
http://japan.linux.com/opensource/04/04/26/0139204.shtml

ちなみにバイトコードとはネイティブコードの中間にあたるコードの事。

まーLinuxで.NETバイトコードって言われるゆえんは、LinuxOSに詳しい人間なら
分かるだろうけどね(ボクはまだ、マウス派だから分からないか?)
所詮、IT用語辞典関連の検索キーで調べた浅はかで唯々諾々とやってきただけの知識か・・・。
20nobodyさん:04/08/07 00:25 ID:???
21nobodyさん:04/08/07 00:37 ID:???
>ちなみにバイトコードとはネイティブコードの中間にあたるコードの事。
全然違う。
仮想コンピューター上でのコードのことであって、
中間というわけではない。
22nobodyさん:04/08/07 01:04 ID:???
しったかはもううんざい
23nobodyさん:04/08/07 01:09 ID:???
うんざいだな
24nobodyさん:04/08/07 08:31 ID:???
>>13
safe modeでmkdirはやめておけ。使い物にならない。
25nobodyさん:04/08/07 14:27 ID:???
だな、始めに作っとく方がいい
26nobodyさん:04/08/07 17:26 ID:I/AgGnLb
PHP版の更新時刻取得エージェント(アンテナ)を配布しているサイトを
ご存知の方はいらっしゃいませんか?海外のでも構いません…。
ぜひ参考してみたいと思いますので、どうぞよろしくお願いします。
27nobodyさん:04/08/07 21:00 ID:???
GDを使用して元の画像から色を変更したいのですが
http://www.uploda.net/anonymous/etc2/upload25313.gif
こういう画像で(分かりにくいのですが左下を透過処理しています。)透過されてない部分の色を
任意の色に書き換えたいんですが可能でしょうか?
もし可能であればご教授お願い致します。
28Tom:04/08/08 00:20 ID:5rvsGlMW
PHP初心者です。詳しい方、何卒お助け下さい。
文字列をダブルクオーテーション内に書いたときは「"」を、シングル
クオーテーション内に書いた時は「'」をエスケープしなくてはなりませんが、
ダブル、シングルの両方エスケープする必要がある場合はどうしたら
よいのでしょうか?

例えば下記のようにJavaScriptのファンクションをコールするHTMLタグを
PHPで書き出して、このファンクションにPHPの変数を渡したい場合、
シングルとダブルクオーテーションの両方を使わざるを得ないと
思うのですが、このファンクションに渡される変数に例の$details1
〜3のようにシングル、ダブルクオーテーションの両方が含まれて
いると、いずれもエラーになってしまいます。

<?php
$details1 = "My friend's name is \"John\""; //ダブルクオーテーション内 ダブルのみをエスケープ
$details2 = ' My friend\'s name is "John"'; //シングルクオーテーション内 シングルのみをエスケープ
$details3 = "My friend\'s name is \"John\""; //ダブルクオーテーション内 両方エスケープ

echo "<input type='button' value='Show Details1' onClick='showDetails(\" $details1 \")' >";
echo "<input type='button' value='Show Details1' onClick='showDetails(\" $details2 \")' >";
echo "<input type='button' value='Show Details1' onClick='showDetails(\" $details3 \")' >";

?>

変数に' や"が含まれるのが避けられないケース(ユーザによる
フォーム入力値など)があると思うのですが、この場合皆さんはどう
処理されているのでしょうか?
ご教授よろしくお願いいたします。
29nobodyさん:04/08/08 00:27 ID:???
>>28
俺の場合、それは頻繁に使うからこうしている
変換する文字列を簡単に拡張できるようにstrtrを使っているが別にstr_replaceで置換を使ってもいいと思う

/* HTML特殊文字変換 */
function htmlspecialcharsEx( $text ){
$translations = array(
  "'" => "?",
);
return strtr( htmlspecialchars($text) , $translations );
}

同様に改行付き出力の為にprintlnも定義したりしている。
30nobodyさん:04/08/08 00:28 ID:???
おっと……こうね。

$translations = array(
  "'" => "&#39;",
);
31Tom:04/08/08 01:51 ID:5rvsGlMW
レス29&30さん

なるほど!!!そうすればいいのですね!早速やってみます。
レス本当にどうもありがとうございました!
32nobodyさん:04/08/08 03:00 ID:F0zxfskV
PHPを書くときって借りてるサーバでテストできないですよね?
皆さんどうしてるんですか?
33nobodyさん:04/08/08 03:06 ID:???
自分のPCで鯖作るとか、Eclipseでデバッグするとか。
34nobodyさん:04/08/08 03:11 ID:F0zxfskV
Eclipse入れればテストできるのですか?
35nobodyさん:04/08/08 03:25 ID:???
つか、なんで開発機にPHP入れないの?
鯖だってフリーのhttpdがいろいろあるのに。
36nobodyさん:04/08/08 03:30 ID:F0zxfskV
これからはじめるので。
37nobodyさん:04/08/08 06:07 ID:???
夏だね、夏過ぎる。

>>30
二重置換になってるぞw
38nobodyさん:04/08/08 12:25 ID:???
winXPのローカル環境でmail関数を使ってメールを送れるかテストしたいんですが

"sendmail_from" not set in php.ini or custom "From:" header missing

と出て送れませんでした。


php.iniの[mail function]は
SMTP = localhost  または SMTP = xx.xx.com(普段使ってるメールのSMTP)
sendmail_from = [email protected] (普段使ってるメールアドレス)
で試しました。;は外してあります。Apacheも再起動しています。

telnetを試したところ、上記のメールアドレスとSMTPで正常に送信できました。
どこがダメなんでしょうか、誰か助けてください……
39nobodyさん:04/08/08 13:04 ID:zYHZKtON
>>38
SMTP = xx.xx.comって中継を許可してんの?
ま、まさかねぇ・・・

SMTP = localhostって自分のPCでメールサーバーを動かしてるよね?
40nobodyさん:04/08/08 13:28 ID:???
<win32/sendmail.h>
#define W32_SM_SENDMAIL_FROM_NOT_SET19

<win32/sendmail.c>
static char *ErrorMessages[] =
 {"\"sendmail_from\" not set in php.ini or custom \"From:\" header missing"}, // 19

/* Fall back to sendmail_from php.ini setting */
if (mailRPath && *mailRPath) {
 RPath = estrdup(mailRPath);
}
else if (INI_STR("sendmail_from")) {
 RPath = estrdup(INI_STR("sendmail_from"));
} else {
 if (headers) {
  efree(headers);
  efree(headers_lc);
 }
 *error = W32_SM_SENDMAIL_FROM_NOT_SET;
 return FAILURE;
}
つーことは、sendmail_fromが設定されていないんでねぇの?
41nobodyさん:04/08/08 13:29 ID:???
>>39
うう、たぶんそれです。


PHP関係ない部分でコケてたんですね…すいません。
正直なとこメールだのSMTPだの、よく知らないんで(PHP自体も、覚えたてでして)
エラー文とかをググって、出てきた方法を片っ端から試したんですが……
それ以前の問題ってことでしょうか。また調べてきます。
42nobodyさん:04/08/08 13:42 ID:???
掲示板に1ページ目、2ページ目を作りたいのですが
皆さんどうしてます?
43軟式PHP:04/08/08 14:08 ID:???
ヽ(`Д´)ノ
44nobodyさん:04/08/08 14:12 ID:???
>>42
今のページに表示数を足したり引いたりしてまっしゅ。
45nobodyさん:04/08/08 14:13 ID:???
軟式軟式。海いった?
46Imo ◆.jC7ANgFY. :04/08/08 14:36 ID:???
>>42
必要ページ数 = ceil(記事数 / 1ページあたりの表示数)
計算はこんなところ。あとはrangeでも使ったりして。
47nobodyさん:04/08/08 15:01 ID:zYHZKtON
ページの切り替えで何時も思うのは記事数を拾わないといけない点だよね。
ごっそりデータを読み込んでから拾うしかないのだろうか。
良い方法を見つけた人いないですか?。
48nobodyさん:04/08/08 15:15 ID:???
>>47
カウンターとかつくったことない?
49nobodyさん:04/08/08 15:25 ID:zYHZKtON
>>48
ありません!。
投稿総数を保存しているのは当然の事だしなぁ。
カウンターにもっと高度なヒントが隠されているのでしょうが、
どんなヒントなのだろう。
私には思い付かないので教えてくださいm(_)m。
5038:04/08/08 15:48 ID:???
行き詰ったんで、もう一度質問お許しください。(忘れてましたけど、PHP4.3.4です)

mail関数などで調べると、どこのサイトを見ても、
php.iniの  SMTP = xx.xx.xxx  と  sendmail_from = [email protected]
を自分の使ってるものにすれば、それで送れるようになる。

みたいに書いてあるんですが、勘違いなんでしょうか。それだけじゃダメなんですか?
51nobodyさん:04/08/08 16:22 ID:???
指定先のSMTPサーバ動いていれば、それで問題ありません。
52nobodyさん:04/08/08 16:23 ID:zYHZKtON
>>50
SMTP = localhost
smtp_port = 25

というのは、localhost:25でMTA(メールサーバー)が稼働している
事が前提であってMTAが無ければ当然メールは送信出来ません。

他は、>>40を参照
53nobodyさん:04/08/08 16:35 ID:???
POSTの場合…$_POST['変数名']

GETの場合…$_GET['変数名']

これは普通の変数と何が違うんでつか?
54nobodyさん:04/08/08 16:55 ID:???
安全面
55nobodyさん:04/08/08 17:15 ID:mbHx5JiB
mbstring.internal_encoding って
EUC-JP、Shift_jis、
どっちが一般的なんでしょう?
Shift_jis で使うのってナンセンス??
56nobodyさん:04/08/08 17:28 ID:???
上の質問と若干かぶるんですが、
mbstring.internal_encoding = euc-jp
にするとメール送信フォームなんかのときに
再度、euc から shift_jisに変換する必要が出てくるんですよね?
57nobodyさん:04/08/08 18:00 ID:???
あいうえお
かきくけこ
さしすせそ

仮に上のような複数行にまたがる文字列があったとして
「こ」を含む行全体(かきくけこ)のみを取得するには
どうすれば良いのでしょうか?
どうぞよろしくお願いします
58nobodyさん:04/08/08 18:20 ID:???
>>56
普通メールはJISで送るものだが…
5955:04/08/08 18:23 ID:???
あちゃ〜本当ですね。
shift_jis だと問題ありでしょうか?
60nobodyさん:04/08/08 18:23 ID:???
>>55
内部コードはOSによる
・Windowsならshift-jis
・LinuxならEUC(FedoraはUnicodeらしいがよく知らん)
詳しくはここ
http://tsuttayo.sytes.net/php/char_trn/index.html
61nobodyさん:04/08/08 18:33 ID:???
>>60
>>内部コードはOSによる

(! ̄д ̄)えぇぇぇ
それはちょっとおかしいだろ。

そもそも本家で配布されているWin用バイナリは--enable-zend-multibyteしてるんだっけ?
--enable-zend-multibyte付でコンパイルされてなかったらSJISを内部コードに出来なかったと記憶しているが。
6261:04/08/08 18:35 ID:???
あ、スマソ。
スクリプトが--enable-zend-multibyteしていないとSJISは拙いんであって
internal_encodingは問題ないのか。。。
63nobodyさん:04/08/08 18:41 ID:???
基本的にはLinuxでもWinでも内部コードはEUCだったはずだし
その方がいいと思うよ
64軟式PHP:04/08/08 20:49 ID:???
>>45
いや、今年は行ってないな。周りから「色白すぎ」と言われる。
焼けても赤くなるだけのタイプ>俺

>>57
正規表現使うとか、改行で分割して判定して取得とか。
65nobodyさん:04/08/08 21:34 ID:???
これからphp勉強しようかなーと思っているものなんですが、
ttp://www.gta-series.com/eng/index.php
↑のサイトはどこでphpを使っているんでしょうか?
教えてください、お願いします
66軟式PHP:04/08/08 21:37 ID:???
>>65
管理者に聞けや。
67nobodyさん:04/08/08 21:45 ID:???
管理人にしかわからないものなんでしょうか?
68nobodyさん:04/08/08 21:48 ID:Odqra96P
変数にあまり長い文字列を入れ、出力すると表示がおかしくなることってありますか?
69nobodyさん:04/08/08 21:53 ID:???
>>68
いろいろ実験して誰でも再現できる現象を確認したらそれ持って又質問しに来い
70Imo ◆.jC7ANgFY. :04/08/08 22:09 ID:???
>>57
$txt = <<<EOM
あいうえお
かきくけこ
さしすせそ
EOM;

$search = preg_quote('こ');
$txt = preg_grep("/$search/", explode("\n", $txt));
echo implode("\n", $txt);
71nobodyさん:04/08/08 22:20 ID:???
$txt = <<<EOM
あいうえお
かきくけこ
さしすせそ
EOM;
72nobodyさん:04/08/08 22:23 ID:???
$txt = <<<ERO
いやん
ばかぁん
えっちぃ
ERO;
73nobodyさん:04/08/08 22:33 ID:???
ひさびささぶいぼたった
74nobodyさん:04/08/08 22:41 ID:???
>>70
preg 系は文字コードが UTF-8 で u オプションを使用するときだけにした方がいい。
その例で、文字コードが EUC-JP の場合、「修学旅行」という文字が含まれていても引っかかる。
75nobodyさん:04/08/08 23:22 ID:Odqra96P
変数がdata0からdata10まで作りました。
その変数をfor文を使って初期化したいです。

for($i=0; $i<10; $i++)
$data$i = "abc";

これだと、エラーで動きません。
どこを修正したらいいでしょうか?
76nobodyさん:04/08/08 23:29 ID:???
$data{$i}
77nobodyさん:04/08/08 23:29 ID:???
>>75
何で配列使わないの?
78nobodyさん:04/08/08 23:31 ID:???
for($i=0; $i<10; $i++)
${"data".$i} = "abc";
7975:04/08/08 23:32 ID:Odqra96P
使い忘れというか、変数名を変える予定だったので、てきとうにつけました。
80nobodyさん:04/08/09 00:07 ID:???
>75は口調が小学生の息子に似てる
81軟式PHP:04/08/09 00:54 ID:???
頑張れ75
8278:04/08/09 01:30 ID:???
何で俺スルーされてんの?
83nobodyさん:04/08/09 02:15 ID:???
>>75
どーでも良いが、0から10まで作りたいなら
for ($i=0;$i<=10;$i++) じゃないのか?

>>78
なんでだろ?
84nobodyさん:04/08/09 02:47 ID:???

<?php
$name = "山田";
$_GET ["name"];
print $_GET;

?>
実行結果「Arrey」

$_GETの使い方教えてください・・・
85nobodyさん:04/08/09 03:10 ID:???
>>84
何で$_GETを使いたいんだ?
8684:04/08/09 03:13 ID:???
ページが切り替わるとよく変数がカワップになるぽ
87nobodyさん:04/08/09 03:13 ID:???
何がしたいのかわからん
88nobodyさん:04/08/09 03:38 ID:???
>>84
なんかワロタ
89nobodyさん:04/08/09 04:15 ID:???

        ○   o ○  ○ 「ママー夏過ぎるよ」
             ○`「「「l        
                  \. V7       r‐、
        ____`o ○ |  |.       >、,>
      //      |O。゚-ト、. |      | |
   .//| /(・) ∩ |o.  | | |  /\ | |
    |//|       |   | | | /   | | ̄`l     /\
    |//|   (・)   \_| |─/    /く  |   /  r、/`ーっ
    |//  \           | /   /  |  \/\/  `ー'"
    |/  ヽ__       //  /   |     /
   mn____|___r──l__/    |    /
   ヽ_______|__ノ────' ──''"
90軟式PHP:04/08/09 09:13 ID:???
>>84
<?php
print 'GET:' . $_GET['name'] . '<br>' .
'<a href="'.$_SERVER['PHP_SELF'].'?name=山田">山田クリック</a><br>';
?>
91nobodyさん:04/08/09 09:26 ID:???
<a href="?name=山田">name</a>
<?=$_GET["name"];?>
軟式軟式。私も真っ白。
92Imo ◆.jC7ANgFY. :04/08/09 10:44 ID:???
>>74
ついついpregしか使わない癖があってorz(perlから入ったからかなぁ、、、
ereg_replace_callbackみたいなのがあったら移りやすいのだけど…。

>>90
rawurlencodeをして渡したほうがいいのでは?
ブラウザによっては日本語をUTF-8に変換して取得しようとするから、
93nobodyさん:04/08/09 11:04 ID:???
mb_convert_kana() って 変換可能文字列長制限とか、
そのた制限ありますかね?

〜だと全く変換されないとかっての

$conv = mb_convert_kana($str, 'asHVc');
94軟式PHP:04/08/09 11:13 ID:???
>>92
確かに。スマンカッタ。GETで直接日本語を渡す機会が殆ど無かったから忘れてた。
そういえばHDMLのFORM構文の初期値に日本語を入れる場合もurlencodeしてたなぁ。
初心者にはエンコ無い方が分かりやすいかもしれないからユルシテ。・゚・(ノ∀`)・゚・。
95nobodyさん:04/08/09 11:46 ID:lYQyr6Nk
郵便番号をmysqlに入れて、検索できるphpスクリプトを
配布されているところって知らないかい?
96nobodyさん:04/08/09 12:07 ID:???
知ってても君のような態度の人には教えてあげれない。
97nobodyさん:04/08/09 12:14 ID:???
ていうかそんなの自分で作れよ
まぁその前にSQLを全然知らないみたいだが
98nobodyさん:04/08/09 13:48 ID:???
郵便番号の CVS データは癖があるので
それを DB に落とし込むのは日本各地で車輪の最発明は無駄だよね。
あと、郵便番号は更新しないといけないし。
大学のデータとかもどこか SOAP や XML-RPC とかで提供しないかな。
99nobodyさん:04/08/09 14:00 ID:???
車輪再発名ほど大変な作業ではない。
100nobodyさん:04/08/09 14:32 ID:???
オブジェクト指向について質問です。

Class関連の使い方はだいたい分かるのですが、
実際に使っていきたいのですが、
どうもとっかかれなくて、書籍もJAVA関連になるので躊躇ぎみで、

こんなところから、とっかかればいいよ、などなど
アドバイスを頂ければと思っています。
宜しくお願いします。
101nobodyさん:04/08/09 14:35 ID:???
classを使うことがオブジェクト指向ではありません。
まずは言語とは無関係にオブジェクト指向が何かを学ぶことをお勧めします。
102軟式PHP:04/08/09 16:21 ID:???
そんな100は構造化手法。
Class使えればオブジェクト指向と思ってる100君には
「オブジェクト脳のつくり方」でも読んでみるといいかも。
103軟式PHP:04/08/09 16:36 ID:???
あとC++だけど
憂鬱なプログラマのためのオブジェクト〜も読んでみれ。・゚・(ノ∀`)・゚・。
104nobodyさん:04/08/09 17:00 ID:GoEzAwXJ
お聞きしたい事があるのですが、
array_uniqueを使うと、配列から重複した値を削除しますよね。
もし、重複した値を残したければどう処理すればよいでしょうか?
それ専用の命令はありますか??
105nobodyさん:04/08/09 17:06 ID:???
何もしなければいいだけじゃん
106軟式PHP:04/08/09 17:14 ID:???
<?php

$array1 = array("1","2","3","3","4","4","5","6","7","8","8","9");
$array2 = array_unique( $array1 );
$array3 = array_diff_assoc( $array1, $array2 );
print_r( $array3 );
?>
107軟式PHP:04/08/09 17:16 ID:???
>>106
適当書いてみた(*´▽`*)
108nobodyさん:04/08/09 18:06 ID:GoEzAwXJ
軟式PHPさん、
ありがとうございました。
array_diff_assocという関数があるのは始めて知りました・・・。
109nobodyさん:04/08/09 19:11 ID:???
ってか、配列変数だけで網羅できないほどあるね。
110nobodyさん:04/08/09 19:27 ID:w1W9HQho
PHP Version 4.3.4です。

clk(this,'res',15)
(15は正の整数でいろいろ変わる)
という文字列がたくさん含まれている文字列$contentsに対して、

preg_match_all("/,([0-9]+)/",$contents,$matches);

とやると数字がとれるのですが、

preg_match_all("/',([0-9]+)/",$contents,$matches);

preg_match_all("/\',([0-9]+)/",$contents,$matches);

とすると数字がとれません。なぜなのでしょうか?
111nobodyさん:04/08/09 19:59 ID:???
夏だな
112110:04/08/09 20:28 ID:???
すいませんどなたか・・・
113110:04/08/09 20:34 ID:???
preg_match_all("/([0-9]+)\)/",$contents,$matches);
でもひっかかりません。ということは、
なにか根本的な勘違いをしてるのでしょうか・・・?
114nobodyさん:04/08/09 20:44 ID:1E04QFET
何言ってんのかよく分からん
115110:04/08/09 20:47 ID:???
すいません、どうも$contentsの中身がおかしいみたいです。でなおしてきますorz
116nobodyさん:04/08/09 21:05 ID:lYQyr6Nk
php+mysql使って、

リスティング
個別ページ
検索機能
htmlテンプレート

を作りたいが、どこからやればよいか・・・
参考になる本・サイトはありますか?
117nobodyさん:04/08/09 21:13 ID:???
1.Smarty
2.リスティング
3.検索
4.個別ページ

0.PHP
118nobodyさん:04/08/09 21:13 ID:1E04QFET
漠然としすぎてよく分からん
機能だけ列挙したって意味がない
何が作りたいのかきちんと書け
119nobodyさん:04/08/09 21:16 ID:???
出会い系だろ
120nobodyさん:04/08/09 21:21 ID:???
file_get_contents関数で他サーバの内容をとりにいくとき、
UserAgentは「-」となっているみたい
(確認しました)ですが、
これを任意の文字列に変える方法はありますでしょうか?
121nobodyさん:04/08/09 21:53 ID:???
GDで作成した画像を保存したいのですがどうしたらいいでしょうか?
検索してみたんですがそのまま表示するだけの解説しか見つからなくて・・・
よろしくお願いします。
122nobodyさん:04/08/09 22:11 ID:???
>>121
ホントに検索したのか?!
http://www.php.net/manual/ja/function.imagejpeg.php
123nobodyさん:04/08/09 22:11 ID:???
>>120
ini_setでPHPの設定を変更しれ。
ini_set("user_agent","hogehoge")
12468:04/08/09 22:28 ID:Wd+U0VKl
サンプル作ってみたので、アドバイスください。
コメントをこれ以上長くすると、表示がおかしくなってしまいます。

<?php
// ファイルから読んでいくよ
$fp = fopen("./test.txt","r");
for(;;){

// ファイルから一行読み込む
$line = fgets($fp);
if($line == null)
break;

list($ban,$com) = explode("<>", $line);

// 読み込んだ行を出力する
print "<H4>番号:$ban</H4>";
print "<P>コメント:$com</P>";

}
fclose($fp);
?>
12568:04/08/09 22:31 ID:Wd+U0VKl
126nobodyさん:04/08/09 22:49 ID:???
>>124
即興で書いてみた。
<?php
$fp = @fopen("./test.txt","r") or die("File open failed");

print("<dl>");
while( ($s = fgets($fp)) != null ){
list($ban,$com) = explode("<>",$s);
print("<dt>{$ban}</dt>");
print("<dd>{$com}</dd>");
}
print("</dl>");
fclose($fp);
?>
127120:04/08/09 22:52 ID:???
>>123
あー、なるほど、ありがとうございます。
128nobodyさん:04/08/09 23:03 ID:uySv1+mC
>>126
は?頭悪いの?
12968:04/08/09 23:06 ID:Wd+U0VKl
>>126
これでも駄目です。
130Imo ◆.jC7ANgFY. :04/08/09 23:54 ID:???
>>129
どういう風に表示されるのか今ひとつわからない。

たぶん、テキスト表示に変わるのかなぁと思ってレス。
もしそれならIEのファイルタイプ自動判断の閾値を超えたのだと思う。
文書に対してタグの割合がある値より少なければテキスト、多ければHTMLと
表示するようになっている。(ちゃんと指定していれば別
要するにHTMLヘッダーをちゃんと書くべきだということ。
文字化けの場合もちゃんとMETAタグを書けば直るし?
131nobodyさん:04/08/10 00:12 ID:???
>>129
1回のfgetsで行の最後まで読まないから、とか?そういう話?

それならば。
fgetsは行末まで読むとは限らない。
第2引数の指定と、読み込んだデータの最後が改行かどうかのチェックをやる。

って、これじゃなかったらスマソw
132nobodyさん:04/08/10 00:47 ID:???
表示がおかしいじゃ意味わからんよな。
何がどうなのか説明もできないのか?
133nobodyさん:04/08/10 01:22 ID:cuHg/9mk
色々調べましたが見つからなかったので、質問です。
例えば、グラビアアイドルのデータベース検索ページを作るとします。データベースはmysql4.0.20、PHPは4.3.7です。
やりたい事は、フォーム(form.html)からチェックボックスにチェックを入れてもらい、その結果をPHP(search.php)で表示する事です。

form.htmlのフォーム部分
<form action="search.php" method="get">
<!-- 年齢 -->
<table>
<tr>
<td><input type="checkbox" name="age[]" value="19">10代</td>
<td><input type="checkbox" name="age[]" value="20-24">20〜24歳</td>
<td><input type="checkbox" name="age[]" value="25-29">25〜29歳</td>
</tr>
</table>
<!-- バスト -->
<table>
<tr>
<td><input type="checkbox" name="bust[]" value="79">〜79cm</td>
<td><input type="checkbox" name="bust[]" value="80-89">80〜89cm</td>
<td><input type="checkbox" name="bust[]" value="90">90cm〜</td>
</tr>
</table>
<input type="submit" value="検索">
<input type="reset" value="リセット">

この結果をsearch.phpで表示させるにはどうすれば良いでしょうか?
ちなみにsearch.phpはデータベース接続、動的データ取得は可能となっています。
ただ、現在はチェックボックスの検索機能が効かない為、全データが表示されてしまいます。
恐らく、チェックボックス『value="20-24"』がチェックされたら
search.phpでsql文『SELECT * FROM MyDB WHERE age >=20 AND age <=24』が
実行されれば良いのではないかと思うんですが、そのやり方をどなたか教えて下さいませ・・・。
134nobodyさん:04/08/10 01:36 ID:???
>>133
・・・。夏だね。


switch ($_GET['age']) {
case "19": $sql="age < 20";break;
case "20-24" : $sql="age >=20 and age<=24";break
case "25-29" : $sql="age>=25 and age<=29";break;
}
$result=mysql_query("select * fom MyDB where".$sql) or die;

めちゃくちゃ単純に書いてみた。(これだと問題ありすぎなのはわかってるけどツッコまないで>エロイ人)
これ以上は自分で考えて。
考えられないなら、オマエには向いていないから諦めたほうが良いと思う。
135nobodyさん:04/08/10 02:12 ID:???
>>134
おまえエロイなあ
136133:04/08/10 02:17 ID:???
>>134
早速のお答え、ありがとうございます。
なるほど、caseを使うやり方ですか・・・。
私はてっきり、if〜文で作るのかと思ってました。
しかし難しいですね。なんかアナタのおっしゃるとおり、諦めかけてます・・・
137nobodyさん:04/08/10 02:19 ID:???
>>136
友達に頼んだほうが早いよ!まじで。
138133:04/08/10 02:35 ID:???
>>137
仲間内の中では自分が一番知ってるんですよw
いきなり専門外のPHPによるデータベース検索を作らなくてはならなくなったので、
このように四苦八苦している訳です。
perlのcgiみたく、フリーのサンプルスクリプトが全然無いので困ってしまいます。
「PHPによるWebアプリケーションスーパーサンプル」って本も買ったんですが、
私のやりたいようなサンプルがありませんでした。
ネット検索してやっとPHPサンプル見つけても、大体が掲示板とかなんですよね。
まだまだ先は長そうです・・・。
139nobodyさん:04/08/10 02:47 ID:???
>>136
if ($_GET['age'] == "19") {
$sql="age < 20";break;
}elseif($_GET['age'] == "20-24") {
$sql="age >=20 and age<=24";break
}elseif($_GET['age'] == "25-29") {
$sql="age>=25 and age<=29";break;
}
$result=mysql_query("select * fom MyDB where".$sql) or die;

どこが分からないか分からないけど、
サンプルイジルヨリMySQL+PHPの入門書をサラッとやったほうが、
結構なんとかなると思うよ。がんがれ。
140nobodyさん:04/08/10 02:50 ID:???
あっ break;取り忘れた 
141134:04/08/10 02:56 ID:???
>>139
誤字までコピペしなくても・・・
fomって何だよw

・・・あ、俺だ

>>138
専門外って何だよ
ってか、ifを知っていて何でこの処理がわからないんだ??
142133:04/08/10 03:22 ID:???
>>139
そうそう!最初はそのようにif〜文で記述するんだと思ってた訳です。
確かに134氏の記述はシンプルで良いと思いましたが。
実はMySQL+PHPの入門書はスペンサー・K・OGAWA著の本を持っています。
それにも欲しいサンプルが無かくてそのままにしていたので、
これを機に読み返してみようと思います。

>>134=141
自分はプログラマーでは無い、という意味の専門外という意味です。
コードがシンプルで分かりやすいので、アナタの提案してくれた
caseを使った記述を参考にやってみようと思います。

色々ありがとうございました。
スレ汚し失礼しました。
143nobodyさん:04/08/10 03:33 ID:???
>>138
Perlで自分の使いたいようなサンプルがあるなら、
それみて(パクって)コーディングした方が早いよ。

caseのデフォルトで何も値が取れなかったときに
$sql="1=1"とでもしとくのが吉。まあwhere条件外すのが正解だけど。
それよかその場合は検索を弾くのが正解かな。仕様がわからんけど
144軟式PHP:04/08/10 09:09 ID:???
おはよう眠いデス。
145nobodyさん:04/08/10 09:13 ID:???
おはようす
146nobodyさん:04/08/10 11:07 ID:???
フォームで入力された文字列の大文字部分を全て小文字に置換したいんですが、今は

$data = ereg_replace("A", "a", $data);
$data = ereg_replace("B", "b", $data);

$data = ereg_replace("Z", "z", $data);

という(アナログ的な?)方法を使っています。

もっと短くて済む表現はないでしょうか。
本や過去ログ見たり検索しても全然見つからなくて・・・。

初心者な質問ですみません。
147nobodyさん:04/08/10 11:11 ID:???
$data = ereg_replace("[A-Z]", "[a-z]", $data);
148nobodyさん:04/08/10 11:36 ID:???
>>146ワロタ
>>147の冷静な対応にもワロタ

今日はいい天気ですね^−^
149nobodyさん:04/08/10 11:40 ID:???
>>146
本当に検索したのか疑問だけど。

$data = strtolower($data);

ttp://jp.php.net/manual/ja/function.strtolower.php
150nobodyさん:04/08/10 12:08 ID:5BcnoGGN
GD2ってgifに対応してないんですよね?
動的にグラフをつくりたいのですが、なんとかgifを生成できないものですか?
151146:04/08/10 12:26 ID:???
回答ありです。

>>147
それやったんですが
$data = 'ABC';
とやると
[a-z][a-z][a-z]と返ってきてたんですよ。

>>149
てっきりereg_replaceだと思い込んでました。
ググっても正規表現関係しか出てこなかったんだけど何かいい検索法とかあるんでしょか。
152軟式PHP:04/08/10 12:46 ID:???
ググるのもいいけど、とりあえずマニュアル見よう。
153nobodyさん:04/08/10 12:48 ID:???
ググってだめならヤフーは?
154軟式PHP:04/08/10 12:55 ID:???
色々と流出する。
155軟式PHP:04/08/10 13:09 ID:???
>>150
imagegif使えばいいんじゃないの?
156nobodyさん:04/08/10 13:16 ID:???
>>146
文字列の操作についてなにか調べたかったら、
文字列関数をチェック
http://jp.php.net/manual/ja/ref.strings.php

その他、ここからそれっぽいところを探す。
http://jp.php.net/manual/ja/funcref.php

確かにちょっと慣れるまでマニュアルの有効利用ってできないのかも。
157nobodyさん:04/08/10 13:18 ID:???
>>150
ライセンス切れたから、そろそろimagegifが使えるようになるかも。
もう使える??

ライセンスの問題でgifは使えなくなったんだ。
158nobodyさん:04/08/10 13:38 ID:???
最新版ではgifの書き込みもサポートされてる
159軟式PHP:04/08/10 13:40 ID:???
1.6ぐらいから使えなくなったってどっかに書いてあったなぁ。
2.0から普通に使えるようになったんじゃないの?
160nobodyさん:04/08/10 13:58 ID:???
gd 2.0.28からGIFサポート復活
161nobodyさん:04/08/10 14:01 ID:???
4.3.8PHP付属のGDはまだ未対応のバージョンみたいだね。
4.3.7 で 2.0.23 になったばかりみたいだから。
次のバージョンぐらい?
http://www.php.net/ChangeLog-4.php
162nobodyさん:04/08/10 14:02 ID:???
pngあるんだからいまさらgifを使うメリットないからな。
gifにICCプロフィールが埋め込み出来るってのなら別だけど。
163軟式PHP:04/08/10 14:10 ID:???
透過もPNGは出来るしなぁ。GIFって広まってから
「よっしゃ、広まったところで金取るかーー」っていうのが丸見えで萎え。
164nobodyさん:04/08/10 14:18 ID:???
あの時期にgif使ってたけど全部jpgに変えて今でもgifって使わないようになったよな。
pngも24にすれば屁たれIEでもなんとか透過できるし。
165nobodyさん:04/08/10 15:51 ID:???
携帯電話って GIF じゃないとダメなやつってあったっけ?
166146:04/08/10 16:29 ID:???
>>156
どもども。
検索じゃなくて目次から探すんですね。
なかなか難しそうだけどがんばってみますv

亀レスすまそ。
167nobodyさん:04/08/10 19:29 ID:???
>>166
chm版なら全文検索があるからそれが使える
168nobodyさん:04/08/10 19:32 ID:???
コナミ減収オメ
169nobodyさん:04/08/10 19:45 ID:???
170nobodyさん:04/08/10 20:19 ID:???
ドコモがPNG対応してくれれば、俺も完全にPNGに移行するんだがなぁ。
対応する気がないみたいだから、まぁ当分はgifかな・・・。
つうか、何故ドコモはPNGに対応しないんだべ。技術不足?
171nobodyさん:04/08/10 20:27 ID:???
>>165>>169
imodeの昔の端末はGIFでないとダメ
逆にJ-skyの昔の端末はPNGのみ

仕方が無いのでJPEGで吐き出してる
これも一部端末で見られないけど、
最近のはカメラ対応の関係で見られたりするんで
17268:04/08/10 20:55 ID:???
>>126
やっとできましたよ。
fgets($fp)のところをfgets($fp,4096)にしてできました。

どうもすみませんでした。
173nobodyさん:04/08/10 21:40 ID:???
>>172
根本的な対策になっていないような気がするぞ。おい。
174nobodyさん:04/08/10 21:43 ID:???
fgets使わなくても他の関数でいけるような
175nobodyさん:04/08/10 22:41 ID:???
phpはじめたいんだけど、一から教えてくれる人いませんかー
全然わかりません。

ゲームの攻略サイト作りたいんだけど、php必要ない?
どこにphpを使ったらいいのかわからんのよ
176nobodyさん:04/08/10 22:43 ID:???
>>175
ない
177nobodyさん:04/08/10 22:48 ID:???
>>176
使うとすればどこに使う?ちみなら
178nobodyさん:04/08/10 22:52 ID:???
>>175
まぁゆっくりマンモス本でも眺めてみたらどうだろうか
http://www.sra.co.jp/people/t-ishii/php_new/php4_new.html
179nobodyさん:04/08/10 22:56 ID:???
>>175
ヘッダーとかフッターとか、同じリンクボタンで複数のページに登場するときとか
phpでやると楽ですよ。
metaも全部のページに書かないでもいいので楽。
180nobodyさん:04/08/10 23:01 ID:???
>>179
それがあたりまえになるともっと楽したくなるさ
181131:04/08/11 00:04 ID:???
>>172
・・・俺の予想があたっとるやんけw
182nobodyさん:04/08/11 00:27 ID:???
やんけ
183nobodyさん:04/08/11 00:41 ID:2sgdWAV8
DOM勉強してるんですが、
ファイルに出力するときって何を使えばいいのでしょうか?
普通に一つずつテキストとして出力するんじゃ駄目ですよね。

どうもDOM関係の資料が少なくて困ってます。
ヒントでもいいので教えてください。
184nobodyさん:04/08/11 00:45 ID:???
>>183
結構詳しい資料を発見した。
http://broadband.ocn.ne.jp/gmms/dom.html
185nobodyさん:04/08/11 03:29 ID:???
>>184
わかりやすい図入りでよくわかりました。
186165:04/08/11 11:36 ID:???
>169-171 どもです。
GIF でないと表示できない端末があるっつーことは、GD の GIF 対応も
うれしいかな。端末によって表示できないのは可哀想だし。
187nobodyさん:04/08/11 11:51 ID:???
質問です。
require_onceで他サーバにあるライブラリ等を読込事は出来ないのでしょうか?
ini_set('include_path','http://******')
で変更しても上手く出来ないです。
ご教授下さいます様お願い致します。
188nobodyさん:04/08/11 11:55 ID:???
>>187
できるのかどうかは知らんが、できたら恐ろしい。
189nobodyさん:04/08/11 11:57 ID:???
夏だ、夏過ぎる。
190nobodyさん:04/08/11 12:02 ID:???
>>188
そうですよね…セキュリティの問題等もあるでしょうから、
出来なくて当然なのですよね。
有難う御座いました。
191nobodyさん:04/08/11 12:04 ID:m7sM3Cg8
>>187
実行形式である限り結果しか読み込めない
読み込めたら面白いが問題山積み

今日は更に暑くなりそうだね
192nobodyさん:04/08/11 12:05 ID:???
phpsとかなら読み込めるけどね
193nobodyさん:04/08/11 12:34 ID:???
いやできるだろ。
ライブラリを置いている鯖がtext/plainとして吐いてくれればの話だが。
194193:04/08/11 12:35 ID:???
あ、text/plainつうより、ソーススプリクトをそのまま吐いてくれればってことね。
195軟式PHP:04/08/11 12:54 ID:???
(つω;)
196nobodyさん:04/08/11 13:03 ID:???
>>187
SOAP や XML-RPC を検討したら。
197nobodyさん:04/08/11 13:53 ID:???
php.ini の設定次第で
include ('http://example.com/lib.php');
は出来るワケだが。

require_once は知らない。
あと出来ない方がいいってのも事実。safe_mode で運用しような。
198nobodyさん:04/08/11 14:00 ID:???
できるわけないじゃん
199187:04/08/11 14:25 ID:???
親切に皆さん有難う御座います。
行いたかったのはエラーの関数等を読み込んで
結果を別のPHPで行いたかったのです。
しかしそれが出来たら怖いですよね…
勉強が足りないです。ありがとう御座いました。
200軟式PHP:04/08/11 14:52 ID:???
共通関数作ってライブラリ化してそれを読み込むってんなら常套手段だが
他サーバーってのがよく分からんのだが。
201nobodyさん:04/08/11 14:54 ID:???
たぶん、エラー処理用のスクリプトがあって、それをrequireしたかったと
言ってるのだろうから、素直にコピーしたら良いのでは?
202軟式PHP:04/08/11 14:57 ID:???
そだよね。なんで他サーバー・・・?(´・ω・`)
203nobodyさん:04/08/11 14:59 ID:???
インターネットと仮定しているからあれだけどLAN等で複数のサーバーが
あった場合なら出来そうな気がするのですが、それは先読みし過ぎだろうか^^;
LANで接続されている環境であれば共有したい事もあるだろうしね
204nobodyさん:04/08/11 15:02 ID:zEQw5zg8
PEARのMail_mimeDecodeをつかって、メールから本文と添付ファイル(画像)を
引き出してます。
が、あぽーのメーラーは、メールに画像を添付した場合、multipartのひとつ
のpartがmultipartになってます。
multipartのネスティング状態です。
その中に、プレビュー用のパートと画像本体のパートに別れているようです。

$decode1 = new Mail_mimeDecode( メール全体 );
でPart1/Part2/Part3とデコードできるのですが、
Part3がmultipartだったばあい、どうやってでこーどすればいいのでしょう?
$decode3 = new Mail_mimeDecode( Part3のbody );
とやっても、mime decodeしてくれません。

よろしくおながいします。
205軟式PHP:04/08/11 15:03 ID:???
NASのようにしたいのだろうか。
206nobodyさん:04/08/11 15:12 ID:???
>>203
その場合だってHTTP使わんでもいいと思うんだけど・・・NFSとかさ
207nobodyさん:04/08/11 17:28 ID:???
Googleの検索文字の分割みたいなのをやりたいのです。
と、いっても全文検索みたいな高度なものではないです。

ひとまず実現したいのは・・・
1. スペース区切りの場合はスペースで単語を分割
2. ダブルクォーテーションでくくられている場合は、その間のスペースは文字扱い

1だけなら explode() を使えばいいんですが、
2も実現するためにはどうしたらいいでしょうか?

例)
あああ いいい ううう
→ "あああ" と "いいい" と "ううう" に分割

あああ "いいい ううう" えええ
→ "あああ" と "いいい ううう" と "えええ" に分割

スペースもダブルクォーテーション括りも複数可で。

208nobodyさん:04/08/11 17:31 ID:???
まず、""で分割して、次にスペースで分割すれば
209nobodyさん:04/08/11 17:39 ID:Ad++av00
PHP初心者で、分からない事があるので質問させてください。
よろしくお願いします。

$fp = fopen("xx.txt","a+");
fputs($fp,"あああああ");
でテキストファイルに何か文字列を書き込む場合、モードが
a+になってるのでファイルが無かったら自動で作成するはずですよね?

事実、ローカルで試したら作成してくれたのですが、Web上で試そうと
思ってPHPが実行できる無料スペースにUPしたところ、エラーが出て書き込め
ませんでした。

テキストファイルを先に自分で用意しておくと書き込みが成功しました。
なぜ、ローカルではうまくいってWeb上ではうまくいかないのでしょうか?
サーバーの仕様とか、そういう問題なのでしょうか?

こんな質問で申し訳ありませんが分からないので教えてください。
210nobodyさん:04/08/11 17:42 ID:???
>>209
エラー内容を書く!

多分 パーミッション だと思うけど。
211nobodyさん:04/08/11 17:44 ID:J4D7ZMSz
GDを使ってサムネイルを作った時に
jpegにICCプロファイルの埋め込みって出来ないもんですかね。
webで見ると全然色が違うので。
分かる人居ませんか。
212nobodyさん:04/08/11 17:45 ID:???
PHP初心者とあそぼう
213nobodyさん:04/08/11 17:47 ID:???
>>208
ありがとうございます。

例)
あああ "いいい えええ ししし" ううう えええ "search text"

Array
(
[0] => あああ
[1] => いいい えええ ししし
[2] => ううう えええ
[3] => search text
)

なかなかいい感じなんですが、
最初に ダブルクォート で explode() しちゃうと、
[1] と [2] の区別がつかなくなっちゃいますね・・・。
214nobodyさん:04/08/11 18:13 ID:???
うんこソースどぞー


$str = 'あああ "いいい えええ ししし" ううう えええ "search text"';

$str2 = explode(" ",$str);
$count = count($str2);

unset($str);
$flag = 0;
$j = 0;
for ($i=0; $i<$count; $i++) {
if( mb_ereg("(^\")",$str2[$i]) ){
$flag = 1;
$str[$j] = $str2[$i];
}
else if ( $flag==1 && !mb_ereg("(\"$)",$str2[$i]) ) $str[$j].=" ".$str2[$i];
else if ( $flag==1 && mb_ereg("(\"$)",$str2[$i]) ) {
$str[$j].=" ".$str2[$i];
$j++;
$flag=0;
}
else {
$str[$j] = $str2[$i];
$j++;
}
}

foreach($str as $key => $value) echo "\$str[".$key."] = ".$value."<br>";
215nobodyさん:04/08/11 18:28 ID:???
ウンコー
__$1__ がとてもいけてない。


$text = 'あああ "いいい えええ ししし" ううう えええ "search text"';

$text = preg_replace("/\"([^\"]+)\"/", "\"__$1__\"", $text);
$quote = explode("\"", $text);

$list = array();
foreach ($quote as $item) {
if (preg_match("/^__(.+)__$/", $item, $arr) != 0) {
$list = array_merge($list, $arr[1]);
} else {
$list = array_merge($list, explode(" ", $item));
}
}

for ($i = 0 ; $i < count($list) ; $i++) {
$list[$i] = trim($list[$i]);
if (strlen($list[$i]) == 0) {
array_splice($list, $i, 1);
}
}

print_r($list);
216nobodyさん:04/08/11 21:17 ID:???
リモートファイルの最終更新日を拾得するには
allow_url_fopenを有効にするしかないのでしょうか?
217>>213:04/08/11 22:18 ID:???
$str = 'aaa "iii eee i\"iii\"kkk" uuu o\"oo "search text"';
$words = array();
if( preg_match_all('/("[^"]*(?:\\"[^"]*)*?"|\S+)(?:\s|$)/',$str,$m) ) {
 if( is_array($m[1]) ) {
  foreach($m[1] as $tmp) {
   $tmp = preg_replace('/^"(.*)"$/','$1',$tmp);
   $tmp = preg_replace('/\\\\"/','"',$tmp);
   array_push($words,$tmp);
  }
 }
}
print_r($words);

バグ入ってないかな・・・確認求む
入れ子のケースは簡単そうでとても難しい
文字の出てくる順序を気にして考えるとよいよ
218nobodyさん:04/08/11 23:33 ID:UR02D5bF
変数名$fileが20**00のときにこの条件を実行したいのですが、
これだとうまくいきません。

if($file == 20..00)

どのように変更したら良いのでしょうか?
219nobodyさん:04/08/11 23:50 ID:???
性器表現
220nobodyさん:04/08/12 00:34 ID:???
"U" 性器表現むずい
221nobodyさん:04/08/12 00:36 ID:???
if(ereg("20[0-9]{2}00",$file)){echo "U";}
222nobodyさん:04/08/12 00:53 ID:???
>>211
俺はImageMagickに逃げた。
223nobodyさん:04/08/12 01:07 ID:???
functionの中でfunction以外のところで定義した変数は使えないんでしょうか?
224nobodyさん:04/08/12 01:18 ID:???
使わない方が身のためです
225nobodyさん:04/08/12 01:48 ID:???
>>222
どもー
ImageMagickはICCが埋め込みできるんですか?
ってググってみますー
ありがとねん!
226nobodyさん:04/08/12 01:52 ID:???
>>223
マニュアルくらい読もうよ・・・
227nobodyさん:04/08/12 08:44 ID:aDJWVDD6
>>223
localとglobal...プログラミングのアロハでつね
228nobodyさん:04/08/12 09:35 ID:???
ページ切り替えって
headder "Location:index.html";
だっけ?
229nobodyさん:04/08/12 10:02 ID:???
/public_html/fairy/page/item/touroku.phpから
/public_html/fairy/data/clist.cgiまで飛ぶのに
.../data/clist.cgiじゃだめなのか?
230nobodyさん:04/08/12 10:03 ID:???
多分そんな感じ。
231229:04/08/12 10:07 ID:???
$clist = '.../data/clist.cgi';
にしたのに、
Warning: file(): Unable to access .../data/clist.cgi in /virtual/drk/public_html/fairy/page/item/touroku.php on line 177
だって;;
だめだ_| ̄|○
232nobodyさん:04/08/12 10:09 ID:???
普通こうじゃね?
../../data/clist.cgi
233229:04/08/12 10:11 ID:???
>>232
おお、あり!
どうやら.../はCGIしか無理だったようだ・・・

$time = data("Ymd");
にするとエラー出るぽウワァァァァァン
Call to undefined function: data()
234nobodyさん:04/08/12 10:12 ID:???
dateじゃね?
235nobodyさん:04/08/12 10:13 ID:???
パスの指定はCGI云々関係ないし。
236229:04/08/12 10:18 ID:???
>>234
スマ、あほな間違いだった&ありがと


間違え探し
$all = file($slist);
$yoyaku = "";
$count = count($all);
$put = implode(",", array($id,$item,$syurui,$str,$dex,$def,$luck,$taikyu,$plusa,$plusb.$plusc,$kazu,$memu,$comment,$time,$yoyaku));
$fp = fopen($all,"w");
flock ($fp,LOCK_EX);
rewind ($fp);
fputs($fp,"$put\n");
for ($i=0;$i<=$count ; $i++){
fputs($fp, $all[$i]);
}
flock ($fp,LOCK_UN);
fclose($fp);
データが書き込まれないぽ
237軟式PHP:04/08/12 10:22 ID:???
間違え探しワロタ。素直になれよ・・な?初心者君。
238229:04/08/12 10:32 ID:???
素直になったぽ!
間違い見つかったので糸冬キボン
239nobodyさん:04/08/12 10:33 ID:???
$allってカウントした数字だよね?
$fp = fopen($all,"w");
$fp = fopen($slist,"w");じゃないの?

240軟式PHP:04/08/12 10:39 ID:???
>>238
あと、fopenの例外処理しとけよ。
241nobodyさん:04/08/12 10:55 ID:???
PHPで並列処理をさせる為に
特に気を付けなければならない点はなんしょうか?
242nobodyさん:04/08/12 11:28 ID:I9M6Mw7p
mysql_fetch_arrayで進んだポインタを最初に戻すのはどうやるの?
243軟式PHP:04/08/12 11:36 ID:???
>>241
DB使ってるならトランザクションとか気をつければいいんじゃないかな。
てか、漠然としすぎてて答えようが無いっす。

>>242
http://php.s3.to/man/ref.mysql.html
マニュアル見る事に慣れよう。モロ載ってるから。
244nobodyさん:04/08/12 11:41 ID:???
軟式PHPって もしかして あのひと?
245242:04/08/12 11:51 ID:I9M6Mw7p
>>243
うーんわからん
mysql_field_seekのことか?
246nobodyさん:04/08/12 11:54 ID:a319dClm
リンクの参照元って
$_ENV['HTTP_REFERER']
で宜しいのでしたっけか?
247nobodyさん:04/08/12 11:56 ID:???
$yoyakuの中身が空っぽなのに
if ($yoyaku != ""){
$color = '#cccccc';
}else{
$color = '#ffffff';
}
で、$colorが#ccccccになります。なぜでしょうか
248247:04/08/12 12:13 ID:???
よく見ると半角スペースが入っています。
249nobodyさん:04/08/12 12:18 ID:???
>>248
だったら半角スペースを入らないようにすればいいのでは??
250nobodyさん:04/08/12 12:26 ID:aDJWVDD6
trimしたら?
251247:04/08/12 12:31 ID:???
>>249
といいますと?

>>250
初心者なんで使い方がわかりません・・・
もしよければ教えていただけると有難いです。
252nobodyさん:04/08/12 12:48 ID:???
初心者なので……とか言ってないで頼むからマニュアルを検索してくれよ
253nobodyさん:04/08/12 12:52 ID:???
初心者なのでではなく、調べる気がない怠惰で救いようがない人間の間違いだろう。
検索すれば一瞬で分かることすらやろうとしない。
254nobodyさん:04/08/12 12:55 ID:???
>といいますと?
って言い方がマジ腹立つわw
255軟式PHP:04/08/12 12:56 ID:???
>>初心者なのでではなく、調べる気がない怠惰で救いようがない人間の間違いだろう。
これ良いな。俺も使わせてもらおう。的射すぎw
256軟式PHP:04/08/12 12:57 ID:???
【PHP】質問スレッドpart21【といいますと?】
次スレはこれにケテーイ
257nobodyさん:04/08/12 13:19 ID:???
if ( if($syurui2!=""){$syurui==$syurui2}){
みたいにifの中にif入れられないのかな〜
検索システム勉強中なんだが・・・
258nobodyさん:04/08/12 13:21 ID:???
>>257
何がしたいの?
259242:04/08/12 13:27 ID:???
なんとか解決
260nobodyさん:04/08/12 13:28 ID:???
if(if2($syurui2!=""){}else{}){$syurui==$syurui2}
261nobodyさん:04/08/12 13:28 ID:???
>257
したいことは
if( ($syurui2!="") && ($syurui==$syurui2) )
なんじゃないかな、と予想してみる
262nobodyさん:04/08/12 13:36 ID:???
>>260
if2とか初めて聞いたよママン

>>261
検索の時、検索内容が空白ならその項目を除外して検索したい。
263nobodyさん:04/08/12 13:38 ID:???
変数がどうゆう内容なのかわかんないし意味不明
264nobodyさん:04/08/12 13:41 ID:???
$joukenA $joukenB $joukenC があるとする。
list (jA,jB,jC)(ry
       を読み込む
$joukenAとjAを比較して同じ、joukenBとjBを比較して同じ、joukenCとjCを比較して同じだったらTRUE
&joukenAが空白ならjoukenA以外を比較して同じならTRUEとやりたいんだ
265264:04/08/12 13:42 ID:???
すまん、&joukenA→$joukenAな
266nobodyさん:04/08/12 14:02 ID:aDJWVDD6
>>256
ワラタ
267nobodyさん:04/08/12 14:03 ID:???
(($joukenA == '') || ($joukenA == $jA)) && ....
268nobodyさん:04/08/12 14:10 ID:???
>>264

list($JA,$JB,$JC);
if($JA != $jyoukenA){continue;}
if($JB != $jyoukenB){continue;}
if($JC != $jyoukenC){continue;}
else{TRUE;}
こんな感じかなぁ?
269nobodyさん:04/08/12 14:17 ID:???
>>268
continueってなんや?
270nobodyさん:04/08/12 15:14 ID:TRKJBK11
PHP上のフォームからサーバのcronを編集するには、どうすれば良いでしょうか?
271nobodyさん:04/08/12 15:26 ID:???
適切な権限を設定するか、root権限でsビットを設定したプログラムを使うか、
外部プログラムとしてsudo等を使うか、
特定の場所に置いたファイルをcronで定期的に確認させて変更するか、
方法はいくらでもあるが本当に一つも思いつかなかったのだろうか?
272nobodyさん:04/08/12 15:57 ID:???
PHPを使ってサーバ上にupしたファイルを任意の大きさに分割することって出来ますでしょうか?
何卒宜しくお願いします。
273nobodyさん:04/08/12 16:06 ID:???
>>272
できますよ。がんばってください。
274nobodyさん:04/08/12 16:08 ID:???
>>273
やり方も教えてくれたっていいでしょう
275軟式PHP:04/08/12 16:10 ID:???
>>272
昔、分割ファイル+結合するexeを吐き出すプログラム作った時は
ファイルの読み込み位置をずらしながら一定の量を取得しつつ分割していったよ。
一気に読み込んで分割すると何かOSの挙動がメモリ不足になったり変になった。
PHPで作る場合もそんな感じで分割読み込みしていったほうがいいと思う。
276272:04/08/12 16:13 ID:???
>273さん
やっぱり出来ますよね。
freadあたりを使えばいいんでせうかね。
277nobodyさん:04/08/12 17:33 ID:???
>>276
たぶんfcutじゃないかな
278270:04/08/12 17:57 ID:TRKJBK11
>>271
レスありがとうございます。
とりあえず、cron.confというファイルを作って
<?php
system("/usr/bin/crontab cron.conf");
?>
としてみました。エラーは出てこず、通常終了(0)でした。
しかし、crontab -l としても結果が反映されていませんでした。
コンソールから crontab cron.conf とすると反映されます。
system()関数自体は使えていますし、パスもあっていると思います。
なにがいけないのかサッパリorz

cron.confの中身は
10 * * * * w
です。
279nobodyさん:04/08/12 18:00 ID:???
crontabを実行しているユーザは誰だ
280270:04/08/12 18:07 ID:TRKJBK11
>>279
FTPのログインID(SSH)と同じユーザです。
281nobodyさん:04/08/12 18:21 ID:TRKJBK11
コンソールから
$php cron.php
とやると反映されていました…
282nobodyさん:04/08/12 18:31 ID:???
281は本当に理解しているのだろうか・・・
283nobodyさん:04/08/12 19:02 ID:???
実行ユーザーがApacheになってるんじゃないの?
284nobodyさん:04/08/12 20:27 ID:???
PHPで掲示板作ってますが、串制限ってどうやってやったらいいですか?
285nobodyさん:04/08/12 21:02 ID:???
ここの皆さんは質問に親切に答えてくれるのでとってもいいですね
僕もがんばってPHP勉強しようと思います。
分からないところがあればまた聞くかもしれませんけど、その前に
なるべく自分で調べますので、その時はよろしくお願いします。
ではでは・・・。
286nobodyさん:04/08/12 21:10 ID:???
>>284
ホストを逆引きしてみるとか・・・俺も詳しくは分からんが
287nobodyさん:04/08/12 21:52 ID:oR5u/X7X
クラスを作るときに
$AB = new ABC;

$AB =& new ABC;
というのがあるんですけど違いはなんですか?
288nobodyさん:04/08/12 22:03 ID:???
>>284
プロキシを使ってる場合は、プロキシサーバーから
「俺はプロキシだよ」ってな情報を送ってくるから
それを取得する。
ただ、そういう情報を送ってこないサーバーもあるから、
そういう場合はIP単位やホスト単位で個別に弾くしかない(いわゆる匿名串)

俺が実際使ってるコードを載せておく。場合によってはプロキシじゃない
ものを弾いちゃうこともあるので、あんまりきつく制限しない方がいいよ。

詳しくはGoogleとかで検索してね。結構出てくるよ。
289nobodyさん:04/08/12 22:04 ID:???
//-------------------------------------
// プロキシからアクセスしているか
//-------------------------------------
function is_proxy_access(){
//サーバー変数のキー
$server_keys = "";
foreach ($_SERVER as $key => $value)
$server_keys .= $key.",";

//プロキシと思われる変数
$proxy_keys = "HTTP_CACHE_INFO|"
. "HTTP_CLIENT_IP|"
. "HTTP_FORWARDED|"
. "HTTP_PROXY_CONNECTION|"
. "HTTP_SP_HOST|"
//. "HTTP_TE|"
. "HTTP_VIA|"
. "HTTP_X_FORWARDED_FOR|"
. "HTTP_X_LOCKING|"
. "HTTP_XROXY_CONNECTION|"
. "HTTP_XONNECTION";
290nobodyさん:04/08/12 22:04 ID:???
//判定
if (preg_match("/($proxy_keys)/i", $server_keys)) return TRUE;

//UserAgentでの判定
if (preg_match("/(via|proxy|anonym)/i", @$_SERVER["HTTP_USER_AGENT"])) return TRUE;

//リモートホストでの判定
if (preg_match("/(anonym|cache|delegate|^dns|keeper|^ns.|proxy|^www)/i", @$_SERVER["REMOTE_HOST"])) return TRUE;

//規制しない
return FALSE;
}

改行が大杉とか言うエラーが出るから分割した。
もうね、アホか馬鹿かと
291nobodyさん:04/08/12 23:42 ID:K+6vy8Mq
PHPに連続してファイルにアクセスするプログラムを組んで、ファイルがなくなった時点で処理を終了し、
続きのHTMLを表示するプログラムを作りたいのですが、終了させる方法がわかりません。

〜〜
<?php
while(1){

$fp = fopen("$logfile","r");
if($fp == false)
break;

}
?>
〜〜
だとWarningメッセージが表示されます。Warningメッセージを表示させないで終了させる方法ってありあすか?
292291:04/08/12 23:44 ID:K+6vy8Mq
すいません@$fpでできました。
293nobodyさん:04/08/12 23:48 ID:???
Perl?
294nobodyさん:04/08/13 09:26 ID:???
295nobodyさん:04/08/13 10:18 ID:???
どうでも良いことかもしれませんが、PHPカンファレンスの詳細ってどこかに書いてあるページ
知りませんか?
PHPユーザ会のページにも見当たらないし・・・。どこで登録とかしたらいいんだろう。。
本当に開催するんですよね?
296nobodyさん:04/08/13 11:06 ID:???
>>217
おおお。なんかうまくいってますね。
preg_match_all のところの正規表現が理解できないので、
調べてから使います。

ありがとうございます。
297nobodyさん:04/08/13 11:46 ID:???
>>289
$server_keysには何か入れるのですか?
298nobodyさん:04/08/13 11:47 ID:???
初めて書き込み致します。
大変初歩的な事とは思いますが、検索してもなかなか見つからなかったので
こちらで質問させて頂きます。
場違いな質問かもしれませんが、ご教授して頂けると有難いです。

$_SERVER['HTTP_USER_AGENT']
を使ってアクセスしてきたOSやブラウザを調べ、
それに対応するcssをlinkさせるスクリプトを書いているのですが・・
$_SERVER['HTTP_USER_AGENT']
の返り値で、macのOS9がどのように表示されているのかが分からないのです。

OSXのIEとOS9のIEでは表示が違ってきてしまうようなので、OS9もちゃんと識別をしたいのです。

分かりにくい質問かもしれませんが、宜しくお願い致しますm(__)m
299nobodyさん:04/08/13 12:04 ID:???
>>298
UA名の一覧。かなりデカいのでページ内をmacで検索するよろし。
http://www.sal.tohoku.ac.jp/~gothit/ua.html
「HTTP_USER_AGENT mac win xp」でググった。
300nobodyさん:04/08/13 12:13 ID:???
>>299
本当に助かりました!
有難うございますm(__)m

アクセス解析 os9
HTTP_USER_AGENT os9
とかでググってました(´・ω・`)

ブックマーク入れておきますです。

本当に感謝ですm(__)m
301nobodyさん:04/08/13 14:03 ID:???
PHP 5.0.1 Released!
http://www.php.net/
302nobodyさん:04/08/13 14:19 ID:???
この間4.3.8にしたから様子見
303nobodyさん:04/08/13 14:38 ID:???
4.3.9 も出るね。
304nobodyさん:04/08/13 16:24 ID:MYpDNZIf
$subject = 'あいうえお':
$message = 'かきくけこ';
$to = 'テストさん <[email protected]>';
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=EUC-JP\r\n";
$headers .= "From: "送信者 <[email protected]>\r\n";
mail($to,$subject,$message,$headers);

これをEUC-JPで作って、送信したところ、Windows Outlookではちゃんと日本語が反映されていました。
しかしBeckyで受信したところ、タイトルとFromの部分が文字化けを起こしていました。
そこで、Shift_jisで作ったところ、特定の受信メールアドレスでは文字化けし、それ以外はちゃんと受信できました。
いずれもタイトルとFromの日本語部分のみです。
なにが原因でしょうか?
305nobodyさん:04/08/13 16:31 ID:???
文字エンコード
306nobodyさん:04/08/13 16:43 ID:???
メールはiso-2022-jpで送るのが基本
mb_encode_mimeheaderをつかう

iモードはShift_JISで送っても平気?
content-transfer-encoding: 8bit
でいけるのかな
307nobodyさん:04/08/13 17:10 ID:???
>>295
誰かここ読んでたのか知らんが、案内が掲載された。
http://www.php.gr.jp/seminar/20040821/
308nobodyさん:04/08/13 17:16 ID:???
変数にいくつか入れる場合って
$A[]=("1","2","3");
であってるよな?
309nobodyさん:04/08/13 17:20 ID:???
array使えよ
310nobodyさん:04/08/13 17:23 ID:???
>>309
THX、arrayワスレテタよ
これって全角でもいけるのか?
$テスト = "9999"; とか
311nobodyさん:04/08/13 17:53 ID:???
>310
ってかマニュアル読め
312nobodyさん:04/08/13 17:55 ID:???
試せば
313nobodyさん:04/08/13 17:56 ID:???
今まで何をやってきた人だったら
変数名に全角使えるとか発想できるんだろう
314nobodyさん:04/08/13 17:59 ID:???
漢字ベーシックって変数名に漢字が使えなかったっけ?
骨董品だから知らないか・・・
315nobodyさん:04/08/13 18:13 ID:???
$Sに90を代入
$Jに$Sを代入して

print "$($J) <BR>";

とやってみたが、出力されるのは「$S」です。
なぜでしょうか?
316nobodyさん:04/08/13 18:13 ID:???
>>313
Javaとか全角使えんじゃん
317nobodyさん:04/08/13 18:19 ID:???
>>313
ええとね、ぱそこんが全角にみせてるだけなんだよ。
318nobodyさん:04/08/13 18:27 ID:???
>>315
どうやって代入してるのか書いてみそ
319nobodyさん:04/08/13 18:36 ID:???
VBも変数に日本語使えるな
320nobodyさん:04/08/13 18:38 ID:???
$S = "90";
$J = "$S";

print $($J);
321nobodyさん:04/08/13 18:39 ID:???
>>315
代入の仕方
>>311
322nobodyさん:04/08/13 18:42 ID:???
$S = "90";
$J = "$S";
数字と変数を""で囲む意図は?
>>311
323nobodyさん:04/08/13 18:46 ID:???
$S = array("a","i","u","e","o");

$J = "S";

print &$($J)[0]." <BR>";

実際はこうやってます↑
324nobodyさん:04/08/13 18:54 ID:???
つまり$とSを繋げたいって意味か?
単に$S[0]を出力したいだけって意味か?
325nobodyさん:04/08/13 18:57 ID:???
単に$S[0]を出力したい>324
326nobodyさん:04/08/13 18:59 ID:???
$J = $S[0]."<br>";
print ("$j");

とか
echo $S[0]."<br>";

でいいかな

327nobodyさん:04/08/13 19:52 ID:???
echo ${$J."[0]"}
328nobodyさん:04/08/13 20:03 ID:???
すみません。教えて頂きたい事が。
php4.3.8でImageGifは使えるのでしょうか?

よろしくです。
329nobodyさん:04/08/13 20:15 ID:???
$J053 = array("0","0","0","20","25","30","35","40","45","50","60");
$J054 = array("0","0","0","0","15","25","30","35","40","45","50");
$J055 = array("0","0","0","0","0","10","15","20","25","35","45");
$J056 = array("0","0","0","0","0","0","10","15","20","30","40");
$J057 = array("0","0","0","0","0","0","0","10","15","25","35");


$S6 = array("$J050","$J051","$J052","$J053","$J054","$J055","$J056","$J057","$J058","$J059","$J060");

$on = $S6
print $on[5]."[3]";

上記のようにやったのですが
出力結果が「0」ではなく「Array[3]」となるんですが
なぜでしょうか?
330nobodyさん:04/08/13 20:22 ID:???
331nobodyさん:04/08/13 20:26 ID:???
その場合は普通に

echo $on[5][3];でいい
332329:04/08/13 20:29 ID:???
なぜか「a」と出力されるんだが・・・
333328:04/08/13 20:46 ID:???
>>330
うぉーありがと!
もう少しですね。今年の6月で日本も切れたのかな?
気長にまちます!
どもでした。
334nobodyさん:04/08/13 20:58 ID:???
>>332
Array の a か。
335nobodyさん:04/08/13 21:02 ID:???
>>329
基礎中の基礎が理解できてないと思われ
悪いこと言わんから入門書か何か一冊買いなさい
336nobodyさん:04/08/13 21:17 ID:iU64GMXW
Yahoo!のように、PHPで構築されているにも関わらず
拡張子「.php」のファイルが一切見られないサイトは、
どのようにしてファイル内にPHPが記述されているのか否かを判別させているのでしょうか??
337>>336:04/08/13 21:28 ID:???
.htaccessで拡張子の指定をすることは出来るけど。
AddType application/x-httpd-php .php .html .htm
AddType application/x-httpd-php-source .phps
338nobodyさん:04/08/13 21:43 ID:???
質問です。

<html>
省略
<?php処理1?>
省略
</html>

<?php処理2?>

処理2が重たい&出力に関係ないので
先に処理1だけ出力させたいのですが、どのような方法があるでしょうか?
339nobodyさん:04/08/13 21:50 ID:???
>>338
言ってる意味がわからんが、必要な時に呼び出せばいいんでないのかな?

<?php
function 処理1() {
}
function 処理2() {
}
?>
<html>
<?php 処理1(); ?>
</html>
<?php 処理2(); ?>

内容的には変わらないけど。
340nobodyさん:04/08/13 21:51 ID:???
>>287

クラスをインスタンス化するか
インスタンス化しないかの違いじゃないの?
341nobodyさん:04/08/13 21:56 ID:???
>>339
有難う御座います。
解り辛くてすみません。
そういう意味ではなく、
</html>までのバッファを先に出力して処理2に移りたいという意味です。
342nobodyさん:04/08/13 22:04 ID:???
>>341
表示と同時にワンアクションで処理を実行したいなら無理じゃないかな?
343nobodyさん:04/08/13 22:18 ID:???
ob_flash
344nobodyさん:04/08/13 22:27 ID:???
>>343
やはりflashですか。
それが幾らマニュアル読んでもさっぱりなんです。
どの様に記述すればいいのでしょうか?
345344:04/08/13 22:28 ID:???
flush()ですたOTL
346nobodyさん:04/08/13 22:32 ID:???
>>313
>変数名に全角使えるとか発想できるんだろう
逆に発想出来ないのは、頭が固い証拠では?

マニュアルの「変数」の章の「基本的な事」参照
ttp://www.php.net/manual/ja/language.variables.php#language.variables.basics

>>338
flush()
347nobodyさん:04/08/13 22:33 ID:???
文頭に
ob_implicit_flush(1);
while (ob_get_level()) ob_end_flush();
書けば、逐次表示されます
でもこれ、
mb_http_output('SJIS');
ob_start('mb_output_handler');
と併用するとうまくいかないんだよなー
エロイ人教えて
348344:04/08/13 22:37 ID:???
>>347
たった2行でできますたOTL
ネ申でつ。
以後覚えておきます。
ありがとうでした。
349294:04/08/13 23:48 ID:???
>287
参照先まちがえてますた。正しくは、
ttp://www.pat.hi-ho.ne.jp/dimension/sample/sample_class_dp_singleton.shtml

PHP 4.3.x は $instance = new Class(); としたときにインスタンスの
コピーを返します。
シングルトンパターンなどで、毎度同じインスタンスを利用したい時は
リファレンスを使います。くわしくは参照先で。
350nobodyさん:04/08/14 01:34 ID:???
<?php
<html><head></head><body>
$opendir = dir(".");
$i = 0;
while (($ent = $opendir->read()) != FALSE) {
if (is_dir($ent) != FALSE) {//ディレクトリのみ
$i++;
$dirname[$i] = $ent;
echo '<a href="aaa.php?page='.$ent.'">'.$ent."</a><br>\n";
}
}
if ($page == $dirname[1]) {
echo "ああああああ";
}
echo "</body></html>";
?>
こういう風にしているんですが、$dirname[1]に当たるリンクを押しても
ああああああの文字列が表示されないんですが、いったい
どこが間違ってるんでしょうか・・・
351nobodyさん:04/08/14 01:49 ID:???
>>350
print "_GET['page'] : ".$_GET['page']."; page : ".$page; を仕込んで
表示されるかどうか試してみ
352nobodyさん:04/08/14 03:10 ID:???
readdir() は読み込む順番がランダムなので、多分それが原因。
353nobodyさん:04/08/14 03:32 ID:RcWJyX8g
えっと。
function abcd($1,$2,$3) {

などで、この例えば$2に値が入っていない(入れ忘れてしまった)
場合には、phpがエラーを出すのですが、
この$2に値が入っているか居ないかを調べるにはどの関数を使えばいいでしょうか?

defined かなと思ってやってみたのですが、うまくいかなくて。
よろしくお願いします。

(使い方は
$2に値が無い場合(空)に予め用意したデフォルト値を代入?したいのです。ifとかつかってですが。)
354nobodyさん:04/08/14 03:47 ID:???
> $2に値が無い場合(空)に予め用意したデフォルト値を代入?したいのです

これさえ満足させればいいなら
function abcd($1,$2='でふぉると',$3)
でいいんじゃないかい?
355nobodyさん:04/08/14 03:57 ID:???
関数のデフォ値設定は 右に詰めなきゃいけないんじゃなかったっけ?
その場しのぎでいいなら、全部にデフォ値設定かなぁ。
356nobodyさん:04/08/14 04:36 ID:???
>>354さん >>355さん 早速ありがとー

今からやってみます!
結果をまた書き込みにきます。
どもでした。
357353:04/08/14 05:13 ID:???
できました!
function abcd($1,$2="hoge",$3="moge") {
です。
デフォルト値を入れるのなら右側にしないとだめでした。

>>354さん>>355さんありがとうさんでした〜

ifとか使ってごにょごにょしないとだめかなと思ってたので大喜びですw

358nobodyさん:04/08/14 10:11 ID:???
>>353 の方と少しかぶります。
関数の引数の初期値にグローバル変数を定義することはできますか?
具体的には、次のようなことがしたいのです。

---------------------------------------
1 $variable = "global variable";
2
3 function test($var="$variable")
4 {
5 print $var;
6 }
7
8 test();
---------------------------------------

このようなスクリプトを書くと、以下のようなエラーになってしまいます。
Parse error: parse error, unexpected '\"' in index.php on line 3

対処法がありましたら、教えてください。
359nobodyさん:04/08/14 10:32 ID:???
>>358
はぁ・・頼むからマニュアル嫁でくれよ…ばっちり書いてあるだろ

ttp://www.php.net/manual/ja/functions.arguments.php#functions.arguments.default
>デフォルト値は、定数式である必要があり、 (例えば、)変数やクラスのメンバーであってはなりません。
360350:04/08/14 12:13 ID:???
非常に助かりました。GETで無事取得できました。
4時間ぐらい悩んでいたのが嘘のようです。
本当にどうも有り難う御座いました。
361nobodyさん:04/08/14 13:08 ID:go/x2Owu
>>358
頭から水をかぶって、頭を冷やせば見えてくるよ
362358:04/08/14 13:35 ID:???
>>359,361

どうもありがとう。関数の引数のデフォルト値は、変数ではだめなのですね。
違う方法でやってみようと思います。
363nobodyさん:04/08/14 13:44 ID:???
>>362
違う方法も何も、引数のデフォルト値に変数を利用するという発想自体がそもそもおかしい。
364nobodyさん:04/08/14 15:25 ID:???
PHPのバージョンは5.0.1です。

<son>
<taro></taro>
<jiro></jiro>
<sab></sab>
<white></white>
</son>

上のようなXML文書を、 simplexml_load_fileで読み込んで、下のような形式で子ノードの一覧を出力したい
と思っています。
 son
 jiro
 sab
 white
その場合、どうすればいいのでしょうか?
365nobodyさん:04/08/14 15:28 ID:???
son
jiro
 :
ではなく、
taro
jiro
 :
でした、すいません。
366nobodyさん:04/08/14 15:36 ID:???
せっかく PHP5 やってんなら SimpleXML 使ったら?
ドキュメントがまだ十分に無いから、使い方とかどこかに書き残すと重宝されるよ。
367nobodyさん:04/08/14 16:18 ID:???
教えてください。
現ディレクトリ以下の下位ディレクトリのファイルの取得は
どうすればいいんでしょうか。
368nobodyさん:04/08/14 16:22 ID:???
>>367
./現ディレクトリ/下位ディレクトリ/ファイル
または
下位ディレクトリ/ファイル
369364:04/08/14 17:11 ID:???
すいません、説明がいくらなんでも ひどすぎました。
要するに、要素名を得たかっただけなのですが……SimpleXMLには、そういった関数が用意
されていないみたいです。じゃあ、どうやって要素名を得ればいいのか――が、今回の質問で
あります。
370nobodyさん:04/08/14 18:38 ID:???
>>364
XML分かんないんでやっつけだけど、これで一応子ノード一覧取れるよ

<?php

function child_list($xml, $nest=0) {
  foreach ($xml->children() as $key => $element) {
    echo str_repeat(" ", $nest) . "$key\n";
    child_list($element, $nest+1);
  }
}

$xml = simplexml_load_string(
'<son>
<taro></taro>
<jiro></jiro>
<sab></sab>
<white></white>
</son>');

child_list($xml);
?>
371364:04/08/14 19:15 ID:???
>>370
! なるほど、そうすれば良かったんですか。
どうもありがとうございました、これでガリガリ作業が進められます。
372nobodyさん:04/08/14 19:41 ID:???
function test($array)
{
 array_push($array,"test");
}
$a = array();
test($a);
print count($a);

このようなスクリプトを書いたのですが、$aに値が代入されず、最後の行で0と出力されてしまいます。
どのようにすれば$aに値が代入されるようになりますか。
373nobodyさん:04/08/14 20:19 ID:???
>>372
function test(&$array)
{
array_push($array,"test");
}

もしくは

function test(&$array)
{
return array_push($array,"test");
}
にして戻り値を使う
374nobodyさん:04/08/14 20:57 ID:???
>>373
「リファレンス」なるものがあるとは・・・はじめて知りました。
どうもりあがとうございます。
375nobodyさん:04/08/14 21:21 ID:???
phpとかperl初心者って値渡ししかしらねーんだよな
376nobodyさん:04/08/14 22:17 ID:???
参照渡し・値渡しはどの言語であるか問わず基礎

値渡し意識してるなら、普通にreturnで返すだろうし、
参照渡しを意識してるなら&ぐらい気づくだろうと思うのだが、
なぜ、 >>372 は それで値の変更ができると思ったのかなぁ。
377Imo ◆.jC7ANgFY. :04/08/14 22:23 ID:???
元VisualBasicユーザーならば可能性はなきにしもあらず。
# VBは省略すると参照渡しになる
378nobodyさん:04/08/14 22:28 ID:8vlh+W98
非常に初歩的な質問かもしれませんが、
$timestamp = 年/月/01 という時間を入れた変数を
$timestamp = 年/月-1/31 というようにしたいのですが、
(つまり1日前日にずらす)
どのようにすればいいのでしょうか?
ご教授おながいしますm(_ _)m
379nobodyさん:04/08/14 22:31 ID:???
includeで呼び出したページからフォームを使ってデータを変数に格納するのができないのは既出?
380nobodyさん:04/08/14 22:32 ID:???
>>378
エポック秒に直して60*60*24を引けばいい
381nobodyさん:04/08/14 22:36 ID:8vlh+W98
>>379
レスありがとうございます。
つまり、エポック秒に直して、ひいてまた
もとの形に戻すってことですね。

ついでで恐縮ですが、エポック病になおしかた、
戻し方も教えてもらえないでしょうか?
調べたのですが、エポックってぐぐってもあんまりでてこないようなので・・・
382nobodyさん:04/08/14 22:39 ID:???
>>381
全部マニュアルに書いてあったよ
http://www.php.net/manual/ja/ref.datetime.php
383nobodyさん:04/08/14 22:39 ID:???
>>381
/でexprodeして年・月・日に分割して、それからmktimeすればいいんじゃないかな
384nobodyさん:04/08/14 22:56 ID:8vlh+W98
ありがとうございます。参考にします。
にしてもあれですね、1日戻すだけでも結構だるいもんですね。
385Imo ◆.jC7ANgFY. :04/08/14 23:01 ID:???
>>384
strtotimeもいろいろ使えるよ。一度見ておくといいかもしれない。
04/08/14とあったら解釈が違ったりするけどね。
(外国は年月日の順番が違うから
2004/08/14ならちゃんと解釈してくれる。
386nobodyさん:04/08/14 23:03 ID:???
UNIXタイムスタンプってエポック秒とも言うのか
勉強になった
387nobodyさん:04/08/14 23:06 ID:???
>>384
てか、わざわざ文字列で保持しておく必要があるのか?
最初からエポック秒で持ってれば手間全然掛からんのだが
388nobodyさん:04/08/14 23:10 ID:???
普通そうだよ
エポック秒で格納しておいて
date()で書式変えて表示すればいい
389nobodyさん:04/08/14 23:10 ID:???
$timestamp = strtotime ("- 1 days", $timestamp)


これでOKじゃね??
390nobodyさん:04/08/14 23:20 ID:???
$timestamp = mktime(0,0,0,08,01,2004);
echo date("Y/m/d H:i:s",$timestamp);

$timestamp = mktime(0,0,0,08,date("d",$timestamp)-1,2004);
echo date("Y/m/d H:i:s",$timestamp).;
391nobodyさん:04/08/15 00:02 ID:???
鯖の影響で変数に格納できないってことある?
変数に何入れても空白なわけだが・・・
392nobodyさん:04/08/15 00:12 ID:ThpZR4Ya
C-BOARDで、投稿画面に追加したセレクトボックスの
投稿データチェック(未選択不可)を行いたいのですが、
どうすればいいのですか?

下記のところに、新しく追加したら大丈夫だと思うのですが..
チェックの仕方がわかりません。

#── メールアドレスをチェック
length($::FORM{'email'})
&& ($::FORM{'email'} !~ /^[!-?A-~]+@[!-?A-~]+\.[!-?A-~]+$/)
&& push(@error, 'メールアドレスが不正です。');

#── パスワードをチェック
($::FORM{'key'} =~ /[<>&"]/)
&& &::error(\('パスワードに「<, >, &, "」は'
. '使えません。'));
393nobodyさん:04/08/15 00:16 ID:???
>>391
釣れますか・・
394392:04/08/15 00:16 ID:ThpZR4Ya
すいません、間違ってPHPのところに質問してしまいました。
申し訳ないです....
395nobodyさん:04/08/15 00:37 ID:nLnvBjde
PHPLIBダウンロードしたら本家が切れてるんやけど。誰かおいてること知らない?
本家    http://phplib.netuse.de/index.php3
ファイル名 phplib-7.2c.tar.gz
396395:04/08/15 00:37 ID:nLnvBjde
「したいと思ったら」の間違い。すぽ。
397394:04/08/15 00:42 ID:nLnvBjde
虚無で探してたらすぽんと見つかった。逝ってきます。
https://sourceforge.net/project/showfiles.php?group_id=31885&release_id=44737
398391:04/08/15 00:52 ID:???
スマンが真剣だ
399nobodyさん:04/08/15 01:02 ID:???
>>398
ありえんと思うが、検証できる最低限のコードを晒して味噌。
モノ好きが吊れてくれるやもしれん。
400nobodyさん:04/08/15 01:07 ID:???
http://〜/index.php?mode=site

上のURLの上体で

〜〜〜〜〜〜〜
</TBODY>
</TABLE>
</TD>
<TD bgcolor="#5788b5" valign="top">
<?php
if ($mode != ""){
include "./page/$mode.php";
}else{
include "./page/main.php";
}
?>
</TD>
</TR>
</TBODY>
</TABLE>
</TD>
〜〜〜〜〜〜

にしてあるんだが
表示されるのはhttp://〜/page/main.php デツ
401400(391):04/08/15 01:08 ID:???
ちなみにindex.phpでもhttp://〜/page/main.php デツ
誰か釣れてやってください;;
402軟式PHP:04/08/15 01:15 ID:???
<?php
のあとに
$mode = $_REQUEST["mode"];
をいれてみ。
403軟式PHP:04/08/15 01:17 ID:???
UNIXタイムスタンプで管理って2038?年だっけかその辺までしか対応出来ないべ。
しかしお盆どうすっかなぁ( ´-`)
404カポコン:04/08/15 01:30 ID:???
墓参り行くべ〜〜(´_`)§ll
405391:04/08/15 01:32 ID:???
>>402
ありがと、早速やってみま〜!
(と思ったら鯖落ちてるよ〜;;)
406nobodyさん:04/08/15 01:50 ID:???
あれで鯖のせいにするとは鯖がかわいそう・゚・(つД`)・゚・
407nobodyさん:04/08/15 01:50 ID:???
>>403
2037年になったら考えたらいいべ
408nobodyさん:04/08/15 01:54 ID:???
つか、共用鯖でテストしてる悪寒…
409nobodyさん:04/08/15 04:03 ID:???
くだらない質問かもしれませんが…
BBSのログ等を表示する際の処理は
for foreach while
どれが効率良いでしょうか。
ご教授願います。
410nobodyさん:04/08/15 04:25 ID:???
だいぶ前にここで速度比較してたよね
その時の結論は忘れたけど
俺はあんまり気にせず、状況に合わせてソースがきれいに書けるやつを選ぶ
411nobodyさん:04/08/15 04:38 ID:???
>>410さん
そうなんですか。
速さよりもどれが負荷が少ないかなと思いまして。
でもそんなには変わらないのですかねー。
有難うです!
412nobodyさん:04/08/15 09:01 ID:???
WindowsでPHP5.0.1をインストールし、コマンドラインから使ってます。
なんか、namespaceとかprivateとかの新機能が使えないんですけど、なぜですか?
心当たりがあれば教えてください。
413nobodyさん:04/08/15 09:41 ID:???
>>409
1.while 2.for 3.foreach と予測してみる
414nobodyさん:04/08/15 09:51 ID:???
設定ファイルで設定した内容をプログラムのほうで変更することはできますか。
具体的にはinclude_pathに追加したい。
415nobodyさん:04/08/15 10:02 ID:???
ini_setかな?そのあたり
416軟式PHP:04/08/15 11:53 ID:???
確かにforeachは一番遅そうだなw
俺も410のように保守性を重視するよ。
417nobodyさん:04/08/15 12:11 ID:???
<FORM method="POST" action="other/anq/index.php">
<SELECT name="sex">
<OPTION value="女" selected>女</OPTION>
<OPTION value="男">男</OPTION>
</SELECT>
<INPUT type="submit" name="action" value="送信">
</FORM>
としてるんだが、変数が格納サレマセン。なぜでつか?
418nobodyさん:04/08/15 12:16 ID:???
>>417
action="info.php"として info.phpの中身はphpinfo();のみ。
表示されたhtmlの中でセックルを探してみ
419nobodyさん:04/08/15 12:23 ID:???
Warning: Cannot modify header information - headers already sent byって何ぽ?
420417:04/08/15 12:23 ID:???
>>418
Request使えば変数が入るんだが・・・なぜだ?
421軟式PHP:04/08/15 12:44 ID:???
>>419
いやそのままと思うけど。既にヘッダーが出力されているから
header()は使えないってことだよ。header()周り見てみ。
何か出力してるところがあるはず。
422nobodyさん:04/08/15 12:53 ID:???
>>415
さんくす。
423419:04/08/15 12:55 ID:???
ちなみにこれだけでつ;;
<?php
$action = $_REQUEST["action"];
$age1 = $_REQUEST["age1"];
$age2 = $_REQUEST["age2"];
$Region = $_REQUEST["Region"];
$sex = $_REQUEST["sex"];
$server = $_REQUEST["server"];
$cls = $_REQUEST["cls"];
$monster = $_REQUEST["monster"];
if ($action == "送信"){
$data = 'data.cgi';
$age = $age1.$age2;

$input = implode(",", array($age,$Region,$sex,$server,$cls,$monster));
$fp = fopen($data,"a");
flock($fp,LOCK_EX);
rewind($fp);
fputs($fp, "$input\n");
flock($fp,LOCK_UN);
fclose($fp);
$ok = 1;
}
header("Location:http://**********/index.php");
?>
424nobodyさん:04/08/15 12:59 ID:???
>>423
ヘッダー出力できない警告の前にほかのエラーか警告が出てるんじゃないの?
425412:04/08/15 13:18 ID:???
privateがエラーになったのは、「private $x;」と書かなければならないところを
「private var $x;」と書いていたためでした。ばかです。

namespaceのほうはやっぱりエラーになります。
namespace Foo {
 class Bar {
 }
}
これだけなんだけどな。
426nobodyさん:04/08/15 13:44 ID:???
てか、PHP5のRelease版ってnamespaceサポートしてんの?
RC2で消えたんじゃなかったん?
427nobodyさん:04/08/15 14:11 ID:???
>>426
もれもそうおもう
428Imo ◆.jC7ANgFY. :04/08/15 15:00 ID:???
>>423
Unicodeで作っているとか?
429Imo ◆.jC7ANgFY. :04/08/15 15:10 ID:???
>>413
実際は「1.while 2.foreach 3.for」っぽい。
後半の二つはファイルを全部読み込むのはいいけど配列にするため
(explode&配列アクセス)の処理で時間を食っている様子。
forとforeachが違うのは、forが$i++や$i < count($data)とかを
毎回通しているためのロスみたい。
とはいってもテキトーにしか調べてない(というか差が誤差の範囲で
しかでない)から正確にはよくわからない。

whileはファイルを1回だけ読むのなら適当。
ただ、私は何度チェックしても無限ループが怖い。
forは添え字を自分で管理でき、
前とか後とかをすぐに参照できるという点で良い。
foreachは添え字が数値でなくても、
ちゃんとすべて処理できるという点で良い。

こんなところ。ただし、これは私の考えなだけ。
430nobodyさん:04/08/15 15:43 ID:???
>>336の続き
>>337のやり方で拡張子無しのファイルをPHPとして認識させるにはどうしたらいいですか?
または、別のやり方でできるのでしょうか?
431nobodyさん:04/08/15 16:17 ID:???
<?php
$mode = $_REQUEST["mode"];
if ($mode != ""){
include "./page/$mode.php";
}else{
include "./page/main.php";
}
?>

もし、modeに「aiueo」が格納されているとして
「./page/aiueo.php」がない場合に他の処理を行いたいんだが・・・
どうすればよい?
432nobodyさん:04/08/15 17:09 ID:???
>>431
あきらめることをお勧めします。
433nobodyさん:04/08/15 17:20 ID:???
>>431
file_existsじゃ不満なのか
434nobodyさん:04/08/15 17:43 ID:???
>430
<Files ~ "^[^\.]+$">
ForceType application/x-httpd-php
</Files>
435nobodyさん:04/08/15 17:45 ID:???
<?php
$mode = $_REQUEST["mode"];
if ($mode != ""){
if (! file_exists(./page/$mode.php){
include "./page/$mode.php";
}else{
include "./page/404.php";
}

}else{
include "./page/main.php";
}
?>

これでいいのかな・・・・
436nobodyさん:04/08/15 17:58 ID:???
>435
よく見直した方がいい
437nobodyさん:04/08/15 19:04 ID:???
is_fileよりfile_existsを使った方が良いのですか?
is_fileの「filenameが存在して、かつそれが 通常ファイルであればTRUEを返します。」と
ありますが、この通常ファイルとはCGI以外という意味なのでしょうか?。
438435:04/08/15 19:31 ID:???
全然ワカンネ
439nobodyさん:04/08/15 19:42 ID:???
>>438
エラーはログになって画面表示にしてないのかなぁ
どちらにしろ1からマニュアルを読むなり、ぐぐるなりした方が良いよ^^;
440Imo ◆.jC7ANgFY. :04/08/15 20:29 ID:???
>>437
ファイルを読めるかを調べるのにはis_readableを使うことをすすめます。
441nobodyさん:04/08/15 20:58 ID:???
>>440
userIDの事まで考えるとis_readableが良さそうですね^^
これからはこちらを使う事にします。
442nobodyさん:04/08/15 21:18 ID:???
{}数あってるのに
parse error, unexpected '}' in
443nobodyさん:04/08/15 21:19 ID:???
>>435.php?mode=../../../../../../etc/passwd

お約束。
444444:04/08/15 21:37 ID:???
<?
$data = 'count.cgi';
$file = file($data);

$date = date(Ymd);
$host = getenv("REMOTE_HOST");
$addr = getenv("REMOTE_ADDR");
if($host == "" || $host ==$addr){
$host = gethostbyaddr($addr);
}

list($date1,$scount,$host2) = split( ",", $file[0]);
list($date2,$tcount,$tdate) = split( ",", $file[1]);
list($date3,$ycount,$ydate) = split( ",", $file[2]);
if ($host != $host2){
$scount++;
if ($date != $tdate){
$ydate = tdate;
$tdate = date;
$ycount = $tcount;
}
$tcount++;
$host2 = $host;
//書き込み
$data[0] = implode(",", array($date1,$scount,$host2));
$data[1] = implode(",", array($date2,$tcount,$tdate));
$data[2] = implode(",", array($date3,$ycount,$ydate));
$fp = fopen($data, "w");
flock($fp,LOCK_EX);
445444:04/08/15 21:38 ID:???
for ($i=0;$i<=3;$i++){
rewind($fp);
fputs($fp, "$data[$i]\n");
}
flock($fp,LOCK_UN);
fclose($fp);
}else{}
print " <TABLE cellpadding=0 cellspacing=0>";
print " <TBODY>";
print " <TR>";
print " <TD align=right><FONT size=2>Total:</FONT></TD>";
print " <TD><FONT size=2>$scount</FONT></TD>";
print " </TR>";
print " <TR>";
print " <TD align=right><FONT size=2>To:</FONT></TD>";
print " <TD><FONT size=2>$tcount</FONT></TD>";
print " </TR>";
print " <TR>";
print " <TD align=right><FONT size=2>Yes:</FONT></TD>";
print " <TD><FONT size=2>$ycount</FONT></TD>";
print " </TR>";
print " </TBODY>";
print " </TABLE>";
?>
446444:04/08/15 21:39 ID:???
上記のプログラムcounter.php
これをincludeでページに貼ったのですが、
ページを表示して実行するとカウントされずに
ttynt.cgiというプログラムができます;;
なぜでしょうか?
447nobodyさん:04/08/15 22:03 ID:???
include する前にこれは動くのか?
448nobodyさん:04/08/15 22:04 ID:???
php,perl両質問スレ
なんかこう、、、夏真っ盛りだな・・・
このスレはクエリをそのまま変数に勝手に入ると思ってるのもいるし(?mode=xx→echo $mode)
もうね、アホかと
449nobodyさん:04/08/15 22:06 ID:???
>>448
> $mode = $_REQUEST["mode"];
450nobodyさん:04/08/15 22:14 ID:???
>>449
いやそれは分かってるけど
${クエリでの名前}に勝手に入ると思ってる奴が居るってこと
451Imo ◆.jC7ANgFY. :04/08/15 22:21 ID:???
>>443
どっかのPHPのセキュリティーに関する書籍で
$mode = str_replace('../', '', $_GET['mode']);
にすればいい、とかかいてるダメなやつがあったな。
〜.php?mode=....//....//
ってどうなるんですかと問いたい。問い詰めたい。小一時間(ry
# と、愚痴をもらしてみる。
# そもそもそういうクエリを送ってくるやつははじくべきなんだよ。
452軟式PHP:04/08/15 22:21 ID:???
global_registerをONにすれば入るよ( ´▽`)ノ
まぁ、マルチはいくないな。
453nobodyさん:04/08/15 22:23 ID:???
>>450
ああ、>>400 以降ね。

どうでもいいが、これから PHP やるヤシは何故そんな実装になってるのかよく考えてみれ。
特に変数のスコープや register_globals 関係。
例文だから考慮してないだけかも知れないが、ちょっと安易杉。

>>400 だって、ある機能に対して認証を飛ばしてアクセスが可能になるかも知れないワケで。
例えばユーザーのパスワード変更を chpasswd.inc.php に切り出して認証されたページ内から呼び出していたら
?mode=../../chpasswd.inc&new_passwd=hogehoge
とか突っ込まれる可能性もある。

>>443 も言いたいのはそれだろ。
454nobodyさん:04/08/15 22:31 ID:???
>>451
> # そもそもそういうクエリを送ってくるやつははじくべきなんだよ。
ちょっと興味深い。
手軽な方法ある?
クラック目的で突っ込まれたコードが効果的に検知出来るなら、勉強のためにトラップしてログっときたい。


セキュリティを意識して欲しいだけで。バッドノウハウはびこりすぎなんで。
しっかりしたアプリケーションが書ければどこから何突っ込まれようと大体は大丈夫だ。
取り敢えず変数を区別しないのはマズい。
一つの変数を二つの意味で使うとか、由来を考えずに使うとか、ユーザーからの入力値を深度の限界無しに受け付けてるとか。
455444,445,446:04/08/15 22:31 ID:???
なんで勝手にファイルが作られるかねぇ・・・
456nobodyさん:04/08/15 22:36 ID:???
PHPでperlのサブルーチンと同じような機能ってやっぱりfunctionでしょうか?
457nobodyさん:04/08/15 22:44 ID:???
>>456
でつ。
458456:04/08/15 22:52 ID:???
>>457
レスありがとうございます。
459Imo ◆.jC7ANgFY. :04/08/15 23:03 ID:???
>>454
preg_match('/[^\w]/', $_GET['mode']) and die('不正クエリ');
これくらいの勢いでもいいんじゃないかってこと。

どうしても"/"や"."がいるのだったら
strpos('../', $_GET['mode']) === false or die('不正クエリ');
$_GET['mode']{0} == '/' and die('不正クエリ');
とかいろいろ試してみるとよろし。その場その場にあった処理が必要だと。
# 上の例は上位ディレクトリを参照させないようにする処理
# 下の例は直接変数と使う場合以外はいらないが、絶対パスを防ぐ処理

それと、いろいろとやっかいなのが"\x00"の処理。
phpでは大丈夫(なはず)だけど気になるので、
$_GET = array_map(create_function('$a',
'return str_replace("\x00", "", $a);'), $_GET);
こんな感じであらかじめ省いておくと安全かもしれない。
# $_POSTや$_COOKIEの時も同様にしておくといい
# 場合によれば改行系列も省いた方がよい場合がある
460nobodyさん:04/08/15 23:08 ID:???
preg_match('/[^\w]/', $_GET['mode']) and die('不正クエリ');
461nobodyさん:04/08/15 23:48 ID:???
>>459
参照先ディレクトリの制御に限った話でつか。

それは誤動作誘発に通じるルートを叩き潰すって発想で付加的な話。
基本はルートを掘られて利用されるような脆弱性をつくらない事なのでは。
という話も出しておきまつ。初心者が佃煮状態みたいなんで。

- safe_mode を使う
- ライブラリ単体で動作させない (require/include で結果を返すような書き方をしない)
- 外部ライブラリはそれ自体をセキュアな作りにする

とか。定石と普段からの意識とバッドノウハウの排除。
462カポコン:04/08/16 00:33 ID:???
色々、試すのはいいけど、試されないように・・・。
463nobodyさん:04/08/16 02:30 ID:vS77LDZv
お盆もおわっちゃいましたけど、いかがお過ごしですかw

えと。
127.0.0.1/hoge/ で「hoge」ディレクトリーを作るのなら
mkdir(hoge,0777);で作れるけど、
例えば、127.0.0.1/hoge/hogehoge/hohoge/
でこの「hohoge」を作るにはまず上層の「hoge」と「hogehoge」を作らないといけないわけですが、
この作業を行うにはどんな書き方になるんですか?
毎回階層が決まっていれば問題はないけど、
決まってない場合がわからなくて。
よろしくお願いすます。
464nobodyさん:04/08/16 02:38 ID:???
>毎回階層が決まっていれば問題はないけど、
>決まってない場合がわからなくて。

↑がよく解らないんだけど、
必要なディレクトリ名を配列に入れて、その数だけループさせたら?
465nobodyさん:04/08/16 02:40 ID:???
466nobodyさん:04/08/16 02:47 ID:???
>>464さん>>465さんありがとー

今ファイルをアップする部分をつくってて
POSTされたアップロード先のアドレスが毎回違うだろうし、ってことです。
すでに作られたディレクトリー内に、1階層だけディレクトリーを作るのなら
mkdirを1度すればいいんだけど。。。
ヒントページみてみます〜〜

また分からなかったらまたきますw
よろしく!
467466:04/08/16 04:38 ID:???
自己レス

できました。
丸写しだけど・・・

$dir=split("/", $up_dir);
for ($i=0;$i<count($dir);$i++){
$path.=$dir[$i]."/";
if (!is_dir($path))
@mkdir($path,0777);
@chmod($path,0777);
}
if (is_dir($up_dir))
return 1;

間にいくつかif入れて目的の事は完成です。
お世話になりました!
468nobodyさん:04/08/16 05:54 ID:gbbwkQJr
ローカルのファイルのパーミッションを変更するにはどうすればいいでしょうか
469nobodyさん:04/08/16 06:33 ID:???
chmod

いや、まてよ・・・まさかと思うが、サーバに置いたPHPスクリプトから、
クライアント側の何かのファイルのパーミションを変更したいってわけじゃないよな?
470468:04/08/16 06:49 ID:???
>>469
いえ、全てローカルにあります

できました ありがとう
471nobodyさん:04/08/16 08:13 ID:???
>>466
つーかmkpathは?
472466:04/08/16 08:18 ID:???
>>471
どもー
mkpathってphpで使えるんですかね?
perlのだって聞いたことあったんだけど。ちと試してみます〜
473nobodyさん:04/08/16 08:30 ID:???
>>472
popen使ってやってみ
474nobodyさん:04/08/16 09:38 ID:2LXrMV/7
助けて下さい。質問です。
phpでラップ関数って作れるんでしょうか?
475軟式PHP:04/08/16 09:42 ID:???
うん
476nobodyさん:04/08/16 10:25 ID:???
abcdef @ hijklmp @ aiueos.
という文字列があって1つ目の@を(1)、2つ目の@を(2)という風に
置換したいのですが、良い方法があれば教えてもらえると助かります。
477nobodyさん:04/08/16 10:37 ID:go59Ftbg
>>476
正規表現使えば?
478nobodyさん:04/08/16 10:57 ID:???
レスありがとうございます。正規表現でやれるんですねー。
何番目の@か取得する方法が分からないため、正規表現スレで聞いてこようと思います。
$1,$2の数値の部分を取る方法があるのだろうか…。
479Imo ◆.jC7ANgFY. :04/08/16 11:03 ID:???
>>478
とりあえず、こんなこともできたりする。

$data = 'abcdef @ hijklmp @ aiueos.';
echo preg_replace_callback('/@/', create_function
('', 'static $a;$a++;return "($a)";'), $data);
480nobodyさん:04/08/16 11:09 ID:???
>>479
まさにそれがやりたかったんです!ありがとうございます。
匿名関数を作って静的変数を使ってるあたりがテクニカルでいいっすね(>_<)
本当参考になりました。謝謝。
481nobodyさん:04/08/16 12:11 ID:???
>>480
こんな感じでもいけそう。

$i = 0;
echo preg_replace('/@/e', '"(" . ++$i . ")"', $data);
482nobodyさん:04/08/16 12:55 ID:???
>475
その「うん」は >474  に対しての「うん」であるならば、
できれば具体的な内容を教えて頂きたいのですが・・・・
483軟式PHP:04/08/16 13:12 ID:???
つーか、何のラッパー作りたいんでしょか。
あなたの考えてる「ラップ」とは違うかもしれませんが↓教えておきます。
http://nx.eth.jp/php/manual/function.stream-wrapper-register.html
484nobodyさん:04/08/16 14:56 ID:???
>>460
/[^\w]/ って /\W/ じゃダメなの?

create_functionって何回(というより何千回)も使うと遅くならね?
485Imo ◆.jC7ANgFY. :04/08/16 15:22 ID:???
>>484
それでもいい、というよりかそっちのほうがいい。

create_functionは関数をつくっちゃってるからねぇ、
何回も使うのならば>481のようなものを使ったほうがいい。
そうしないと、なにをするにも遅いプログラムになってくる。
486466:04/08/16 15:28 ID:???
>>473
お〜またまたレスありがと!
popenもやってみます!

mkpathの方は書き方が悪いのかうまく動かなかったです。

うむ。難しいですねー
487nobodyさん:04/08/16 17:33 ID:???
配列に対して htmlspecialchars を適用したいのでつが、適当な関数はありませんか。
array_filter を試してみましたが htmlspecialchars は使えない模様でつ。
488nobodyさん:04/08/16 17:42 ID:???
>>487
array_map
489nobodyさん:04/08/16 17:51 ID:???
webspaceのレンタル(実際にはしないと思いますが^^;)をする上
でWebからの登録で自動的にディレクトリを割り当てたいと考えて
おります。
ディレクトリを作成すると所有者がapacheになりますが、その
ファイルの所有者を変更したいのです。chownはスーパーユーザで
ないと実行出来ませんとありますが、http://hoge.co.jp/でアクセスさせて
スーパーユーザーで動作させる事は可能なのでしょうか?。
apacheはapache権限です。
490nobodyさん:04/08/16 17:53 ID:???
>>488
出来ました、ありがとうございまつ。
491nobodyさん:04/08/16 19:39 ID:???
でつまつ厨も出たか・・・夏だな
492nobodyさん:04/08/16 20:07 ID:???
スネちゃま!そんなこと言っちゃだめざまつ
493nobodyさん:04/08/16 20:29 ID:???
本家サイトからインストーラーがダウンロードできないー
どうしたらいいんだー
マニュアルインストールなんて難しいことはわかりません。
ヘルプミーぷりーず orz
494nobodyさん:04/08/16 21:00 ID:???
たまにいるんだよな
でつまつ使っただけで「厨だ」とかぬかすアホが。
495nobodyさん:04/08/16 21:17 ID:???
488だか私は別に「まつ$」でも気にしない
そもそも、2ちゃんで礼儀などは期待していない
礼儀知らずが厨かどうかは知らないが、それに食いついてる
494が厨だとしか思えん

>>493
Windows?
496493:04/08/16 21:21 ID:???
>495
そうです。
497nobodyさん:04/08/16 21:22 ID:???
>だけで
条件を満たしていると思われ(厨)
498nobodyさん:04/08/16 21:30 ID:???
>>496
ぐぐれば置いてある所もあるけど本家が復旧するのを待ってた方が
良いと思うよ
499nobodyさん:04/08/16 22:17 ID:???
DLできるじゃん
500nobodyさん:04/08/16 22:21 ID:???
http://www.php.net/downloads.php
installerはむりぽ
501nobodyさん:04/08/16 22:29 ID:???
サイトでエラーが出てるからDL出来ないんだよ
ミラーもダメだね
502nobodyさん:04/08/16 22:34 ID:???
503nobodyさん:04/08/16 23:01 ID:???
>>493
んじゃ、RingServerのミラーからでも。
http://www.dnsbalance.ring.gr.jp/archives/net/www/php/distributions/
php-4.x.x-installer.exe
504493:04/08/16 23:08 ID:???
>>502>>503
復旧するまであきらめるしかないのかと思ってたら・・・
ありがとうございます。m(_ _)m
505nobodyさん:04/08/16 23:15 ID:???
>>493
インストーラパッケージは、ZIPパッケージに同梱されてる
各種DLL(mysql関数だとか、確かmbstring絡みも)が入ってない(足りない)から
殆どの場合、あとでZIPパッケージから足す必要があるよ。気をつけて

それとSJISでPHPのスクリプトを書くなら、
http://www.geocities.jp/rui_hirokawa/php/
じゃないと駄目。
506nobodyさん:04/08/16 23:19 ID:???
507nobodyさん:04/08/17 00:28 ID:???
>>506
何に?
508軟式PHP:04/08/17 00:35 ID:???
 _, ._ ∩
( ゚д゚)彡 サァ!!
 ⊂彡
509nobodyさん:04/08/17 00:46 ID:???
おっぱいには使えないね
510nobodyさん:04/08/17 03:43 ID:???

PHPとjavascript間で値のやり取りをしたいのですがどうすればよいですか?
511nobodyさん:04/08/17 05:54 ID:???
>>510
PHPが外部から受け取る変数は $_GET $_POST $_COOKIE である以上、
javascriptからそれらを操作するものを使う他あるまい?
512軟式PHP:04/08/17 14:07 ID:???
 _, ._ ∩
( ゚д゚)彡 サァ!!
 ⊂彡
何か面白いもんつくりてーな。
513nobodyさん:04/08/17 17:09 ID:???
どもです (_ _)
ある PHP スクリプトが include/require 等で呼んでいるファイルを全部引っ張る方法って無いでしょうか。

fileA
include('fileB');

fileB
include('fileC'); include('fileD');

とあった場合、fileA が fileB, fileC, fileD を読み込んでいる事を fileA 側から確認出来ないか、といった具合です。
514nobodyさん:04/08/17 17:15 ID:???
>>513
ソース読めば確認できるだろうが。
どこで何を読み込むかも管理できずに書いてるのか?
515nobodyさん:04/08/17 17:24 ID:???
>>513-514
あまり使われる事は無いが
get_included_files()
516nobodyさん:04/08/17 17:29 ID:???
>>514
人様の書きやがったスパゲティなコードの修正なんです。

>>515
ありがとうございます (_ _)
517nobodyさん:04/08/17 18:03 ID:Jto412WC
Apache monitor is already started
というエラーが出て
サーバーやPHPの環境設定、ブラウザの設定等に問題がないかも
チェックしたほうがいいかもしれませんね。
と上司にいわれましたが設定のチェックの方法が分かりません。
知っている方教えてください。
518nobodyさん:04/08/17 18:05 ID:???
>>517
上司にからかわれてるだけだよ
519軟式PHP:04/08/17 18:06 ID:???
(つω;)ヾ(・д・ )ヨシヨシ
520nobodyさん:04/08/17 18:22 ID:???
>>519
エラーメッセージを理解できない部下を持った上司も慰めてやれよ
521nobodyさん:04/08/17 20:00 ID:???
arrayをハッシュとして使っているのですが、キーを削除する方法がわかりません。
$hash = array('key1'=>10, 'key2'=>20);
array_delete_key('key1', $hash); ← こんな関数ないっすかね?
array_key_exists('key1', $hash); #=> false
522nobodyさん:04/08/17 20:01 ID:???
>>521
unset
523nobodyさん:04/08/17 20:01 ID:???
>>517
英語くらい訳してみろよ
アパッチのモナカがすでに開始してるって書いてあるじゃん
524nobodyさん:04/08/17 20:33 ID:???
>>522
unset($hash['key1']);
でいけました。
そうか、$hash['key1'] 自体がひとつの変数ということか。
どうもありがとうございました。
525nobodyさん:04/08/17 21:24 ID:hQEO8cuE
PHPの4.0.3を入れてるサーバがあって
バージョンアップ不可の条件をいただいたのですが
4.0.3のマニュアルのURLご存じの方いたら教えて下さい。
ググったら「最低4.0.6まで上げる事をお薦めします.」とか書かれてて(´・ω・`)
526nobodyさん:04/08/17 21:56 ID:???
>>525
普通にその辺のマニュアル使える。
例えば 4.3.0 から入った関数の場合、マニュアルに記載がある。

逆にマイナーバージョン固有のバグとかの場合はマニュアルには載らない。
前後の ChangeLog を地道に追う。

後はエラい人、補足よろ。
527nobodyさん:04/08/17 22:03 ID:???
PHPで改行の数を調べるにはどうやって調べるのですか?
528527:04/08/17 22:11 ID:???
解決しますたw
529nobodyさん:04/08/17 22:28 ID:???
>>517
ML に投げようかとも思ったけど、Google に残るのがイヤなのでこっちで。

取り敢えずコンピュータの管理はコントロールパネルからな。
それくらいググれ。

取り敢えず集中砲火浴びる前にここ読んで ML って何なのか掴んだ方がいい。
http://www.hyuki.com/writing/techask.html

で、分からない事全部が勉強だと思って調べまくる。それが当たり前に出来ないとこの仕事辛い。
特に知識系産業は国際間の壁が低く世界的に集約/役割が割れていくからどんどん寒くなる。
技能職って事で目の前の待遇の良さだけを見てるなら考えた方がいい。

それにプロって事は、責任だって相応。
俺は無関係だが、規模のデカい開発投資がプログラムで失敗して営業から展開から全部狂って悲惨な目にあったのを知ってる。
まぁその会社のマネジメントも悪いんだが、俺はたまたま開発担当を別件で知っていてコードもちょっと見た。
一番タチ悪いのはソイツが能力低すぎて、何が悪いのかさえ分かってないって事だ。

ML で何か言ってるが、顧客から見れば 俺初心者なんで とか明後日方向の事情は言い訳にもならない。
甘え捨ててもっと自助努力しる。
530nobodyさん:04/08/17 22:43 ID:LR9RAB4Q
PHPからoggをエンコードしてタグを書きたいのですが、
shell_exec('oggenc ファイル.wav -t "タイトル" -a "アーティスト名" > /dev/null &');
のようにすると日本語が######のように化けてしまいます。
(実際はshell_exec()の中身は.shファイルに書いてあってもう少し長いですが、上のように書いても同じ症状でした。)
何か良い方法は無いでしょうか?
環境はLinuxです。
531nobodyさん:04/08/17 22:53 ID:???
>>530
oggencは使ったことないけどスクリプトの書かれている文字コードとかを
もちっと検討してみてはどうだろうか
532nobodyさん:04/08/17 23:08 ID:???
>>530
Ogg 扱える PHP アプリケーションどこかで見たな、と思って PHP ogg でググってみると
コードいろいろ出てきた。
英語ね。
533532:04/08/17 23:09 ID:???
補足、
それで他の原因潰しつつ >>531 の言うように文字コード関連にかかってみては、って意味
534530:04/08/17 23:20 ID:???
LinuxはEUC-JPですよね?
スクリプトも全てEUC-JPで書いたのですが・・・。
試しにXウインドウから.shファイルを動かしてみたらちゃんと日本語になりました。
Xウインドウ無しだと日本語使えないのかと思って、
shell_exec('mkdir フォルダ');
みたいにすると日本語のフォルダ作ってくれたので、
Xウインドウ無しでも使えるみたいですし。

>532
英語ですか・・・。
苦手ですけど一応調べてみます。
535nobodyさん:04/08/17 23:32 ID:???
>>534
例えば Fedora は UTF-8 がデフォです。それに PHP の設定や Ogg のエンコード環境は別ではないかと。

あとまぁ英語出来ないと一定以上の事出来ないので。
Ogg とか人があまりやってない事をやろうとすると特に。
536530:04/08/17 23:42 ID:???
Linux+PHP+ogg+日本語ってのは特殊すぎますか・・・orz
537nobodyさん:04/08/18 00:13 ID:???
個人的には好きです。頑張ってください。

# mp3 の ID タグ? 編集ライブラリとかも見たことあるので海外探せば ogg も転がってるかも
# で、それに日本語関連の修正&メモ書き入れて weblog か wiki にでも押し込んでおけば皆幸せ (・∀・)

って無責任に言うだけもな〜 と思ってググってると PEAR で見つけました。
http://pear.php.net/package/File_Ogg
538nobodyさん:04/08/18 00:44 ID:???
>>530
タグはUTF8で書き込まないとダメだろ
539nobodyさん:04/08/18 00:50 ID:???
>>534
つか、PHP-usersでも最近出てたと思うが、
"PHPがshell関数で動かす環境の"言語等の設定がそもそも何なのよ。
keyword:LANG
540nobodyさん:04/08/18 11:56 ID:x3r+WkyO
こんにちはー
最近お世話になりっぱなしですが、よろしくです。

セーフモードがオンのサーバーで
Warning: mkdir(): SAFE MODE Restriction in effect
となってしまうのですが、
オンのサーバーでもディレクトリーを使う方法?
はないでしょうか?

もしくは、無理なのでしょうか?
よろしくお願いします。
541nobodyさん:04/08/18 12:15 ID:???
>>540
マニュアル嫁。
それ以外にも色々と制限出るからきっちり目を通しておいた方がいい。
542nobodyさん:04/08/18 12:36 ID:???
>>541
うぉーありがと。
ってことはやっぱり代わりに使えるものがあるってことですね?
マニュアル声出して読んでみますw

「セーフモードにより制限を受けるか無効となる関数」
ってページあってそこを見ると自分の使ってる関数が沢山でてて・・・
いやになるw

ありがとさんでした!
543nobodyさん:04/08/18 12:42 ID:???
いや… 嫁よ。
マニュアルの使い方を覚えるだけで、PHP は 256 倍楽になるのに。
不用な本買わなくてもいいからお財布にも地球にも優しい。

> mkdir() 処理を行うディレクトリが実行するスクリプトと同じUIDを有しているかどうかを確認します。
544nobodyさん:04/08/18 12:48 ID:???
>>543
なるほどw
UIDってなんですか?
545軟式PHP:04/08/18 12:54 ID:???
vodafoneの端末固定IDです。
546軟式PHP:04/08/18 12:55 ID:???
あと、Docomoも。・゚・(ノ∀`)・゚・。
547軟式PHP:04/08/18 13:08 ID:???
○| ̄|_ スンマセン
548541=543:04/08/18 14:30 ID:???
付き合いきれねぇよ ヽ(´ー`)ノ 俺知らね
549nobodyさん:04/08/18 15:06 ID:???
wwwww
550軟式PHP:04/08/18 15:29 ID:???
「なるほどw」ってところがポイントだな。
551nobodyさん:04/08/18 15:33 ID:???
プロ釣師
552nobodyさん:04/08/18 15:58 ID:???
Cannot modify header information - headers already sent by (output started at /usr/home/free/home/market/public_html/mmorpg/index.php:4)
ってなんだよウワァァァァン
553軟式PHP:04/08/18 16:17 ID:???
>>552
今すぐCTRL+Fを押して「modify」と入れて検索してみるといいよ。
554nobodyさん:04/08/18 16:17 ID:???
>>552
そのエラーメッセージを訳したらどうなる
ちゃんと英語を読め
555552:04/08/18 16:23 ID:???
ヘッダー情報を修正することができません。
556軟式PHP:04/08/18 16:32 ID:???
>>555
      r;ァ'N;:::::::::::::,ィ/      >::::::::::ヽ
.      〃  ヽル1'´        ∠:::::::::::::::::i
       i′  ___, - ,. = -一   ̄l:::::::::::::::l
.      ! , -==、´r'          l::::::/,ニ.ヽ
      l        _,, -‐''二ゝ  l::::l f゙ヽ |、 よく頑張ったじゃねぇか。
        レー-- 、ヽヾニ-ァ,ニ;=、_   !:::l ) } ト
       ヾ¨'7"ry、`   ー゙='ニ,,,`    }::ヽ(ノ  もうちょい先まで読んでみようぜ。
:ーゝヽ、     !´ " ̄ 'l,;;;;,,,.、       ,i:::::::ミ
::::::::::::::::ヽ.-‐ ト、 r'_{   __)`ニゝ、  ,,iリ::::::::ミ    
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ ,  な!
:::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::///
:::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
557552:04/08/18 16:37 ID:???
スマン、サパーリだ_| ̄|○
558nobodyさん:04/08/18 16:38 ID:???
ヘッダーは既に (・・・・・・) で 送信されている。
559nobodyさん:04/08/18 16:39 ID:???
頼むから読んでくれ.辞書の引き方くらい中学校で習っただろ.
> headers already sent
560552:04/08/18 16:40 ID:???
・・・つまりヘッダーは1個しか無理ぽ系?
561nobodyさん:04/08/18 16:40 ID:???
header() とか setcookie() とか の前に
echo とか print とかしてると 起こりやすいね。
562552:04/08/18 16:42 ID:???
printもechoもないぽ
<?php
if ($action == "投稿"){
$mynews = 'page/〜/data.cgi';
$file = file($mynews);
$count = count($file);
if ($count > 10){
$count = 10;
}
$host = getenv("REMOTE_HOST");
$addr = getenv("REMOTE_ADDR");
if($host == "" || $host ==$addr){
$host = gethostbyaddr($addr);
}
list ($name2,$url2,$title2,$comment2,$host2) = split( ",", $file[0]);
if ($host != $host2 && $url != url2){
$input = implode(",", array($name,$url,$title,$comment,$host));
$fp = fopen($mynews, "w");
flock($fp,LOCK_EX);
rewind($fp);
fputs($fp, "$input\n");
for($i = 0; $i < $count; $i++){
fputs($fp, $file[$i]);
}
flock($fp,LOCK_UN);
fclose($fp);
unset($file);
}
header ("Location:http://〜/index.php");
}
?>
563nobodyさん:04/08/18 16:43 ID:???
>>562
> Cannot modify header information
の前に何かエラーか警告が出力されてないか
<?php の前に改行や空白がないか
564562:04/08/18 16:50 ID:???
エラーはこれ一つだけです
空白もナイポ
565nobodyさん:04/08/18 16:54 ID:???
ぽ$って
マジきもいんだけど
566nobodyさん:04/08/18 16:57 ID:???
locationのhttp:が全角なんだけどこれは意図的にやってるんだよね
それからエラーの出ているHTMLのソースはどうなってるかよく見てみれ
567nobodyさん:04/08/18 17:11 ID:???
ほれ、訳してやったぞ。
ヘッダー情報-、(/usr/家/自由な/家/市場/public_html/mmorpg/index.php
で始められた出力: 4)既に送られたヘッダー-を修正することができません。

この辺りも見とけ
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30

headerの行を削除した時に、全く何も画面出力されていないことが必要だぞよ
568nobodyさん:04/08/18 17:16 ID:???
>>562
$mynews = 'page/〜/data.cgi';
なんでデータファイルがcgiなのかと子一時間
569nobodyさん:04/08/18 17:27 ID:???
>>568
何がおかしいのか小一時間
570nobodyさん:04/08/18 17:37 ID:???
わざわざデータファイルを実行系ファイルの拡張子にする時点でオhル
571nobodyさん:04/08/18 17:41 ID:???
>>570
無償のレンタル鯖でアクセス制限が掛けられない時、
データファイルの拡張子をcgiにしておけば、URL直打ちでも
データファイルを覗かれないという利点がありますけど。
572nobodyさん:04/08/18 17:43 ID:???
データファイルの拡張子を.cgiにしておけばそのファイルにアクセスされても
500がでて見れないようにしているんだと思う
# 自分だったらそんな変なことしないで.htaccessによるアクセス制限するが
573nobodyさん:04/08/18 17:44 ID:???
>>568
( ゚∀゚)アハハ八八ノヽノヽノ \ / \
574軟式PHP:04/08/18 18:40 ID:???
>>568
(つω;)ヾ(・д・ )ヨシヨシ
575nobodyさん:04/08/18 19:03 ID:???
拡張子の話はどっかのスレで
さんざんやってたような希ガス
576nobodyさん:04/08/18 19:05 ID:QMhJW4BU
拡張子なんて飾りですよ。偉い人にはそれがわからんのです。
577nobodyさん:04/08/18 20:07 ID:???
*.gifをphpでパースするようにサーバを設定してみますた
578nobodyさん:04/08/18 20:31 ID:???
チンコって反ってる方が強そうだよな?
579578:04/08/18 20:32 ID:???
スマン、誤爆だ
580nobodyさん:04/08/18 21:10 ID:???
>577
すげー。このサイト全部 GIF かよ。ってことになるのか。
で、GIF 画像を表示するとき困らないかしら。
あふぉなブラウザが勘違いして妙なことになりはしないかしら。

わたしもやってみよー。
581nobodyさん:04/08/18 22:03 ID:sgbsN4EW
ヒアドキュメントで、変数展開を防ぐ方法はありますか?

$str = <<<EOS
aaa $x bbb
EOS;

この例なら $x を展開しようとして「初期化されてない変数」というエラーがでてしまう。
もちろん \$x と書けばいいのだが、ちょっと面倒くさい。

$s = <<<'EOS'
aaa $x bbb
EOS;

と書いたら変数展開されないかなーと思ったけど、シンタックスエラーだ。
582nobodyさん:04/08/18 22:29 ID:???
””
583nobodyさん:04/08/18 22:52 ID:???
>>577
jsp にしたら多少リソース喰っても許される
aspx にしたら客が他に移管するって言い出さなくなるし単価も上がり、初期投資も色乗せれる
cgi にしたら単価下がるけど杜撰な運用でデータ漏れても泣き寝入り度上がる
php にしたら 普通じゃーん と思われつつ、人員の技能レベルとセキュリティホールやバグを執拗に心配される

まぁどれを選ぶかはおまい次第だ。


# .html を被せて運用してるところはマジであるよね。運用情報隠して被いたずら/クラッキング率を下げる
584nobodyさん:04/08/18 23:14 ID:???
初耳だな
585nobodyさん:04/08/18 23:20 ID:???
>>581
1字付け足してエスケープするのが一番楽だろう。
それかその部分だけエラー制御で殺す。テンプレートエンジンはコレやってる。

ヒアドキュメント自体そんなに使う物でもないし、不満になってきたら他のやり方探す方がいい。
586nobodyさん:04/08/18 23:22 ID:???
忘れてた、
> それかその部分だけエラー制御で殺す。テンプレートエンジンはコレやってる。
考え無しにコレをやると脆弱性作るぞ。
運用段階で register_globals を有効にされたり、そのコードの前で外部変数を extract されたらまさに鴨。
テンプレートエンジンがソレやって許されるのは、きっちり閉じ込めてあるからで。
587nobodyさん:04/08/18 23:27 ID:???
@使えばいいじゃん
588nobodyさん:04/08/18 23:28 ID:???
もう一つ忘れてた。

PHP の変数ではなく、> 変数 $hoge に対して~ とか文章の流れで $var が出てくるってのなら、
$ はエンティティにでもしておくのが妥当だと思われ。
589nobodyさん:04/08/18 23:33 ID:???
>>587
Σ( ̄∇ ̄ !!
590530:04/08/19 01:08 ID:???
あれから文字コード変えてみたりphp.ini弄ってみたりと色々やってみたのですが、
シェルからphp hoge.phpとしてphpを呼び出すとちゃんと日本語にしてくれて、
apacheから呼ぶと駄目みたいです。
どっちも同じユーザーでやってみたので権限の問題でもないようですが、
もうさっぱりです。
どなたかご教授願います。m(_ _)m

>>539
PHPがshell関数で動かす環境の言語とは何処を設定すれば良いですか?
PHP-usersも検索してみましたが探し当てられず・・・。
591nobodyさん:04/08/19 01:37 ID:???
>>590
shell_exec('touch 日本語のファイル名.txt');
としてapacheとシェルから実行したらどうなるかやってみてよ
592530:04/08/19 01:54 ID:???
>>591
mkdirでも出来たので予想はしてましたけど、
apacheとシェルどちらもEUC-JPで日本語名のファイル作ってくれました。
EUC-JPで.shファイル作ってやっても出来たので、oggencの引数はEUC-JPで良いみたいですし。
何が悪いのでしょう?
593nobodyさん:04/08/19 02:00 ID:???
それでoggencの引数にUTFで値を渡したときはやってみたの?
594530:04/08/19 02:11 ID:???
>>593
やりました。
apacheからやった場合は文字コードの1バイトが#に置き換わって表示されます。
シェルからやった場合は#と?で出てきます。
どちらも英字の部分は普通に表示されています。
595581:04/08/19 02:15 ID:???
>>585
どうもありがとう。
背景をちょっと説明すると、PHPスクリプトの中にPHPスクリプトを書く必要があって、
それをヒアドキュメントで書いています。
$code = <<<EOS
#PHPスクリプトをここにかく
<?php echo \$x ; ?>
EOS
それで、Cut&Pasteで貼り付けてるんだけど、そのあとに¥でエスケープするのが
面倒だったので質問しました。
\n なんかも \\n としなきゃいけないんで、結構面倒なんですよ。
まあ頑張ってちまちま直します。

>>587
どういう意味?
596nobodyさん:04/08/19 02:31 ID:???
>>587
どういう意味?

エラー制御演算子 でぐぐれ
597nobodyさん:04/08/19 04:37 ID:???
>>595
俺ならテンプレート使って終わり。
っていうか

?>
好き勝手書けや (#゚Д゚)オラー!
<?php
598nobodyさん:04/08/19 09:23 ID:???
まずヒアドキュメント使う必要があるのかと
599もん吉:04/08/19 10:35 ID:???
現在PHPとMySQLを使って検索システムを作ってるんですけど
SQL文で
$sql = "SELECT * FROM data WHERE NAME LIKE '%".$data."%'";
$dataは前ページからもらってきたデータが入ってるんですが
データベースの中身(NAME)が全角(例:カーショップ)の場合で
$dataが半角(例:カーショップの場合bとかjでした)の場合
なぜか引っかかってしまいます。
これはなぜでしょうか?
600nobodyさん:04/08/19 10:58 ID:???
しつもーん。

$hoge .= "ほげ";
これだとエラー。

$hoge = "";
$hoge .= "ほげ";
これだとエラーなし。

そういうもんなんでしょうか?
                                                php4.3.4
601もん吉:04/08/19 11:06 ID:???
$hoge .= "ほげ";は$hogeに"ほげ"を追加するため
先に$hoge = ""; としておかないと追加する場所がなく
エラーが出るのだと思います。
$hoge = "ほげ";だと問題ないですよ。
602nobodyさん:04/08/19 11:07 ID:???
ケータイ用のサイト(Shift_JIS出力)の人でPostgreSQL+PHPで運用している方が
いれば教えてホシイのですが、どういう手段で文字コード変換やってますか?

jcode.phpとかだと半角カナをうまく使えないですし、
かといってレンサバなのでphp.iniをいじくったりモジュール追加できないので悩んでいます。
603nobodyさん:04/08/19 11:16 ID:???
includeでCGIを挿入できたっけ?
604602:04/08/19 11:22 ID:???
>>603
よく読んでみてください
jcode.cgiじゃなくてjcode.phpですよ
605nobodyさん:04/08/19 11:26 ID:???
includeって拡張子は何でも良いのでは?
606nobodyさん:04/08/19 11:43 ID:???
includeでCGIを呼び出そうとしたらCGIの中身が出てきますた
607nobodyさん:04/08/19 11:43 ID:???
>>602
jcode.phpって半角カナで何か不具合あるの?
608nobodyさん:04/08/19 12:02 ID:???
Shift_JISはあちこちでマルチバイト対応に迫られるね
そもそもjcode.phpって必要
609nobodyさん:04/08/19 12:03 ID:???
$2ch['php']['1091774679']['body'] .= '?';
610nobodyさん:04/08/19 12:26 ID:???
Warning: rewind(): supplied argument is not a valid stream resource in /usr/home/free/home/market/public_html/mmorpg/link/index.php on line 19
Warning: fputs(): supplied argument is not a valid stream resource in /usr/home/free/home/market/public_html/mmorpg/link/index.php on line 20
Warning: fclose(): supplied argument is not a valid stream resource in /usr/home/free/home/market/public_html/mmorpg/link/index.php on line 24
Warning: Cannot modify header information - headers already sent by (output started at /usr/home/free/home/market/public_html/mmorpg/link/index.php:19) in /usr/home/free/home/market/public_html/mmorpg/link/index.php on line 28

もうだめぽ_| ̄|○
611nobodyさん:04/08/19 13:06 ID:???
parse error, unexpected T_STRING, expecting T_CASE or T_DEFAULT or '}'
とはどういう意味でしょうか?
612nobodyさん:04/08/19 13:10 ID:???
>>610
セーフモードは色々と制限があるからね

>>611
見ての通り → '}'
613Imo ◆.jC7ANgFY. :04/08/19 13:23 ID:???
>>611
文法エラー
文法上の誤りがあります。
本来、case(T_CASE)またはdefault(T_DEFAULT)または}であるべき
ところが文字列(T_STRING)になっています。

614nobodyさん:04/08/19 13:27 ID:???
>>610
その前にもっと大切なエラーが出ているはずなのになぜ省略するよ。
615611:04/08/19 13:27 ID:???
switch($listB2){
case1:$a = "q";break;
case2:$a = "w";break;
case3:$a = "s";break;
case4:$a = "x";break;
}

って間違ってるのかな〜
616nobodyさん:04/08/19 13:33 ID:???
普通に間違ってるし
617602:04/08/19 13:48 ID:???
>>607
"アホ自動車"をEUC-JPで保存して、
JcodeConvert()でEUC->SJIS変換して出力してみてください
618nobodyさん:04/08/19 14:13 ID:???
>>615
2ちゃんは半角スペースが消えるからわからんが、
そんなオチの気がする
619軟式PHP:04/08/19 14:39 ID:???
case 1
case 2
case 3
case 4
だろ。
620nobodyさん:04/08/19 14:43 ID:HVGJn52b
MySQLで、select round(166.5);
が167にならないのって一体どういう事だ?
おかげで徹夜しますた。
621Imo ◆.jC7ANgFY. :04/08/19 14:59 ID:???
>>620
注意: 引数の値が 2 つの整数の中間にある場合の ROUND() の動作は、
C ライブラリの実装に応じて決まる。
実装に応じて、最も近い偶数に丸められる場合と、
常に切り上げまたは切り下げられる場合、
あるいは常にゼロ方向に丸められる場合がある。
特定の丸め方法を必要とする場合は、この関数ではなく、
TRUNCATE() や FLOOR() などの明確に定義された関数を使用するようにする。
622nobodyさん:04/08/19 15:04 ID:???
>>617
普通に変換されたけど
どこか他の部分で間違ってるんじゃない?
623nobodyさん:04/08/19 15:10 ID:???
>>619
そこを本人に考えさせるのが615のため
624軟式PHP:04/08/19 15:13 ID:???
そだなー。スマソ。
あと俺はcase処理を1行で書くのは嫌いだな。
619のようなやつだったら配列処理でいいし。
625620:04/08/19 15:15 ID:HVGJn52b
PHP上では普通にできるのに・・・
なんか>>621の文言が言い訳にしか聞こえない(^^;
で、結局「四捨五入」する方法ってどれなの?
TRUNCATE() や FLOOR() ってどう工夫すると期待した結果が得られるの?
626nobodyさん:04/08/19 15:20 ID:???
0.5足して切り捨て
627nobodyさん:04/08/19 15:20 ID:???
>>624
私も書き方は気に入らないが個人の好みもあるし
最初はあんなものでしょ

>>625
てかMySQLにいけ
オマケにマニュアル読め
628nobodyさん:04/08/19 15:32 ID:???
>>625
"四捨五入 銀行型"辺りでぐぐれ
明確にされてないのが気に食わないのかもしれないが、
そのround実装は普通(の範疇)だ
629Imo ◆.jC7ANgFY. :04/08/19 16:12 ID:???
>>625
私はマニュアルをコピペしただけですが?

0.5引いて切捨てしろってことだろ
FLOOR(`num` - 0.5)
630nobodyさん:04/08/19 16:14 ID:h2ZrLQAF
こんにちは

教えて頂きたいのですが、
アドレスで
123/456/
の時は最後の「/」を削除して
123/456
の時は何もしない
最終的にどちらも123/456

となるようにしたいのですが、
何か方法ないでしょうか?
よろしくお願いします。
631Imo ◆.jC7ANgFY. :04/08/19 16:17 ID:???
>>630
最後が「/」の時は最後の「/」を削除して
ほかのときは何もしない。
をそのままプログラムにすればいいじゃない。
632Imo ◆.jC7ANgFY. :04/08/19 16:21 ID:???
>>630
ついでに言うとif文を使わずすっきり書く方法がある。
それがrtrimだ。あとはマニュアルをよく見ろ。
633nobodyさん:04/08/19 16:37 ID:???
>>632
ども〜
マニュアルみてきました!
$trimmed = rtrim($text," \t.");
ってのがのっててそれで目的が達成できそうです。
欲しい関数はなんでもありますねw

ありがとうございました!
634nobodyさん:04/08/19 16:43 ID:???
>>632
630ではないが、rtrimってこういう使い方もあったのか・・・知らなかった
「/」が可能という事は全ての文字で利用出来るという事ですね
635nobodyさん:04/08/19 16:45 ID:???
「この関数は文字列の最後から空白文字を取り除き、 取り除かれた文字列を返します。
rtrim()は以下の文字を削除します。」と書いてあるが空白文字以外でも利用出来るなら
そう書いてくれよ
636nobodyさん:04/08/19 16:49 ID:???
>>635
書いてると思うが?
ttp://php.s3.to/man/function.rtrim.html
637nobodyさん:04/08/19 17:24 ID:???
ttp://php.us.themoes.org/manual/ja/function.crc32.php
ttp://www.beginnersphp.co.uk/digitalclock.php
を参考にしたのですがファイルのCRC4の取得方法がわかりません。
途中に出てくる ^ 排他的論理和(Xor?)がワケワカラン…

$file = "./data/a.png";
$size = filesize($file);
$fp = fopen($file, rb);
$da = fread($fp,$size);
fclose($fp);
echo crc4($da);
function crc4($a){
〜〜〜〜〜〜〜〜〜〜〜〜〜
処理
〜〜〜〜〜〜〜〜〜〜〜〜〜
return $crc_data;
}
こんな感じにしたいのです。
638nobodyさん:04/08/19 17:39 ID:???
なるほど
639nobodyさん:04/08/19 17:58 ID:???
>>635
string rtrim ( string str [, string charlist])
[]はオプション。お前オプション注意して見たことないだろ?
phpの関数には至る所にオプションがある
640nobodyさん:04/08/19 18:22 ID:???
_ = 半角スペース

<tr>
__<td class="">
____<a href="http://hogepage.com/sample.php">サンプル</a>
__</td>
__<td class="">
____2004/08/19 00:00
__</td>
</tr>

以上の文字列から、パターン %<a href=\"(.+?)\">(.+?)</a>(.+?)</tr>% で
リンク部分を抽出して、さらに3番目にマッチした部分から、
パターン ([0-9]+/[0-9]+/[0-9]+ [0-9]+:[0-9]+:[0-9][0-9]) で時刻を
抜き出していますが、最初のパターンで、更新時刻もきれいに取得したいのです
もう少しコンパクトにすることはできないでしょうか?

どうぞよろしくお願いします。
641nobodyさん:04/08/19 18:34 ID:???
>>640
こんな感じか?

preg_match_all('%<tr>(?:.*?)<a href="(.+?)">(.+?)</a>(?:.*?)(\d\d\d\d/\d\d/\d\d \d\d:\d\d)(?:.*?)</tr>%s', $html, $m);
print_r($m);
642620:04/08/19 18:54 ID:HVGJn52b
遅レススマソ
>>629
いや、知ってる、そのマニュアルの文言が言い訳っぽいって事
>>628
せめて一貫性を保ってほしいよな
select round(166.5); が166なのに
select round(167.5); が168になるのはどうかと・・・
そんな中途半端な関数最初から作るなって感じだな
というわけで、MySQLスレ逝ってくるわ
643nobodyさん:04/08/19 18:57 ID:???
>>642
はぁ?
一貫性保ってんじゃん.バカ?
644nobodyさん:04/08/19 19:00 ID:???
if(isset($_COOKIE['ck'])){
echo "COOKIE";
}
この処理をディレクトリ変えたらできなくなるのですがなぜでしょうか?
よろしくおねがいします
645620:04/08/19 19:02 ID:???
>>643
どの辺が?
646nobodyさん:04/08/19 19:06 ID:???
>>645
"四捨五入 銀行型"でぐぐったのか?
0.5を偶数になるように繰り上げたり切り捨てたりするのさ
167.5 -> 168
166.5 -> 166
165.3 -> 165
647nobodyさん:04/08/19 19:07 ID:???
>644
> ディレクトリ変えたら
意味わかんね
648644:04/08/19 19:10 ID:???
ええと、
<?php
if(isset($_COOKIE['ck'])){
echo "COOKIE";
}
?>
このファイルがa.phpで、hogeというディレクトリに入っていて、a.phpを実行するとCOOKIEと表示されます。
で、a.phpをhoge2というディレクトリに入れると、COOKIEと表示されないのです。
649628:04/08/19 19:16 ID:???
>>642
世の中には「偶数側に丸める(round(166.5)→166, round(167.5)→168)」
という丸め方法があって「銀行型の四捨五入」と呼ばれています

それに一貫性がないってのは……、銀行に文句を言ってみてくださいね(苦笑
650nobodyさん:04/08/19 19:20 ID:???
>>641
うまくできました!
本当にありがとうございました

結婚させてください!
651nobodyさん:04/08/19 19:28 ID:???
if(isset($_COOKIE['ck'])){
echo "COOKIE";
}
これって間違ってますか_?
なぜディレクトリ変えただけでクッキーの値取れないのだろう(汗
652620:04/08/19 19:32 ID:???
なるほどね、トンクス
とりあえず銀行に文句言ってくるわ
653nobodyさん:04/08/19 19:34 ID:???
>>620
ネタ乙
654Imo ◆.jC7ANgFY. :04/08/19 19:34 ID:???
>>651
setcookieのオプションを全部うめてみればいかが?
655nobodyさん:04/08/19 19:38 ID:???
いい加減コテハンうざいと思うのは俺だけか。
656nobodyさん:04/08/19 19:43 ID:???
setcookieのオプションとは?(汗
657530:04/08/19 19:47 ID:???
どうも分からないので、PHPから直接oggファイルを弄る事にします。
エンコード後にタグ変える必要も出て来そうですし。
助言して下さった方々、ありがとうございました。

>>537
ちゃんとした物が出来たら何処かに放り投げておきます。
何処に投げれば良いかな?
使う人なんて居なさそうですけど。 ^ ^
658nobodyさん:04/08/19 19:49 ID:???
>648
Cookieのpath設定してる?
659軟式PHP:04/08/19 19:49 ID:???
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |       >>655
/     ∩ノ ⊃  ヽ  
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
660nobodyさん:04/08/19 20:15 ID:???
setcookie("ck", "a=1", time()+3600,"/");
pathは"/"としていますが、間違ってますかね?
661nobodyさん:04/08/19 20:21 ID:???
変数に格納されない_| ̄|○
鯖を変える前まではできていたんだが
鯖を変えたらできなくなったぽ(´・ω・`)ショボーン
ちなみにどちらもPHP対応です、何が違うんでしょうか?
662nobodyさん:04/08/19 20:38 ID:???
>661
鯖が違う
663軟式PHP:04/08/19 20:43 ID:???

  \(⌒-⌒)
   (・(ェ,,)・ ) < そんなエサで俺様がクマー!!
    `つ   `つ      (´⌒(´
     ゝ_つ_`つ≡≡≡(´⌒;;;≡≡≡
              (´⌒(´⌒;;
      ズザザザ


    どこまで行クマ?
\   ̄∨ ̄ ̄ ̄ ̄ ̄ ̄    (´´
  \(⌒-⌒)   o       (´⌒(´
   (・(ェ,,)・ )つ⌒`つ≡≡≡(´⌒;;;≡≡≡
          ̄ ̄     (´⌒(´⌒;;
      ズザーーーーーッ
664nobodyさん:04/08/19 21:15 ID:JfzAv2ME
みなさんは、掲示板などのログを保存する際に区切り記号は
どのようなものにしていますか?
私はタブにしているのですが、ネットでは<>が圧倒的に多いので
その利点なども教えていただけると幸いです。
665nobodyさん:04/08/19 21:22 ID:???
Kent




タブでいいよ。<>は本文にないとも言い切れないし
666nobodyさん:04/08/19 21:25 ID:???
自分もタブ。
ログファイル開いた時も見やすいし。
667nobodyさん:04/08/19 21:31 ID:???
,
668nobodyさん:04/08/19 21:31 ID:???
fopen()でサイズの大きいファイルを開くにはどうすれば良いですか?
FATAL: emalloc(): Unable to allocate エラーが出ます
file_get_contents()でも使って変数に読み込むしかないのかな


タブか…良いことを聞いた。φ(.. )メモメモ
669Imo ◆.jC7ANgFY. :04/08/19 21:43 ID:???
>>668
freadの第二引数を512*1024くらいにしながら順番に処理するべし。
670nobodyさん:04/08/19 21:47 ID:???
>>668
fopenごときでそんなエラーが出るはずは無いんだが・・・。

・根本的な対処
スクリプトのメモリを無駄に使っている部分を直す。
(ファイルの中身を一気に変数に入れてたのを一定サイズに抑えるとか)
・刹那的な対処
PHPやWebサーバのメモリ関係の制限を緩和する。
(当然他の部分に皺寄せが行くので刹那的)
671nobodyさん:04/08/19 21:59 ID:???
>>669 >>670
fopenの所為じゃなかったのか…
切り分けしてきます
672671:04/08/19 22:11 ID:???
あ(汗
他のところでミスってました。
1GBも読み込もうとしてたorz
お手数をおかけしました。
673nobodyさん:04/08/19 22:13 ID:???
タブってどんなの?
674nobodyさん:04/08/19 22:18 ID:???
>673
\t
675nobodyさん:04/08/19 22:19 ID:???
fopenもmallocを呼ぶけどな
676nobodyさん:04/08/19 22:22 ID:???
そんなの当たり前だろ・・・
677nobodyさん:04/08/20 01:15 ID:???
ログはserialize() / unserialize() を使う方がPHP的で良いんじゃないだろうか。
678Imo ◆.jC7ANgFY. :04/08/20 01:31 ID:???
>>677
実はserializeはexplodeより高速という(ry
679nobodyさん:04/08/20 02:26 ID:???
680nobodyさん:04/08/20 05:40 ID:???
PHPでコマンドラインスクリプトつくってます。
標準入力から読み込む方法と、標準エラー出力にだす方法がわかりません。
マニュアルのどこに書いてありますか?
681nobodyさん:04/08/20 06:02 ID:???
〜〜〜このスレはマニュアルの読み方から教えるスレになりました〜〜〜
682nobodyさん:04/08/20 06:25 ID:???
標準入力とエラー出力が判らない人がいるのは、
WebPage記述用スクリプトとして生まれてきた性なんだろうな。
683nobodyさん:04/08/20 06:34 ID:???
まあPCスキルが高くて経験が豊かな俺から言わせてもらえば
UNIXを知らない奴はプログラム作っちゃだめだな
684nobodyさん:04/08/20 07:15 ID:???
>>681
マニュアルのどこに書いてあるのか分からなかったので質問しました。
Windows用のマニュアル(*.chm)を使ってるのですが、キーワードにないし、
検索しても見つかりません。
件枠キーワード: standard output, stdin, stdout, ...
なお英語版のマニュアル使ってます。
685nobodyさん:04/08/20 07:55 ID:???
>>684
stdin で検索したらあったけどな。
(*.chm)日本語版だけど
686軟式PHP:04/08/20 09:04 ID:???
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |       >>683
/     ∩ノ ⊃  ヽ  
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
687nobodyさん:04/08/20 13:24 ID:???
軟式たべろ
688nobodyさん:04/08/20 15:13 ID:???
長いHTML文中に数十の<?php ?>を埋め込むような場合、
まとめて全てを<?php ?>で囲っちゃった方が負荷が少なかったりします?
大した差は無いかな。。
689nobodyさん:04/08/20 15:18 ID:???
>>688
そんなことより、それじゃ読みにくいので、
テンプレート(またはソレっぽいの)として分割してください。
690nobodyさん:04/08/20 16:03 ID:???
PHP で作った禁則処理ってどこかにありませんか?
691nobodyさん:04/08/20 16:11 ID:???
すみません、質問させてください。
100 / 1.05を計算すと95.238095238095になるのですが、
小数点第何位までと決めることはできますか?
また、やり方もご教授お願いします。
692691:04/08/20 16:12 ID:ttg46q2U
age忘れました。
693Imo ◆.jC7ANgFY. :04/08/20 16:14 ID:???
>>691
round関数を参照
694nobodyさん:04/08/20 16:15 ID:???
PHPのスクリプトからファイルにバイナリデータを出力するにはどうすればよいのでしょうか?
配列に入っている数値を1バイトずつファイルに書き出したいのですが
どうやってもテキストで出力されてしまいます。。。orz
695691:04/08/20 16:16 ID:???
>>693
ありがとうございました。
696Imo ◆.jC7ANgFY. :04/08/20 16:22 ID:???
>>694
初心者にはchr関数ですべてループさせることをすすめる。

すっきりやりたければこんなことしてもできる。
call_user_func_array('pack', array_merge(array('c*'), $list));
697nobodyさん:04/08/20 16:40 ID:???
>>691
$a=round(100/1.05*100)/100;
echo $a; //95.24
698Imo ◆.jC7ANgFY. :04/08/20 16:42 ID:???
>>697
round(100/1.05, 2)のほうがいい
699nobodyさん:04/08/20 16:48 ID:???
>>698
うおーー
それでも行けるのかw

ちとスクリプト書き直すよ!
ありがとう〜〜
700691:04/08/20 16:50 ID:???
>>697-698
なるほど、そういう書き方もありましたか。
$motone=$_POST["money"] / 1.05;
$motone=round($motone , 0); //round関数で$motoneの値を整数にする
と書いていました。
701nobodyさん:04/08/20 16:54 ID:???
ところで、最近php初めてようやく上で書いた
$a=round(100/1.05*100)/100;
ってのも覚えたんだけど、
例えば、
function a(){
$zz = 1234;
}
function b(){
echo = $zz;
}
としてもecho = $zz;は表示されないのだけど、
これを$zz = 1234;の値を他のfunctionで使い回す事ってどうやればいいんでしょうか?
今は全部のfunctionで$zz = 1234; を書いてます・・・

よろしければ教えていただきたいのですが。
702Imo ◆.jC7ANgFY. :04/08/20 16:57 ID:???
>>701
function a(){
global $zz;
$zz = 1234;
}
function b(){
global $zz
echo $zz;
}
703Imo ◆.jC7ANgFY. :04/08/20 16:58 ID:???
>>701
b関数内のglobalのセミコロン抜けた。
というわけで報告ついでに別な方法も。

function a(){
define('ZZ', 1234);
}
function b(){
echo ZZ;
}
704nobodyさん:04/08/20 17:02 ID:???
>>702>>703さん早速ありがと〜
そういう方法なんですね!
多分マニュアルに書いてあると思うのだけど、
その方法をマニュアルで探す方法がわからなくてw
ありがとうございました!
705軟式PHP:04/08/20 17:36 ID:???

  \(⌒-⌒)
   (・(ェ,,)・ ) < そんなエサで俺様がクマー!!
    `つ   `つ      (´⌒(´
     ゝ_つ_`つ≡≡≡(´⌒;;;≡≡≡
              (´⌒(´⌒;;
      ズザザザ


    どこまで行クマ?
\   ̄∨ ̄ ̄ ̄ ̄ ̄ ̄    (´´
  \(⌒-⌒)   o       (´⌒(´
   (・(ェ,,)・ )つ⌒`つ≡≡≡(´⌒;;;≡≡≡
          ̄ ̄     (´⌒(´⌒;;
      ズザーーーーーッ
706nobodyさん:04/08/20 17:40 ID:???
>>702
global は綺麗にスクリプトを書こうとする時邪魔なので
class化してvarにまとめる事をオススメする
707706:04/08/20 17:42 ID:???
>>706 s/702/701/
708nobodyさん:04/08/20 17:56 ID:???
バイナリデータを16進数にして2byteずつ読み込み10進数にする

〜略
$hdata = bin2hex($bdata);
$i=1;
while($i<=$size){
 $ddata = hexdec(substr($hdata,$i*2-2,2));
 $i++;
}
略〜

こういう感じの処理を速くすることはできますか?
forからwhileにしたら少し速くなった
base_convert(,16,10)からhexdecにしたら少し速くなった
これくらいしか思いつかないのでよろしくお願いします。
709軟式PHP:04/08/20 18:04 ID:???
class hoge
{
var $zz;
function a()
{
$this->zz = 1234;
}
function b()
{
echo $this->zz;
}
}
710Imo ◆.jC7ANgFY. :04/08/20 18:07 ID:???
>>708
unpackの配列つかえば一発。
711nobodyさん:04/08/20 18:09 ID:???
>>708
バイナリデータを一旦16進数にする意味はあるのか?
712nobodyさん:04/08/20 18:23 ID:???
〜略
$hdata = unpack("C*",$bdata);
$i=1;
while($i<=$size){
 $ddata = $hdata[$i];
 $i++;
}
略〜

これだと>>708のほうが速いのです。
713nobodyさん:04/08/20 18:40 ID:???
PHPAccelerator を 使えば一発。
714nobodyさん:04/08/20 18:49 ID:???
>>712
$i=0;
while($i<$size){
 $ddata = ord($bdata[$i]);
 ++$i;
}
だとどうだろうか?
715nobodyさん:04/08/20 18:50 ID:???
>>713
実行テストは自分のPC(OSはWindows)で行ってますが、
最後に使うのはレン鯖なのでインストはむりぽ

と思ったけどxreaは実験的に導入してくれてるようです。
716nobodyさん:04/08/20 18:56 ID:???
またxreaに厨が増えたのか・・・
717nobodyさん:04/08/20 18:56 ID:???
>>714
速くなりました。
ありがとう御座います。

ord -- 文字のASCII値を返す
↑ASCII値ってのが意味わからなかったので触ってませんでした。

これかもPHPの勉強を励んでいきます。
718Imo ◆.jC7ANgFY. :04/08/20 19:24 ID:???
>>717
こうしてほしかったんだけどまぁいいや。
foreach (unpack("C*",$bdata) as $ddata) {
}
719nobodyさん:04/08/20 20:47 ID:???
>>718
>>714 の方が少し速いみたいだしメモリ使用量は >>714 の方が少ないので >>714 でいいんじゃないの?
720nobodyさん:04/08/20 21:06 ID:ho3qNz5a
721Imo ◆.jC7ANgFY. :04/08/20 21:06 ID:???
>>719
たしかに巨大ファイルだったら配列に入れない>714の方がはやいがな。
722714:04/08/20 21:32 ID:???
(´д`*)デヘヘ....
723カポコン:04/08/20 23:07 ID:???
久しぶりに良スレになってるな・・・(・д・)。

724684:04/08/21 00:29 ID:???
>>685
見つかりました。
fopen('php://stdin') とか fopen('php://stderr') とかするんですね。
PHPのことだから、「標準エラー出力に出力する関数」とか、
「標準入力を表す定数」とかがあるんじゃないかと思って、そのあたりを探してました。
でもそうじゃなくて、Streamだったんすね。
あまり美しさを感じない仕様だけど、まあこんなもんか。
ていうかいちいちオープンしなきゃならんのはちょっとだけ面倒。

ありがとうございました。
725nobodyさん:04/08/21 00:39 ID:???
PHPプログラムのチューニング、またはプロファイラについて説明したページありませんか?
726nobodyさん:04/08/21 00:41 ID:???
>>724
phpではそういう形式で開くようになってる
perlは違う
727nobodyさん:04/08/21 01:25 ID:???
>>724
探し方が足らんな。
CLI版なら標準入力を表す定数があるし、
いちいちオープンしなくても入出力できる。
728nobodyさん:04/08/21 14:03 ID:???
htmlに出力するところで
echo "<p class=\"2ch\"><? include 'inc/giko.inc'; ?></p></div>";
とやると<? include 'inc/giko.inc'; ?>の部分がそのままでてきてしまいます。
これを出力するにはどうしたらいいでしょうか?
?>で一旦閉じる方法も考えましたが、それだとincludeが全部出力されてしまいちょっと都合が悪いのです。
729nobodyさん:04/08/21 14:28 ID:???
ダブルクオートの中で命令が使えるわけ無いだろう。
もし使えたら予約語の文字列を全て把握しなければならない上、
びくびくしながらプログラムを組まなければならなくなる。
730nobodyさん:04/08/21 14:29 ID:???
>>728
現在の状況と期待する内容が良く分からんが、
giko.incをphpスクリプトとして実行したいってことなら、
giko.incが <?php 〜 ?>の形式になってないだけじゃないの?
include()の説明を良く見てみ。
731728:04/08/21 14:44 ID:???
>>729-730
giko.incはhtmlがそのまま入っています。
htmlでメニューだけincludeして使っていたので(使い方間違ってるかもしれませんが)、それをプログラム中のhtml出力にも使いたい訳です。
現在の状況は
 echo "<p class=\"2ch\"><? include 'inc/giko.inc'; ?></p></div>";
html出力
 <p class="2ch"><? include 'inc/giko.inc'; ?></p></div>
と表示されるのを
期待している出力
 <p class="2ch">(;゚Д゚)</p></div>
  ((;゚Д゚)=inc/giko.inc内テキスト)
としたいわけです。
732nobodyさん:04/08/21 14:49 ID:???
<?
echo "<p class=\"2ch\">";
include 'inc/giko.inc';
echo "</p></div>";
?>
これで確実にOKと思う
733728:04/08/21 14:55 ID:???
>>732
おお、いけました。ありがとうございました。
734nobodyさん:04/08/21 16:13 ID:???
ファイルのCRC16取得したいんですが、うまくいきません。
http://jp.php.net/crc32
にあるcrc16用の関数を用いて、

function fcrc16($file){
if(!$fp = fopen($file, 'r')){
return 0xffff;
}

// メモリが足りないかも。
$buf = fread($fp, filesize($file));
$crc = crc16($buf);

fclose($fp);
return $crc;
}
としてやったのですが、うまく計算できませんでした。
どのようにすればうまく計算できるでしょうか?
735nobodyさん:04/08/21 16:28 ID:???
http://php.us.themoes.org/manual/ja/function.crc32.php
の下のほうにcrc16のサンプルがあるよ
使えるかどうか知らないけどね
736nobodyさん:04/08/21 16:35 ID:???
>>727
教えてくれ。
今、コマンドラインで使うスクリプト書いてるが、stderrに吐くのを簡単にしたい。
737nobodyさん:04/08/21 16:48 ID:???
>>736
php -r 'fputs(STDERR," イ   ヤ   だ   ! ! !");'
738nobodyさん:04/08/21 16:55 ID:???
>>737
エラー
739734:04/08/21 17:00 ID:???
>>735
それ、http://jp.php.net/crc32 と同じです。
そして、うまくいきません。
740nobodyさん:04/08/21 17:40 ID:???
>>738
エラー内容くらい書いたら?
STDIN, STDOUT, STDERR という定数は PHP 4.3.0 以降の CLI 版の PHP で使用可能。
>>738 は CGI 版の PHP で実行していると予想してみる。
php -v で確認してみれば分かる。
どうしても CGI 版とか PHP 4.2.x 以下の環境でその定数を使いたければ、スクリプト
の最初で以下のように設定してしまうという方法もあるみたいだけど。

if (!defined('STDERR')) {
  define('STDERR', fopen("php://stderr", "r"));
  register_shutdown_function(create_function('', 'fclose(STDERR); return true;');
}

詳しくは以下のあたりを参照。
http://jp.php.net/manual/ja/features.commandline.php#22356

>>739
単純に 16進数変換をしていないだけだったりしない?

$crc = crc16($buf);
printf("%04X\n", $crc);
741nobodyさん:04/08/21 17:57 ID:???
>>740
function crc16($string){
 $crc = 0xFFFF;
 for($x=0; $x<strlen($string); $x++){
  $crc = $crc ^ ord($string[$x]);
  for($y=0; $y<8; $y++){
   if(($crc & 0x0001) == 0x0001){
    $crc = (($crc >> 1) ^ 0x8408);
   }
   else{
    $crc = $crc >> 1;
   }
  }
 }
 return $crc;
}

これでどうよ
742741:04/08/21 17:57 ID:???
ごめん>>739宛ね
743734:04/08/21 17:59 ID:???
>>740
違いますね。。別で取得した値と
fcrc($file) == 0xBD9A
とかして、比較して検証しているんですが、結果異なっていますし。
744nobodyさん:04/08/21 18:03 ID:???
>>742
一瞬氏ねに見えた
ごめんと言いつつ頃す姿を想像してしまった
745Imo ◆.jC7ANgFY. :04/08/21 18:09 ID:???
>>743
ABCDEFGHをCRC16したときの期待する結果は何?
746nobodyさん:04/08/21 19:21 ID:Ro1xuyZQ
オブジェクトの練習中です。
PEARをつかってます。DAOの部分はDBになるんでしょうか?
userDAOはDBを継承してソメッドをしこしこ書けばよいのでしょうか?
747nobodyさん:04/08/21 19:36 ID:???
Java 厨 ( ´,_ゝ`) まぁ PHP-Java は相互補完できるとこ多いけど。
誰かに PEAR コードの歩き方習うか試行錯誤で身につけろ。
ググれ、英語嫁、ダンプ取れ、コード読め、PHPDoc 嫁
それがイヤならマニュアルの整備されたパッケージ以外使わない方がいい。

DataObject ならマニュアル嫁。
748734:04/08/21 21:30 ID:???
>>745
0x7A09
ですね。
749nobodyさん:04/08/21 21:59 ID:???
>>748
それは何で弾き出した値なんだ?
750Imo ◆.jC7ANgFY. :04/08/22 01:17 ID:???
>>748
いろいろ目を通したけど1つも見当たらなかったです。
というよりかそのCRCコードはファイルデータ以外に
ファイルサイズなども入っているとか…

# っつーかなんか面白いものつくりてー
# N-GRAM全文検索でもつくろっかな
751736:04/08/22 02:06 ID:???
>>740
おおっ、すばらしい。さんくす。
そうか、マニュアルのこんなところに載ってあったのか。
予想と違うところに書かれてあると、見つけられんわ。修行してくる。
752nobodyさん:04/08/22 02:10 ID:???
お前ら口だけだな
753nobodyさん:04/08/22 03:56 ID:97mKEXwz
リファレンスでわからないこと教えてください。

>>349とかマニュアルとか読んだ。
・ポインタとリファレンスが違うのはわかった。
・ $a =& で、変数もオブジェクトもリファレンスできるのもわかった。
・ function foo(&$var) の渡し方と返り方もわかった。

けど、結局わからなかったこと。
function定義の時の
<?php
function &foo(){

の関数名の最初の&ってどういう時に必要?



あと、
ttp://mylog.ishinao.net/id/117
の人はなんか偏執狂に見えるのは間違いか?
754Imo ◆.jC7ANgFY. :04/08/22 09:35 ID:???
>>753
なくてもプログラムは動くっぽいけど、
PHPマニュアル > II. 言語リファレンス > 14章リファレンスの説明
には以下のようなことが書かれている。

注意: パラメータを渡す場合と異なり、ここでは、
通常のようにコピーではな くリファレンスで返り値
を指定し、リファレンス結合を指定するために
両方の場所で&を使用する必要があります。
$fooについて行われたのは、通常の代入ではありま せん。

ここの人はperlから来たてでイライラしてただけじゃない?
755nobodyさん:04/08/22 10:35 ID:???
>>753
以下のスクリプトで違いが分かるかもしれない。
<?php
function  foo1() { static $a = 1; return $a; }
function &foo2() { static $a = 1; return $a; }
$foo1 =& foo1();
$foo2 =& foo2();
var_dump($foo1);
var_dump($foo2);

$foo1 = 2;
$foo2 = 2;
$foo1 =& foo1();
$foo2 =& foo2();
var_dump($foo1);
var_dump($foo2);
?>
多分、関数の前に & を付けると関数からの返り値には関数内の変数の
リファレンスが返ってくるということだろう。
よく分からなかったらあまり使わない方が安全かもしれないけど。
756755:04/08/22 11:21 ID:???
一応捕捉。
デザインパターンで使われる singleton などはこの方法を使って実現している。
以下のサイトの説明が分かりやすい。

ttp://www.pat.hi-ho.ne.jp/dimension/sample/sample_class_dp_singleton.shtml
757nobodyさん:04/08/22 11:59 ID:???
php+IISの環境にNamazuをインスコしたいのですが
どうやったらいいのでしょうか。
758nobodyさん:04/08/22 12:05 ID:???
こんにちは
height = 200+100 (と入ってると仮定して)
<input type="text" name="height" size="10" value="" />
これでPOSTして
$height = $_POST['height'];
echo $height; //ここが200になる。

のですが、これを300 200+100した値が取れるように出来ないものでしょうか?
POSTのFORMで200/2 や200*2などをやりたいのですが。
よろしくお願いします。
759nobodyさん:04/08/22 12:23 ID:???
('A`)
760753:04/08/22 13:26 ID:97mKEXwz
>>754-756
レスthx.

実は、
http://jp2.php.net/manual/ja/language.references.return.php
ココのマヌアルページが理解できなくて......onz

>>755
>> 多分、関数の前に & を付けると関数からの返り値には関数内の変数の
>> リファレンスが返ってくるということだろう。

あぁ、function &foo(){...... return($a); }と $hoge =& foo();と両方とも "&" を
つけた場合にのみ、function foo()の返り値の$aのリファレンスが$hogeにおさめられると。
それ以外の、
・function foo(){...... return($a); }; で定義して $hoge =& foo(); でコール
・function &foo(){...... return($a); }; で定義して $hoge = foo(); でコール
だと、普通に$aが$hogeにおさめられる仕様になるわけですね。

これで、すこし━━━(゚∀゚)━━━━ッ!!って感じだったけど、
>>755でいただいたサンプルスクリプトを実行して???になりました。

最後のvar_dump($foo2)がなんで、int(2)になるんですか?..... onz
function foo2()の返り値$aのリファレンスが返ってくるということは、・・・・$aの実体はなんですか?
static $a = 1;だから、$a の実体は、int(1)じゃないんですか?なんで、int(2)がかえってくるんだろう?

function内のリファレンスを理解できてないな。

# $aはstaticというのは、function foo1とfoo2の$aは自分が呼ばれた記憶を$aに保持していると
# いうことで理解しているんですが合ってますか?それは、function内のリファレンスとは関係ない?
761755:04/08/22 14:12 ID:???
>>760
static については、マニュアルを参照。
ttp://jp.php.net/manual/ja/language.variables.scope.php

最後の var_dump($foo2) が int(2) になるのは、9行目の $foo2 = 2; を実行したから。
これは、foo2() の中の static $a で定義した $a を変更したのと同じ。

つまり、言いたかったことは、
3行目の $foo1 =& foo1(); で取得した $foo1 は foo1() の static で定義された $a のリファレンスではないけど、
4行目の $foo2 =& foo2(); で取得した $foo2 は foo2() の static で定義された $a のリファレンスということ。

static の変数が単なる変数ではあまり大したことはできないけど、この形でクラスや配列を扱うよう
になると便利さがわかるようになるかもしれない。

PHP のソースを読んで確認した訳でもないのでもしかしたら間違っているかもしれないけど。
762nobodyさん:04/08/22 15:48 ID:E2HwDzLs
MySQLのphpmyadminでOverload ってのがありますが、
これって負荷と同義で考えて問題ナッシングでしょうか?
763753:04/08/22 16:11 ID:97mKEXwz
>>760
あぁ。理解できました。ありがとうございます。

自分的には、こうしたらわかりやすかったです。
<?php
function foo1(){static $a = 1;return $a;}
function &foo2() { static $a = 1; return $a; }
$foo1 =& foo1();
$foo2 =& foo2();
var_dump($foo1);
var_dump($foo2);

$foo1 = 2;
$foo2 = 8;
$foo1 =& foo1();
$foo2_2 =& foo2();
var_dump($foo1);
var_dump($foo2_2);
?>

$foo2 =& foo2(); で、function foo2 の返り値へのリファレンスを作って
$foo2 = 8;    で、function foo2 の返り値に8を入れる。リファレンスなので、function内の$aに影響して$a = 8;
static $a;     と、foo2()で定義してるので、そのあとに
$foo2_2 =& foo2(); で呼ばれた時にも$a = 8;が有効なので $foo2_2 には8が入る。
最後の $foo2_2 =& foo2(); は、$foo2_2 = foo2(); でも同じ結果ですね。
リファレンスを得るか値を作るかが違うだけで。

764753:04/08/22 16:21 ID:97mKEXwz
あと、
http://jp2.php.net/manual/ja/language.references.return.php
が理解できなかった原因として、下記のサンプルコードがあるんですが、
<?php
function &find_var ($param) {
� ...コード...
� return $found_var;
}

$foo =& find_var ($bar);
$foo->x = 2;
?>

このfunction find_var()は$found_varを返していますが、
これは次の
$foo->x = 2;
とあることから、....コード....で、作られたオブジェクトと考えていいのでしょうか。
「リファレンスを使う最大の目的はインスタンスの複製を行わないでメモリ消費を抑える」
ということから、あえて自明として....コード....の部分でオブジェクトを作ってると
マニュアルには記述してないのかなと思いますが。

合ってる?
それとも、「->」ってインスタンスのメンバにアクセスする以外の使い方で用いてるのかな?
765nobodyさん:04/08/22 16:44 ID:???
>>762
DB板の方が適切だと思うよ
766755:04/08/22 17:50 ID:???
>>764
確かに分かりにくいコードだね。そこのマニュアルには、
「この例では、関数find_varにより返されたオブジェクトのプロパティが、設定されます。」
と書かれているので、find_var() はオブジェクトを返すのは間違いないと思うけど。
とりあえず、無理矢理サンプルを考えてみた。
static 変数を使わなくても global 変数でも同じ様にできるということで。

class Foo { }
$bar =& new Foo;
$bar->x = 1;

function &find_var($param) {
    $found_var = null;
    if (isset($GLOBALS[$param])) {
        $found_var =& $GLOBALS[$param];
    }
    return $found_var;
}
function test1() { $foo =& find_var('bar'); $foo->y = 3; }
function test2() { $foo =& find_var('bar'); $foo->z = 2; }

test1();
test2();
$foo =& find_var('bar');
var_dump($foo);
767nobodyさん:04/08/22 18:36 ID:???
サイトに会員制の部分をつくりたいのですが、パスワードをセッション
変数として保持しながらページを作成していくと、javascriptの
history.back()を使用してページを戻るときに「有効期限切れ」と
なってしまいます。

フォーム入力確認で戻る必要があるのですが、どういった方法で
会員制にするのがよいのでしょうか?
768nobodyさん:04/08/22 18:45 ID:???
↑は無視してください。
すいません。セッションのスレで聞きなおします。
769nobodyさん:04/08/22 19:52 ID:a2aIDnS/
phpinfo.phpをIEで開くとファイルのダウンロードが起動します。
どうして見れないのでしょうか?
設定の段階で何か失敗しているのでしょうか?

助けてください。
770nobodyさん:04/08/22 19:59 ID:???
>>769
お前が何をどうやったかわかるエスパーがいると思うか?
771769:04/08/22 20:03 ID:a2aIDnS/
どのように説明すればいいでしょうか?
772nobodyさん:04/08/22 20:13 ID:???
>>769
1)PHPをインストールしていない
2)webサーバの設定をしていない
「インストールってどうやるんですか」とか「設定ってどうやるんですか」なんて聞くなよ
773769:04/08/22 20:21 ID:a2aIDnS/
PHPのインストール、サーバーの設定(Apache)も本を見ながら行いました。
774nobodyさん:04/08/22 20:25 ID:???
>>773
たぶんhttpd.confの問題


一応訊いておくがApacheが起動してなかったりしないよな?
775nobodyさん:04/08/22 20:26 ID:???
だからその設定やインストールの仕方も一緒に書かないとどうなってるのかわかんないだろ
776nobodyさん:04/08/22 20:31 ID:???
もうほっとけよ
777nobodyさん:04/08/22 20:38 ID:???
スレ違いはスルーしろや
夏になると教えたがり厨も増えて困る
778nobodyさん:04/08/22 21:17 ID:dLrjNlop
Nucleusの設置でYour PHP version does not have support for MySQL
と表示されるんですけどどのバージョンなら動きますか?
ちなみに今は、「php-4.2.3-0vl5」です
779nobodyさん:04/08/22 21:26 ID:???
>>778
どのバージョンなら動くってよりも、
どのバージョンだから
Your PHP version does not have support for MySQL
ってでたのか書いた方がよくないんか?
しかもphpが究極にふるいけど。DBはいくつだ?
780nobodyさん:04/08/22 21:27 ID:???
>>778
マニュアル読め
自分で試せ
781nobodyさん:04/08/22 21:31 ID:???
ちなみにうちは
PHP4.3.4〜4.3.8
MySql 4.0.2
でNucleus3.0は動いてたよ。
782nobodyさん:04/08/22 21:34 ID:???
>>780
前に、WIN板だけど、
自分で試すともしものリスクがあるから、イヤダってやついたからな。
。。さすがだと思ったけど
783nobodyさん:04/08/22 21:35 ID:yiZXjncr
PHPのビルドってどのくらい時間かかりますか?
784nobodyさん:04/08/22 21:41 ID:???
自分でタメセヨ

785nobodyさん:04/08/22 22:38 ID:???
漏れのばあい疲れてると5分、調子いいと15分、締まり具合によるけどな。
786nobodyさん:04/08/22 22:52 ID:yiZXjncr
>>784
自分で試したいのは山々なんですが、devenv5個起動してて、
さすがに無理そうです。
787nobodyさん:04/08/22 23:36 ID:???
1分ですもうと1週間かかろうと必要ならやらんとイカンだろ。
とりあえずやってみ。
788734:04/08/23 01:24 ID:???
>>750
そうですか。ありがとうございます。
789nobodyさん:04/08/23 03:56 ID:???
PHP勉強しようと思い先ほど始めました
マニュアル読んできますー
これからお世話になるかもしれませんので、
おyろしく
790nobodyさん:04/08/23 04:04 ID:Cbp61B7f
eregで複数マッチした場合、配列[0]には何が入るのでしょうか??
基本的なことで申し訳ありません_(..)_
791nobodyさん:04/08/23 04:17 ID:???
>>790
自分で試そうとは思わないの?
792nobodyさん:04/08/23 05:01 ID:???
試しました。申し訳ありません。
マッチしたうちの最も大きな文字列が入るという噂もあったんで迷っていたんですが、
そうじゃないみたいですね。ありがとうございました。
793nobodyさん:04/08/23 11:20 ID:mw0a3S3I
アホアホな質問でもスミマセヌ

PHP 内でタグを記述する時に

 <br />

見たいな感じで、">" の出前に "/" が付与されてる事が
あるんですが、これの意味って何なのでしょうか・・・?
794793:04/08/23 11:22 ID:mw0a3S3I
もしHTMLの話であれば、完全なスレ違いだと思いますんで
自分で調べられそうなサイトだけでもご教授くださいマセ orz
795nobodyさん:04/08/23 11:40 ID:???
>> 793

XHTML 入門 でぐぐってみそ。
796nobodyさん:04/08/23 11:43 ID:???
XML
797nobodyさん:04/08/23 16:44 ID:???

【PHP】Phrameを使う【フレームワーク】
http://pc5.2ch.net/test/read.cgi/php/1093238107/
798nobodyさん:04/08/23 18:26 ID:???
>>790
print_r
という関数を使えば配列を全て表示できるよ
デバッグ用に使ってね
799nobodyさん:04/08/23 18:42 ID:OxTNe7cI
pear落ちてるぞ。
800nobodyさん:04/08/23 18:55 ID:???
お前だけな
801nobodyさん:04/08/23 22:10 ID:???
Linuxの共有鯖を借りて、Win環境で製作したPHPの
サイトを作ろうと思ってるんですが
何か気をつけた方が良いことってありますか?
802nobodyさん:04/08/23 22:33 ID:YOffYGPl
PHPの日本語chmはいつになったら文字化けが治るんですか(`Д´)
2003年4月頃のをいまだに使用しております(`Д´)
803nobodyさん:04/08/23 22:59 ID:???
GETとPOST何が違うんだろ
804nobodyさん:04/08/23 23:00 ID:ozJ0+2Je
特に文字化けしてないけど…
どのページ?
805nobodyさん:04/08/23 23:06 ID:ozJ0+2Je
>>801
ずばり、文字コード。EUCとShift-JISね。
あと細かなところでは、ファイルのパスとか(「\」じゃなくて「/」を使ってるよね?)。
あとはファイル名の大文字小文字を区別うんぬんとか。つまりOS依存の部分ね。

>>803
そう思った理由を書いてみないと。
806nobodyさん:04/08/23 23:08 ID:???
同じなら、GETの方が文字数少ないしネットにやさしいかなって。
1文字しか違わないけど、ちょっと思いました。
807nobodyさん:04/08/23 23:11 ID:???
>>806
GETはURLに埋め込めるんだよ。

ttp://127.0.0.1/~php/index.php?get=get
の場合…
print $_GET["get"];
/* 結果↓ */
get
808nobodyさん:04/08/23 23:12 ID:???
>>807さん詳しそうですね。
もっといろいろ知りたいのですが、質問してもいいでしょうか?
809nobodyさん:04/08/23 23:13 ID:???
うっ、プロと見た!
810nobodyさん:04/08/23 23:22 ID:???
>>808
答えられる範囲なら。
眠いからもう寝るかも。
811nobodyさん:04/08/23 23:31 ID:???
今、HTTPサーバ作ってるんですけど、pukiwikiがうまく動かないんです。
phpinfo()も、ロゴが表示されません。
たぶん、CGIの子プロセス側に与える変数が不足してるような気がするんだけど、
最低限必要な変数の一覧ってどこかに無いですか?
CGI/1.1Specは全く不十分でした。
そもそも変数をどうやって渡すかといった規定すらなく、
色々試してみるしか有りませんでした。
812nobodyさん:04/08/23 23:34 ID:???
それとも、PHPはCGIで起動すると機能制限があるのかな?
813nobodyさん:04/08/23 23:38 ID:???
在るわけない
SafeModeはmod_phpのみ
814nobodyさん:04/08/23 23:38 ID:???
>>811
PHPのバージョンが古いんだよ。でバージョンは?
815nobodyさん:04/08/23 23:41 ID:???
そうですか・・・
PHP Test Suiteとかないかなぁ?
816nobodyさん:04/08/23 23:43 ID:???
バージョンは、PHP Version 4.3.8です。
System Windows NT XP1 5.1 build 2600
Build Date Jul 13 2004 17:31:56
Server API CGI/FastCGI
Virtual Directory Support enabled
PHP API 20020918
PHP Extension 20020429
Zend Extension 20021010
Debug Build no
Thread Safety enabled
Registered PHP Streams php, http, ftp, compress.zlib
こんなの。
817nobodyさん:04/08/23 23:51 ID:YOffYGPl
>>804

えー(;´Д`)
もしかしてみんな気付いてないの?

http://www.php.net/download-docs.php

ここの『Japanese chm』てのダウンロードしてみてよ。
もう1年以上も、文字バケバケなまんまですよ?

chmが一番便利だからよく使うのに、困ります(`Д´)
818nobodyさん:04/08/23 23:53 ID:???
あるぇー?
化けてないよ?
819nobodyさん:04/08/23 23:55 ID:???
化けてたw
820nobodyさん:04/08/23 23:57 ID:???
漏れは化けてないよ?どのページ?
821nobodyさん:04/08/23 23:59 ID:???
キーワードのとこ。
822nobodyさん:04/08/23 23:59 ID:???
SJISで化けるだけだろ
UTF-8にしろ
823nobodyさん:04/08/23 23:59 ID:YOffYGPl
>>820

chmを開くと左側に検索フレームが出るべ?
[目次][キーワード][検索][お気に入り]ってさ。

そのキーワードが化け化けだっぺさ。
それが原因かしらんが、検索もできないだっぺさ。
とてとて困る(;´Д`)

2003年4月頃はまだ化けてなかったので
そのとき落としたchmを今だに使用しているよ(;´Д`)

なんとかして > 偉い人
824nobodyさん:04/08/23 23:59 ID:???
化け化けだよ ページは化けてないけどね。使い物にはならないよね
825822:04/08/24 00:00 ID:???
って、chmだったかスマソ
826nobodyさん:04/08/24 00:00 ID:Q8I08UQN

>>822
> SJISで化けるだけだろ
> UTF-8にしろ

やりから教えてたもられ
827nobodyさん:04/08/24 00:03 ID:???
Note: The htmlhelp.xsl is currently not too useful alone, as it's used by the new CHM build system which is not available in CVS right now
いまいち意味が・・・
待てって意味なのかな??
828nobodyさん:04/08/24 00:04 ID:???
あー、ホントだ、キーワードだめだめだな…
で、こんなページ見つけたから参考にしてみて
ttp://apollo.u-gakugei.ac.jp/~sunaoka/misc/php_manual_ja/
829nobodyさん:04/08/24 00:07 ID:???
その勢いで、CGIのほうもよろしくお願いします。
830nobodyさん:04/08/24 00:34 ID:???
http://o2on.s69.xrea.com/index.php?The%20O2ON
ここに圧縮してアップしました。
CGIがさっぱりです。
831nobodyさん:04/08/24 01:00 ID:???
>>828
うぉぉぉぉおおおお!ありがてー
ずっと困ってたんだよね<文字化け
ていうかこんなの本家でなんとかしる!
832nobodyさん:04/08/24 01:15 ID:???
>>831
そうだね 
833802:04/08/24 01:19 ID:???
>>828

ありがとう〜
自分も探してみればよかった
でもほんと、本家でなんとかしてほしいですね
834nobodyさん:04/08/24 01:40 ID:???
こっちのほうが簡単かも
 PHPマニュアルを使いやすくするパッチ
 http://www.vector.co.jp/soft/dl/win95/prog/se321697.html
835nobodyさん:04/08/24 02:17 ID:???
>>834
うぉ!こんな便利なのがあったのかー。
さんきぅ
836nobodyさん:04/08/24 03:45 ID:???
超初心者です。お手柔らかに。。

test.php内で

<?php include($content); ?>

と記述して

http://xxxx.com/test/test.php?content="content.htm"

としてtest.phpにcontent.htmをインクルードしようとしているのですが、
エラーがでるので何かトンチンカンな間違いをしてるはずです。。
目的として、フレームレスのページを作りたくて、アドレスで変数を書き換えて
メインコンテンツの表示を分岐させたいのです。
どうすれば上手くいきますでしょうか?

宜しくお願いいたします!m(_ _)mm(_ _)m
837nobodyさん:04/08/24 04:00 ID:???
<?php
echo file_get_contents($_GET['content']);
?>
こんなの?
838nobodyさん:04/08/24 04:12 ID:???
>>836
例えばWin鯖なら、
http://xxxx.com/test/test.php?content=c%3A%5CDocuments%20and%20Settings%5C....
なんてされると、中身が丸見えになっちゃうよ。
839nobodyさん:04/08/24 04:31 ID:???
そこはちゃんとPHP側で禁止処理しないとな
840nobodyさん:04/08/24 05:43 ID:???
>>833
ttp://bugs.php.net/bug.php?id=26616
かなり前からバグ報告は上がってるが、ずっとopenのまま。
直す気は無いらしい・・・

>>826
以前試しにchmをUTF-8で作り直してみたことがある
ビュアがSJIS専用に作られているらしく、結局キーワードは文字化け
一部にSJISで表示できない文字もあるのに残念
(>>822>>825で修正してるけどね)

みんな困っているらしくて、php_manual_ja.chmでググると
直っているファイルが結構見つかる
841836:04/08/24 11:40 ID:???
>837さん

ありがとうございます!以下のようにしましたら上手くいきました!
これでサイドメニュー付きのフレーム無しページが作れそうです。

[test.php内]

<TABLE>
<TBODY>
<TR>
<TD>
<?php echo file_get_contents($_GET['content']); ?>
</TD>
<TD>
<a href="test.php?content=content01.htm">コンテンツ1</a><br>
<a href="test.php?content=content02.htm">コンテンツ2</a><br>
</TD>
</TR>
</TBODY>
</TABLE>

>838さん
>839さん

以上のようなソースのままではディレクトリを見られる危険性はあるということですね。
PHP側で禁止処理とは具体的にどういったものでしょうか?
それとも別な方法で、もっとスマートなやり方があるのでしょうか?
一応はググってみたのですがはっきりとわかりません。
教えて君ですいませんが宜しくお願いいたします。
842nobodyさん:04/08/24 12:27 ID:???
>>841
index.php?name=うんこ
とか、名前にうんこ入って飛んで来たらいややん、
受け取ったうんこをどうにかしたいよね。
if(ereg("うんこ",$_GET['name'])){$_GET['name']="";}
そこで、名前にうんこが入ったら、名前を空にするとか
843nobodyさん:04/08/24 12:30 ID:???
>>841
あと、Smartyでぐぐり スマートになるから
844nobodyさん:04/08/24 12:36 ID:???
>>841
ex)
$content=array('content01'=>'content01.htm','content02'=>'content02.htm');
if(array_key_exists($_GET['content'],$content)){
$view_content=$content[$_GET['content']];
}else{
$view_content='not_found.htm';
}
-snip-
<?php echo file_get_contents($view_content); ?>
-snip-
<a href="test.php?content=content01">コンテンツ1</a><br>
<a href="test.php?content=content02">コンテンツ2</a><br>
-snip-
845nobodyさん:04/08/24 17:40 ID:???
ShiftJISかEUC…どっちがいいんだろ
846nobodyさん:04/08/24 18:07 ID:???
俺はEUCで書いてるが
847nobodyさん:04/08/24 18:12 ID:???
SJISを選ぶメリットなんかあるの?
携帯相手に変換しなくてもいいってぐらいしか思いつかない
848nobodyさん:04/08/24 18:16 ID:???
>>845
ちゃんと設定していれば同じだろ。
開発環境とか鯖によって使い勝手が違う程度。
エンジン内部はUnicodeだったと思うが。
849nobodyさん:04/08/24 18:32 ID:???
PHPの内部処理デフォルト文字コードはEUC。
だからEUC推奨。
850848:04/08/24 18:36 ID:???
>>849
古い情報なんだけど、

http://ns1.php.gr.jp/pipermail/php-users/2002-June/008149.html
> mbstringは内部的に全ての文字コードをUnicodeに変換しています。
> つまり、UTF-8等を使うともっとも効率良く動作します。

ってあるのだが、変わったのか?
851nobodyさん:04/08/24 18:47 ID:JRjosLZb
俺はUTF-8で書いてるんだけどダメ?
XHTMLとRSS吐き出させてるから楽なんだけども。。
852軟式PHP:04/08/24 19:08 ID:???
文字コード議論はループするの巻(´・ω・`)
853nobodyさん:04/08/24 19:14 ID:???
コーディングはEUC
出力はSJISでやってる
854nobodyさん:04/08/24 19:37 ID:???
UTF-8でないと表示できない文字とかあるのでUTF-8
855nobodyさん:04/08/24 19:57 ID:???
厨質問で申し訳ないんだけど、
UTF-8で書くってのは・・・・
どんな設定のことを言うの?

まず、ソースの文字コードだよね?
あとブラウザに吐き出す header だよね?
テンプレートの文字コードだよね?

他には?
856nobodyさん:04/08/24 20:37 ID:???
なんでもかんでもEUCでいいじゃん
楽だから
857nobodyさん:04/08/24 20:37 ID:???
なにがいいたい?
858857:04/08/24 20:38 ID:???
>>855ね。
859nobodyさん:04/08/24 20:39 ID:???
>>855
馬鹿?
コーディングに決まってんだろ
860nobodyさん:04/08/24 20:47 ID:???
ぜんぶSJISがいいじゃん
861nobodyさん:04/08/24 20:54 ID:???
fsockopen を使ってpopと会話する様なコードを作成してるのですが
fgetsで取得毎に mb_convert_encoding($buffer, "EUC", "JIS") という処理をかませているけども
ヘッダの Subject 部分がどうしても普通の日本語表記になってくれないんです...

Subject: =?iso-2022-jp?B?SVRTUxskQkw1TkE/R0NHJTUhPCVTJTkkTiQ0MEZGYhsoQg==?=

↑こんな感じで

本文及びHTML全体の日本語部分は正常に変換・表示できているのに
ヘッダのこの部分だけなんとも出来ない状態です


もしかして、これは仕様でしょうか?
それとも、変換処理がまだなにか足りないのでしょうか?


どうか神のご加護を
862nobodyさん:04/08/24 20:57 ID:???
ttp://jp.php.net/manual/ja/function.mb-decode-mimeheader.php

phpにはこんな関数もあるんだな
便利だよなぁ
863nobodyさん:04/08/24 21:02 ID:???
とりあえず
>>845は絶妙なタイミングで定番のエサを撒くフィッシャー
864nobodyさん:04/08/24 21:12 ID:???
とりあえず
>>863は絶妙なタイミングで定番のスレの流れを止める馬鹿
865nobodyさん:04/08/24 21:17 ID:???
>>857
実際にUTF-8で運用するってなったら、
ソースの文字コードだけでなく、色々設定必要だよね?

ってか普通はコーディングのみUTF-8でやるってことなの?
(で、出力はSJISとか)

ってことはEUCで書いたコードを全部文字コード変換でUTF-8に変換すればいいってわけ?
866Tom:04/08/24 21:19 ID:l95C3MHe
PHP初心者です。現在、move_uploaded_file を使って画像ファイルを
ウェブ上のimageフォルダにアップロードするページを作っています。
しかしimageフォルダにファイルを移すためには、このフォルダの
パーミッションをゆるくしなくてはならず(一応テストでは777に
してます。。。)、セキュリティ面でちょっと心配なのですが、
皆さんはこのようなケースではどのように対策されているのでしょうか?

imageフォルダには一応、トップページにリダイレクトするindex.php
を入れていますが、他にも何かできること、対策がありましたら
是非ご教授いただけると幸いです。
よろしくお願いします!
867nobodyさん:04/08/24 21:19 ID:???
>>851
RSSって何を使って生成してますか?
PearのXML_RSS?
868nobodyさん:04/08/24 21:21 ID:???
>>866
“PHP(mod_phpならApache)がアクセスできるセキュリティ設定”ってことでいいのでは?
869nobodyさん:04/08/24 21:25 ID:???
>>866
basic 認証じゃダメ?
870nobodyさん:04/08/24 21:43 ID:BjXF/ulZ
>>866
わたしは特に気にしてませんね。
だってプロバイダとかが提供してるスペースにCGIおく場合も
パーミッション777とか755とかがデフォルトだし
871nobodyさん:04/08/24 21:47 ID:G+Zi/Jg+
管理人が殺された!!!
http://www2.ezbbs.net/04/235963
872nobodyさん:04/08/24 21:53 ID:???
あ、XML_RSSってRSSを作ることはできないのか・・・
873nobodyさん:04/08/24 22:05 ID:gv2tQqB7
新規質問です。
phpでxml宣言(<?xml〜?>)を出力したいときはecho以外にどんな方法があるでしょう?
教えて下さい凄い人。
874nobodyさん:04/08/24 22:07 ID:k28OQysD
>>873
print
ヒアドキュ
875nobodyさん:04/08/24 22:42 ID:???
>>873
php.ini で short_open_tag = Off
これを設定すると <? だけでなくて、<?= の形式も使えなくなるので注意が必要。
876nobodyさん:04/08/24 22:58 ID:9mq/YpZu
初めまして。質問です。
文字列をGETで渡す場合、例えば
test.php?url=http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=hoge&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
とした場合、"&"以下の文字列が受け取れません。
http://www.google.co.jp/search?hl=ja
↑こんな感じ。
理由は分かるのですが、最後まで文字列として受け取れるアイデアは無い物でしょうか?
877nobodyさん:04/08/24 23:02 ID:???
いや、受け取れるから
878nobodyさん:04/08/24 23:12 ID:???
>>877
http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=hoge&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
という文字列を受け取りたいみたい

>>876
わざわざGETで渡さなくてもPOSTで渡せばいいじゃん
その方がユーザにも悪戯されにくいし(気休め
879nobodyさん:04/08/24 23:16 ID:???
>>878
ああそういうことか。
&を何か別のセパレータに変えてGETで渡して
もらったところで、$_GET['url']を先ほどのセパレータで分割
とか?
880nobodyさん:04/08/24 23:19 ID:???
素直にurlencodeかrawurlencodeしてみては?
881nobodyさん:04/08/24 23:20 ID:???
$_SERVER["QUERY_STRING"]から抜き出すしかないだろ。
882879:04/08/24 23:20 ID:???
あ、ただ受け取るだけか。
http://google(ryの中の&を\tにでも変える。
んで、GETで渡す。
もらった奴の\tを&にもどす

つーのでいいのでは?
883nobodyさん:04/08/24 23:23 ID:???
普通に受け取れてる漏れは?
884nobodyさん:04/08/24 23:29 ID:???
>>883
URLエンコードされてるから
885nobodyさん:04/08/24 23:32 ID:???
>>884
その通り!!
886nobodyさん:04/08/24 23:52 ID:???
>>874
CLI版では流石に無効な罠……
俺strtrで置換させちまった
887876:04/08/25 00:25 ID:N00bMw4b
ありがとうございます。
$_SERVER['QUERY_STRING']で解決できました。
もう一つ、恥ずかしいのですが、"url="以下を取り出す際、
$URL = $_SERVER['QUERY_STRING'];
$URL = strstr($URL,"url=");
$length = strlen($URL);
$URL = substr($URL,4,$length);
としています。
なんか不恰好な気がするのですが、もう少しスマートなアイデアありませんか?
888873:04/08/25 00:37 ID:2ASjXTcy
>>874>>875
THX。

#age進行でいいのか・・・?
889nobodyさん:04/08/25 00:57 ID:???
>>887
$URL = $_SERVER['QUERY_STRING'];
$URL = substr($URL, strpos($URL,"url=")+4);
とか
preg_matchとか。
890nobodyさん:04/08/25 00:59 ID:hWDzpod0
>>887
おれならこうする。
$URL=preg_replace("/^url=/,"",$_SERVER['QUERY_STRING']);

891nobodyさん:04/08/25 01:00 ID:???
>>887
ていうか
$length = strlen($URL);
は何がしたいんだ?
892nobodyさん:04/08/25 01:06 ID:???
>>890
発想がちょうど逆だったw
preg_replace('/url=(.*)$/','$1',$_SERVER['QUERY_STRING']);
893876
再度感謝です。
もやもやがすっきりしました。よく眠れそうです。
>>891
長さを指定しなきゃいけないもんだと思い込んでました。
ありがとうございました。