トップページphp
1001コメント280KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん04/08/06 15:44ID:paJ4kjjQ
・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


抜けているものがあったら補足願います
0002nobodyさん04/08/06 15:45ID:paJ4kjjQ
過去スレ
【PHP】質問スレッドpart19【php】
http://pc5.2ch.net/test/read.cgi/php/1089929550/
0003nobodyさん04/08/06 15:50ID:paJ4kjjQ
関連スレ
Pear
http://pc5.2ch.net/test/read.cgi/php/985665522/

【PHP】Smarty【Template】
http://pc5.2ch.net/test/read.cgi/php/1047225437/
0004nobodyさん04/08/06 16:39ID:???
>>1
立てたら前スレにリンク貼れやボケが!
0005nobodyさん04/08/06 16:59ID:???
過去スレ
【PHP】質問スレッドpart19【php】
http://pc5.2ch.net/test/read.cgi/php/1089929550/

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

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

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


ってことじゃないの?

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


表とか十とか申とか化けてない?
0011nobodyさん04/08/06 18:28ID:???
ってか、設定変更するときは、本当にその問題なのか、
きちんと把握してから変更してね。
0012nobodyさん04/08/06 19:12ID:???
>>8
PHPの標準関数の中にはねぇな。
> Sorry, but the function checkauth is not in the online manual.
pearのAuthのやつなら pearのマニュアルのインストール部分を読んで入れれ
0013nobodyさん04/08/06 19:37ID:???
前スレ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にしないと
いけない状態。。
どうすればいいんだろうか。。
0014nobodyさん04/08/06 22:24ID:???
綺麗にかけよ
0015nobodyさん04/08/06 23:49ID:???
>>13
そんなディレクトリ構成にしたお前が悪い
0016nobodyさん04/08/06 23:55ID:???
777しろよ
0017nobodyさん04/08/07 00:01ID:???
707にしろ
グループは0にしとけ、マジで。
無料鯖はユーザーを同じグループにしてて普通に他人のディレクトリは入れるようなずさんなところあるから
どっちにしてもセキュリティのためにグループは0で
0018nobodyさん04/08/07 00:21ID:???
php5.0のphp.iniで
output_handler = mb_output_handler
と指定してもphpinfo()では"no value"となってしまいます。
mb_stringsを使いたいのですが、この項目は必要ないのでしょうか
0019nobodyさん04/08/07 00:24ID:???
[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用語辞典関連の検索キーで調べた浅はかで唯々諾々とやってきただけの知識か・・・。
0020nobodyさん04/08/07 00:25ID:???
http://board.aaacafe.ne.jp/read.cgi/php/1091350197/
0021nobodyさん04/08/07 00:37ID:???
>ちなみにバイトコードとはネイティブコードの中間にあたるコードの事。
全然違う。
仮想コンピューター上でのコードのことであって、
中間というわけではない。
0022nobodyさん04/08/07 01:04ID:???
しったかはもううんざい
0023nobodyさん04/08/07 01:09ID:???
うんざいだな
0024nobodyさん04/08/07 08:31ID:???
>>13
safe modeでmkdirはやめておけ。使い物にならない。
0025nobodyさん04/08/07 14:27ID:???
だな、始めに作っとく方がいい
0026nobodyさん04/08/07 17:26ID:I/AgGnLb
PHP版の更新時刻取得エージェント(アンテナ)を配布しているサイトを
ご存知の方はいらっしゃいませんか?海外のでも構いません…。
ぜひ参考してみたいと思いますので、どうぞよろしくお願いします。
0027nobodyさん04/08/07 21:00ID:???
GDを使用して元の画像から色を変更したいのですが
http://www.uploda.net/anonymous/etc2/upload25313.gif
こういう画像で(分かりにくいのですが左下を透過処理しています。)透過されてない部分の色を
任意の色に書き換えたいんですが可能でしょうか?
もし可能であればご教授お願い致します。
0028Tom04/08/08 00:20ID: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 \")' >";

?>

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

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

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

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

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

>>30
二重置換になってるぞw
0038nobodyさん04/08/08 12:25ID:???
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 = xx@xxxx.xxxxx.com (普段使ってるメールアドレス)
で試しました。;は外してあります。Apacheも再起動しています。

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

SMTP = localhostって自分のPCでメールサーバーを動かしてるよね?
0040nobodyさん04/08/08 13:28ID:???
<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が設定されていないんでねぇの?
0041nobodyさん04/08/08 13:29ID:???
>>39
うう、たぶんそれです。


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

?>
実行結果「Arrey」

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

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

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

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

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

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

こんなところから、とっかかればいいよ、などなど
アドバイスを頂ければと思っています。
宜しくお願いします。
0101nobodyさん04/08/09 14:35ID:???
classを使うことがオブジェクト指向ではありません。
まずは言語とは無関係にオブジェクト指向が何かを学ぶことをお勧めします。
0102軟式PHP04/08/09 16:21ID:???
そんな100は構造化手法。
Class使えればオブジェクト指向と思ってる100君には
「オブジェクト脳のつくり方」でも読んでみるといいかも。
0103軟式PHP04/08/09 16:36ID:???
あとC++だけど
憂鬱なプログラマのためのオブジェクト〜も読んでみれ。・゚・(ノ∀`)・゚・。
0104nobodyさん04/08/09 17:00ID:GoEzAwXJ
お聞きしたい事があるのですが、
array_uniqueを使うと、配列から重複した値を削除しますよね。
もし、重複した値を残したければどう処理すればよいでしょうか?
それ専用の命令はありますか??
0105nobodyさん04/08/09 17:06ID:???
何もしなければいいだけじゃん
0106軟式PHP04/08/09 17:14ID:???
<?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 );
?>
0107軟式PHP04/08/09 17:16ID:???
>>106
適当書いてみた(*´▽`*)
0108nobodyさん04/08/09 18:06ID:GoEzAwXJ
軟式PHPさん、
ありがとうございました。
array_diff_assocという関数があるのは始めて知りました・・・。
0109nobodyさん04/08/09 19:11ID:???
ってか、配列変数だけで網羅できないほどあるね。
0110nobodyさん04/08/09 19:27ID: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);

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

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

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

0.PHP
0118nobodyさん04/08/09 21:13ID:1E04QFET
漠然としすぎてよく分からん
機能だけ列挙したって意味がない
何が作りたいのかきちんと書け
0119nobodyさん04/08/09 21:16ID:???
出会い系だろ
0120nobodyさん04/08/09 21:21ID:???
file_get_contents関数で他サーバの内容をとりにいくとき、
UserAgentは「-」となっているみたい
(確認しました)ですが、
これを任意の文字列に変える方法はありますでしょうか?
0121nobodyさん04/08/09 21:53ID:???
GDで作成した画像を保存したいのですがどうしたらいいでしょうか?
検索してみたんですがそのまま表示するだけの解説しか見つからなくて・・・
よろしくお願いします。
0122nobodyさん04/08/09 22:11ID:???
>>121
ホントに検索したのか?!
http://www.php.net/manual/ja/function.imagejpeg.php
0123nobodyさん04/08/09 22:11ID:???
>>120
ini_setでPHPの設定を変更しれ。
ini_set("user_agent","hogehoge")
01246804/08/09 22:28ID: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);
?>
01256804/08/09 22:31ID:Wd+U0VKl
test.txtのないよう↓
ttp://rivernet.cool.ne.jp/upmini/200408a/20040809223111_.txt
0126nobodyさん04/08/09 22:49ID:???
>>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);
?>
012712004/08/09 22:52ID:???
>>123
あー、なるほど、ありがとうございます。
0128nobodyさん04/08/09 23:03ID:uySv1+mC
>>126
は?頭悪いの?
01296804/08/09 23:06ID:Wd+U0VKl
>>126
これでも駄目です。
0130Imo ◆.jC7ANgFY. 04/08/09 23:54ID:???
>>129
どういう風に表示されるのか今ひとつわからない。

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

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

って、これじゃなかったらスマソw
0132nobodyさん04/08/10 00:47ID:???
表示がおかしいじゃ意味わからんよな。
何がどうなのか説明もできないのか?
0133nobodyさん04/08/10 01:22ID: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』が
実行されれば良いのではないかと思うんですが、そのやり方をどなたか教えて下さいませ・・・。
0134nobodyさん04/08/10 01:36ID:???
>>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;

めちゃくちゃ単純に書いてみた。(これだと問題ありすぎなのはわかってるけどツッコまないで>エロイ人)
これ以上は自分で考えて。
考えられないなら、オマエには向いていないから諦めたほうが良いと思う。
0135nobodyさん04/08/10 02:12ID:???
>>134
おまえエロイなあ
013613304/08/10 02:17ID:???
>>134
早速のお答え、ありがとうございます。
なるほど、caseを使うやり方ですか・・・。
私はてっきり、if〜文で作るのかと思ってました。
しかし難しいですね。なんかアナタのおっしゃるとおり、諦めかけてます・・・
0137nobodyさん04/08/10 02:19ID:???
>>136
友達に頼んだほうが早いよ!まじで。
013813304/08/10 02:35ID:???
>>137
仲間内の中では自分が一番知ってるんですよw
いきなり専門外のPHPによるデータベース検索を作らなくてはならなくなったので、
このように四苦八苦している訳です。
perlのcgiみたく、フリーのサンプルスクリプトが全然無いので困ってしまいます。
「PHPによるWebアプリケーションスーパーサンプル」って本も買ったんですが、
私のやりたいようなサンプルがありませんでした。
ネット検索してやっとPHPサンプル見つけても、大体が掲示板とかなんですよね。
まだまだ先は長そうです・・・。
0139nobodyさん04/08/10 02:47ID:???
>>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の入門書をサラッとやったほうが、
結構なんとかなると思うよ。がんがれ。
0140nobodyさん04/08/10 02:50ID:???
あっ break;取り忘れた 
014113404/08/10 02:56ID:???
>>139
誤字までコピペしなくても・・・
fomって何だよw

・・・あ、俺だ

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

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

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

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

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

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

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

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

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

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

$data = strtolower($data);

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

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

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

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

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

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

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

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

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

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

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

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

require_once は知らない。
あと出来ない方がいいってのも事実。safe_mode で運用しような。
0198nobodyさん04/08/11 14:00ID:???
できるわけないじゃん
019918704/08/11 14:25ID:???
親切に皆さん有難う御座います。
行いたかったのはエラーの関数等を読み込んで
結果を別のPHPで行いたかったのです。
しかしそれが出来たら怖いですよね…
勉強が足りないです。ありがとう御座いました。
0200軟式PHP04/08/11 14:52ID:???
共通関数作ってライブラリ化してそれを読み込むってんなら常套手段だが
他サーバーってのがよく分からんのだが。
0201nobodyさん04/08/11 14:54ID:???
たぶん、エラー処理用のスクリプトがあって、それをrequireしたかったと
言ってるのだろうから、素直にコピーしたら良いのでは?
0202軟式PHP04/08/11 14:57ID:???
そだよね。なんで他サーバー・・・?(´・ω・`)
0203nobodyさん04/08/11 14:59ID:???
インターネットと仮定しているからあれだけどLAN等で複数のサーバーが
あった場合なら出来そうな気がするのですが、それは先読みし過ぎだろうか^^;
LANで接続されている環境であれば共有したい事もあるだろうしね
0204nobodyさん04/08/11 15:02ID: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してくれません。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


$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>";
0215nobodyさん04/08/11 18:28ID:???
ウンコー
__$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);
0216nobodyさん04/08/11 21:17ID:???
リモートファイルの最終更新日を拾得するには
allow_url_fopenを有効にするしかないのでしょうか?
0217>>21304/08/11 22:18ID:???
$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);

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

if($file == 20..00)

どのように変更したら良いのでしょうか?
0219nobodyさん04/08/11 23:50ID:???
性器表現
0220nobodyさん04/08/12 00:34ID:???
"U" 性器表現むずい
0221nobodyさん04/08/12 00:36ID:???
if(ereg("20[0-9]{2}00",$file)){echo "U";}
0222nobodyさん04/08/12 00:53ID:???
>>211
俺はImageMagickに逃げた。
0223nobodyさん04/08/12 01:07ID:???
functionの中でfunction以外のところで定義した変数は使えないんでしょうか?
0224nobodyさん04/08/12 01:18ID:???
使わない方が身のためです
0225nobodyさん04/08/12 01:48ID:???
>>222
どもー
ImageMagickはICCが埋め込みできるんですか?
ってググってみますー
ありがとねん!
0226nobodyさん04/08/12 01:52ID:???
>>223
マニュアルくらい読もうよ・・・
0227nobodyさん04/08/12 08:44ID:aDJWVDD6
>>223
localとglobal...プログラミングのアロハでつね
0228nobodyさん04/08/12 09:35ID:???
ページ切り替えって
headder "Location:index.html";
だっけ?
0229nobodyさん04/08/12 10:02ID:???
/public_html/fairy/page/item/touroku.phpから
/public_html/fairy/data/clist.cgiまで飛ぶのに
.../data/clist.cgiじゃだめなのか?
0230nobodyさん04/08/12 10:03ID:???
多分そんな感じ。
023122904/08/12 10:07ID:???
$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
だって;;
だめだ_| ̄|○
0232nobodyさん04/08/12 10:09ID:???
普通こうじゃね?
../../data/clist.cgi
023322904/08/12 10:11ID:???
>>232
おお、あり!
どうやら.../はCGIしか無理だったようだ・・・

$time = data("Ymd");
にするとエラー出るぽウワァァァァァン
Call to undefined function: data()
0234nobodyさん04/08/12 10:12ID:???
dateじゃね?
0235nobodyさん04/08/12 10:13ID:???
パスの指定はCGI云々関係ないし。
023622904/08/12 10:18ID:???
>>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);
データが書き込まれないぽ
0237軟式PHP04/08/12 10:22ID:???
間違え探しワロタ。素直になれよ・・な?初心者君。
023822904/08/12 10:32ID:???
素直になったぽ!
間違い見つかったので糸冬キボン
0239nobodyさん04/08/12 10:33ID:???
$allってカウントした数字だよね?
$fp = fopen($all,"w");
$fp = fopen($slist,"w");じゃないの?

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

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

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

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

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

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

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

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

詳しくはGoogleとかで検索してね。結構出てくるよ。
0289nobodyさん04/08/12 22:04ID:???
//-------------------------------------
// プロキシからアクセスしているか
//-------------------------------------
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";
0290nobodyさん04/08/12 22:04ID:???
//判定
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;
}

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

〜〜
<?php
while(1){

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

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

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

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

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

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

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

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

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

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

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

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

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

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

$J = "S";

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

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

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

でいいかな

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

よろしくです。
0329nobodyさん04/08/13 20:15ID:???
$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]」となるんですが
なぜでしょうか?
0330nobodyさん04/08/13 20:22ID:???
>>328
>>150-161
0331nobodyさん04/08/13 20:26ID:???
その場合は普通に

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

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

<?php処理2?>

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

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

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

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

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

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

PHP 4.3.x は $instance = new Class(); としたときにインスタンスの
コピーを返します。
シングルトンパターンなどで、毎度同じインスタンスを利用したい時は
リファレンスを使います。くわしくは参照先で。
0350nobodyさん04/08/14 01:34ID:???
<?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]に当たるリンクを押しても
ああああああの文字列が表示されないんですが、いったい
どこが間違ってるんでしょうか・・・
0351nobodyさん04/08/14 01:49ID:???
>>350
print "_GET['page'] : ".$_GET['page']."; page : ".$page; を仕込んで
表示されるかどうか試してみ
0352nobodyさん04/08/14 03:10ID:???
readdir() は読み込む順番がランダムなので、多分それが原因。
0353nobodyさん04/08/14 03:32ID:RcWJyX8g
えっと。
function abcd($1,$2,$3) {

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

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

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

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

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

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

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

0358nobodyさん04/08/14 10:11ID:???
>>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

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

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

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

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

上のようなXML文書を、 simplexml_load_fileで読み込んで、下のような形式で子ノードの一覧を出力したい
と思っています。
 son
 jiro
 sab
 white
その場合、どうすればいいのでしょうか?
0365nobodyさん04/08/14 15:28ID:???
son
jiro
 :
ではなく、
taro
jiro
 :
でした、すいません。
0366nobodyさん04/08/14 15:36ID:???
せっかく PHP5 やってんなら SimpleXML 使ったら?
ドキュメントがまだ十分に無いから、使い方とかどこかに書き残すと重宝されるよ。
0367nobodyさん04/08/14 16:18ID:???
教えてください。
現ディレクトリ以下の下位ディレクトリのファイルの取得は
どうすればいいんでしょうか。
0368nobodyさん04/08/14 16:22ID:???
>>367
./現ディレクトリ/下位ディレクトリ/ファイル
または
下位ディレクトリ/ファイル
036936404/08/14 17:11ID:???
すいません、説明がいくらなんでも ひどすぎました。
要するに、要素名を得たかっただけなのですが……SimpleXMLには、そういった関数が用意
されていないみたいです。じゃあ、どうやって要素名を得ればいいのか――が、今回の質問で
あります。
0370nobodyさん04/08/14 18:38ID:???
>>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);
?>
037136404/08/14 19:15ID:???
>>370
! なるほど、そうすれば良かったんですか。
どうもありがとうございました、これでガリガリ作業が進められます。
0372nobodyさん04/08/14 19:41ID:???
function test($array)
{
 array_push($array,"test");
}
$a = array();
test($a);
print count($a);

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

もしくは

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

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

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


これでOKじゃね??
0390nobodyさん04/08/14 23:20ID:???
$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).;
0391nobodyさん04/08/15 00:02ID:???
鯖の影響で変数に格納できないってことある?
変数に何入れても空白なわけだが・・・
0392nobodyさん04/08/15 00:12ID:ThpZR4Ya
C-BOARDで、投稿画面に追加したセレクトボックスの
投稿データチェック(未選択不可)を行いたいのですが、
どうすればいいのですか?

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

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

#── パスワードをチェック
($::FORM{'key'} =~ /[<>&"]/)
&& &::error(\('パスワードに「<, >, &, "」は'
. '使えません。'));
0393nobodyさん04/08/15 00:16ID:???
>>391
釣れますか・・
039439204/08/15 00:16ID:ThpZR4Ya
すいません、間違ってPHPのところに質問してしまいました。
申し訳ないです....
0395nobodyさん04/08/15 00:37ID:nLnvBjde
PHPLIBダウンロードしたら本家が切れてるんやけど。誰かおいてること知らない?
本家    http://phplib.netuse.de/index.php3
ファイル名 phplib-7.2c.tar.gz
039639504/08/15 00:37ID:nLnvBjde
「したいと思ったら」の間違い。すぽ。
039739404/08/15 00:42ID:nLnvBjde
虚無で探してたらすぽんと見つかった。逝ってきます。
https://sourceforge.net/project/showfiles.php?group_id=31885&release_id=44737
039839104/08/15 00:52ID:???
スマンが真剣だ
0399nobodyさん04/08/15 01:02ID:???
>>398
ありえんと思うが、検証できる最低限のコードを晒して味噌。
モノ好きが吊れてくれるやもしれん。
0400nobodyさん04/08/15 01:07ID:???
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 デツ
0401400(391)04/08/15 01:08ID:???
ちなみにindex.phpでもhttp://〜/page/main.php デツ
誰か釣れてやってください;;
0402軟式PHP04/08/15 01:15ID:???
<?php
のあとに
$mode = $_REQUEST["mode"];
をいれてみ。
0403軟式PHP04/08/15 01:17ID:???
UNIXタイムスタンプで管理って2038?年だっけかその辺までしか対応出来ないべ。
しかしお盆どうすっかなぁ( ´-`)
0404カポコン04/08/15 01:30ID:???
墓参り行くべ〜〜(´_`)§ll
040539104/08/15 01:32ID:???
>>402
ありがと、早速やってみま〜!
(と思ったら鯖落ちてるよ〜;;)
0406nobodyさん04/08/15 01:50ID:???
あれで鯖のせいにするとは鯖がかわいそう・゚・(つД`)・゚・
0407nobodyさん04/08/15 01:50ID:???
>>403
2037年になったら考えたらいいべ
0408nobodyさん04/08/15 01:54ID:???
つか、共用鯖でテストしてる悪寒…
0409nobodyさん04/08/15 04:03ID:???
くだらない質問かもしれませんが…
BBSのログ等を表示する際の処理は
for foreach while
どれが効率良いでしょうか。
ご教授願います。
0410nobodyさん04/08/15 04:25ID:???
だいぶ前にここで速度比較してたよね
その時の結論は忘れたけど
俺はあんまり気にせず、状況に合わせてソースがきれいに書けるやつを選ぶ
0411nobodyさん04/08/15 04:38ID:???
>>410さん
そうなんですか。
速さよりもどれが負荷が少ないかなと思いまして。
でもそんなには変わらないのですかねー。
有難うです!
0412nobodyさん04/08/15 09:01ID:???
WindowsでPHP5.0.1をインストールし、コマンドラインから使ってます。
なんか、namespaceとかprivateとかの新機能が使えないんですけど、なぜですか?
心当たりがあれば教えてください。
0413nobodyさん04/08/15 09:41ID:???
>>409
1.while 2.for 3.foreach と予測してみる
0414nobodyさん04/08/15 09:51ID:???
設定ファイルで設定した内容をプログラムのほうで変更することはできますか。
具体的にはinclude_pathに追加したい。
0415nobodyさん04/08/15 10:02ID:???
ini_setかな?そのあたり
0416軟式PHP04/08/15 11:53ID:???
確かにforeachは一番遅そうだなw
俺も410のように保守性を重視するよ。
0417nobodyさん04/08/15 12:11ID:???
<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>
としてるんだが、変数が格納サレマセン。なぜでつか?
0418nobodyさん04/08/15 12:16ID:???
>>417
action="info.php"として info.phpの中身はphpinfo();のみ。
表示されたhtmlの中でセックルを探してみ
0419nobodyさん04/08/15 12:23ID:???
Warning: Cannot modify header information - headers already sent byって何ぽ?
042041704/08/15 12:23ID:???
>>418
Request使えば変数が入るんだが・・・なぜだ?
0421軟式PHP04/08/15 12:44ID:???
>>419
いやそのままと思うけど。既にヘッダーが出力されているから
header()は使えないってことだよ。header()周り見てみ。
何か出力してるところがあるはず。
0422nobodyさん04/08/15 12:53ID:???
>>415
さんくす。
042341904/08/15 12:55ID:???
ちなみにこれだけでつ;;
<?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");
?>
0424nobodyさん04/08/15 12:59ID:???
>>423
ヘッダー出力できない警告の前にほかのエラーか警告が出てるんじゃないの?
042541204/08/15 13:18ID:???
privateがエラーになったのは、「private $x;」と書かなければならないところを
「private var $x;」と書いていたためでした。ばかです。

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

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

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

もし、modeに「aiueo」が格納されているとして
「./page/aiueo.php」がない場合に他の処理を行いたいんだが・・・
どうすればよい?
0432nobodyさん04/08/15 17:09ID:???
>>431
あきらめることをお勧めします。
0433nobodyさん04/08/15 17:20ID:???
>>431
file_existsじゃ不満なのか
0434nobodyさん04/08/15 17:43ID:???
>430
<Files ~ "^[^\.]+$">
ForceType application/x-httpd-php
</Files>
0435nobodyさん04/08/15 17:45ID:???
<?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";
}
?>

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

お約束。
044444404/08/15 21:37ID:???
<?
$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);
044544404/08/15 21:38ID:???
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>";
?>
044644404/08/15 21:39ID:???
上記のプログラムcounter.php
これをincludeでページに貼ったのですが、
ページを表示して実行するとカウントされずに
ttynt.cgiというプログラムができます;;
なぜでしょうか?
0447nobodyさん04/08/15 22:03ID:???
include する前にこれは動くのか?
0448nobodyさん04/08/15 22:04ID:???
php,perl両質問スレ
なんかこう、、、夏真っ盛りだな・・・
このスレはクエリをそのまま変数に勝手に入ると思ってるのもいるし(?mode=xx→echo $mode)
もうね、アホかと
0449nobodyさん04/08/15 22:06ID:???
>>448
> $mode = $_REQUEST["mode"];
0450nobodyさん04/08/15 22:14ID:???
>>449
いやそれは分かってるけど
${クエリでの名前}に勝手に入ると思ってる奴が居るってこと
0451Imo ◆.jC7ANgFY. 04/08/15 22:21ID:???
>>443
どっかのPHPのセキュリティーに関する書籍で
$mode = str_replace('../', '', $_GET['mode']);
にすればいい、とかかいてるダメなやつがあったな。
〜.php?mode=....//....//
ってどうなるんですかと問いたい。問い詰めたい。小一時間(ry
# と、愚痴をもらしてみる。
# そもそもそういうクエリを送ってくるやつははじくべきなんだよ。
0452軟式PHP04/08/15 22:21ID:???
global_registerをONにすれば入るよ( ´▽`)ノ
まぁ、マルチはいくないな。
0453nobodyさん04/08/15 22:23ID:???
>>450
ああ、>>400 以降ね。

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

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

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


セキュリティを意識して欲しいだけで。バッドノウハウはびこりすぎなんで。
しっかりしたアプリケーションが書ければどこから何突っ込まれようと大体は大丈夫だ。
取り敢えず変数を区別しないのはマズい。
一つの変数を二つの意味で使うとか、由来を考えずに使うとか、ユーザーからの入力値を深度の限界無しに受け付けてるとか。
0455444,445,44604/08/15 22:31ID:???
なんで勝手にファイルが作られるかねぇ・・・
0456nobodyさん04/08/15 22:36ID:???
PHPでperlのサブルーチンと同じような機能ってやっぱりfunctionでしょうか?
0457nobodyさん04/08/15 22:44ID:???
>>456
でつ。
045845604/08/15 22:52ID:???
>>457
レスありがとうございます。
0459Imo ◆.jC7ANgFY. 04/08/15 23:03ID:???
>>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の時も同様にしておくといい
# 場合によれば改行系列も省いた方がよい場合がある
0460nobodyさん04/08/15 23:08ID:???
preg_match('/[^\w]/', $_GET['mode']) and die('不正クエリ');
0461nobodyさん04/08/15 23:48ID:???
>>459
参照先ディレクトリの制御に限った話でつか。

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

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

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

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

↑がよく解らないんだけど、
必要なディレクトリ名を配列に入れて、その数だけループさせたら?
0465nobodyさん04/08/16 02:40ID:???
>>463
まぬあるにヒントが!
http://jp2.php.net/manual/ja/function.mkdir.php
0466nobodyさん04/08/16 02:47ID:???
>>464さん>>465さんありがとー

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

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

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

$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入れて目的の事は完成です。
お世話になりました!
0468nobodyさん04/08/16 05:54ID:gbbwkQJr
ローカルのファイルのパーミッションを変更するにはどうすればいいでしょうか
0469nobodyさん04/08/16 06:33ID:???
chmod

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

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

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

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

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

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

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

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

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

それとSJISでPHPのスクリプトを書くなら、
http://www.geocities.jp/rui_hirokawa/php/
じゃないと駄目。
0506nobodyさん04/08/16 23:19ID:???
https://www.stackasterisk.jp/tech/php/phpMvc01_02.jsp
って使えますか?
0507nobodyさん04/08/17 00:28ID:???
>>506
何に?
0508軟式PHP04/08/17 00:35ID:???
 _, ._ ∩
( ゚д゚)彡 サァ!!
 ⊂彡
0509nobodyさん04/08/17 00:46ID:???
おっぱいには使えないね
0510nobodyさん04/08/17 03:43ID:???

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

fileA
include('fileB');

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

> mkdir() 処理を行うディレクトリが実行するスクリプトと同じUIDを有しているかどうかを確認します。
0544nobodyさん04/08/18 12:48ID:???
>>543
なるほどw
UIDってなんですか?
0545軟式PHP04/08/18 12:54ID:???
vodafoneの端末固定IDです。
0546軟式PHP04/08/18 12:55ID:???
あと、Docomoも。・゚・(ノ∀`)・゚・。
0547軟式PHP04/08/18 13:08ID:???
○| ̄|_ スンマセン
0548541=54304/08/18 14:30ID:???
付き合いきれねぇよ ヽ(´ー`)ノ 俺知らね
0549nobodyさん04/08/18 15:06ID:???
wwwww
0550軟式PHP04/08/18 15:29ID:???
「なるほどw」ってところがポイントだな。
0551nobodyさん04/08/18 15:33ID:???
プロ釣師
0552nobodyさん04/08/18 15:58ID:???
Cannot modify header information - headers already sent by (output started at /usr/home/free/home/market/public_html/mmorpg/index.php:4)
ってなんだよウワァァァァン
0553軟式PHP04/08/18 16:17ID:???
>>552
今すぐCTRL+Fを押して「modify」と入れて検索してみるといいよ。
0554nobodyさん04/08/18 16:17ID:???
>>552
そのエラーメッセージを訳したらどうなる
ちゃんと英語を読め
055555204/08/18 16:23ID:???
ヘッダー情報を修正することができません。
0556軟式PHP04/08/18 16:32ID:???
>>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 ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
055755204/08/18 16:37ID:???
スマン、サパーリだ_| ̄|○
0558nobodyさん04/08/18 16:38ID:???
ヘッダーは既に (・・・・・・) で 送信されている。
0559nobodyさん04/08/18 16:39ID:???
頼むから読んでくれ.辞書の引き方くらい中学校で習っただろ.
> headers already sent
056055204/08/18 16:40ID:???
・・・つまりヘッダーは1個しか無理ぽ系?
0561nobodyさん04/08/18 16:40ID:???
header() とか setcookie() とか の前に
echo とか print とかしてると 起こりやすいね。
056255204/08/18 16:42ID:???
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");
}
?>
0563nobodyさん04/08/18 16:43ID:???
>>562
> Cannot modify header information
の前に何かエラーか警告が出力されてないか
<?php の前に改行や空白がないか
056456204/08/18 16:50ID:???
エラーはこれ一つだけです
空白もナイポ
0565nobodyさん04/08/18 16:54ID:???
ぽ$って
マジきもいんだけど
0566nobodyさん04/08/18 16:57ID:???
locationのhttp:が全角なんだけどこれは意図的にやってるんだよね
それからエラーの出ているHTMLのソースはどうなってるかよく見てみれ
0567nobodyさん04/08/18 17:11ID:???
ほれ、訳してやったぞ。
ヘッダー情報-、(/usr/家/自由な/家/市場/public_html/mmorpg/index.php
で始められた出力: 4)既に送られたヘッダー-を修正することができません。

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

jcode.phpとかだと半角カナをうまく使えないですし、
かといってレンサバなのでphp.iniをいじくったりモジュール追加できないので悩んでいます。
0603nobodyさん04/08/19 11:16ID:???
includeでCGIを挿入できたっけ?
060460204/08/19 11:22ID:???
>>603
よく読んでみてください
jcode.cgiじゃなくてjcode.phpですよ
0605nobodyさん04/08/19 11:26ID:???
includeって拡張子は何でも良いのでは?
0606nobodyさん04/08/19 11:43ID:???
includeでCGIを呼び出そうとしたらCGIの中身が出てきますた
0607nobodyさん04/08/19 11:43ID:???
>>602
jcode.phpって半角カナで何か不具合あるの?
0608nobodyさん04/08/19 12:02ID:???
Shift_JISはあちこちでマルチバイト対応に迫られるね
そもそもjcode.phpって必要
0609nobodyさん04/08/19 12:03ID:???
$2ch['php']['1091774679']['body'] .= '?';
0610nobodyさん04/08/19 12:26ID:???
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

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

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

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

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

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

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

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

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

ありがとうございました!
0634nobodyさん04/08/19 16:43ID:???
>>632
630ではないが、rtrimってこういう使い方もあったのか・・・知らなかった
「/」が可能という事は全ての文字で利用出来るという事ですね
0635nobodyさん04/08/19 16:45ID:???
「この関数は文字列の最後から空白文字を取り除き、 取り除かれた文字列を返します。
rtrim()は以下の文字を削除します。」と書いてあるが空白文字以外でも利用出来るなら
そう書いてくれよ
0636nobodyさん04/08/19 16:49ID:???
>>635
書いてると思うが?
ttp://php.s3.to/man/function.rtrim.html
0637nobodyさん04/08/19 17:24ID:???
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;
}
こんな感じにしたいのです。
0638nobodyさん04/08/19 17:39ID:???
なるほど
0639nobodyさん04/08/19 17:58ID:???
>>635
string rtrim ( string str [, string charlist])
[]はオプション。お前オプション注意して見たことないだろ?
phpの関数には至る所にオプションがある
0640nobodyさん04/08/19 18:22ID:???
_ = 半角スペース

<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]) で時刻を
抜き出していますが、最初のパターンで、更新時刻もきれいに取得したいのです
もう少しコンパクトにすることはできないでしょうか?

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

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

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

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

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


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




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


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

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

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

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

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

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

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


    どこまで行クマ?
\   ̄∨ ̄ ̄ ̄ ̄ ̄ ̄    (´´
  \(⌒-⌒)   o       (´⌒(´
   (・(ェ,,)・ )つ⌒`つ≡≡≡(´⌒;;;≡≡≡
          ̄ ̄     (´⌒(´⌒;;
      ズザーーーーーッ
0706nobodyさん04/08/20 17:40ID:???
>>702
global は綺麗にスクリプトを書こうとする時邪魔なので
class化してvarにまとめる事をオススメする
070770604/08/20 17:42ID:???
>>706 s/702/701/
0708nobodyさん04/08/20 17:56ID:???
バイナリデータを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にしたら少し速くなった
これくらいしか思いつかないのでよろしくお願いします。
0709軟式PHP04/08/20 18:04ID:???
class hoge
{
var $zz;
function a()
{
$this->zz = 1234;
}
function b()
{
echo $this->zz;
}
}
0710Imo ◆.jC7ANgFY. 04/08/20 18:07ID:???
>>708
unpackの配列つかえば一発。
0711nobodyさん04/08/20 18:09ID:???
>>708
バイナリデータを一旦16進数にする意味はあるのか?
0712nobodyさん04/08/20 18:23ID:???
〜略
$hdata = unpack("C*",$bdata);
$i=1;
while($i<=$size){
 $ddata = $hdata[$i];
 $i++;
}
略〜

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

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

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

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

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

ありがとうございました。
0725nobodyさん04/08/21 00:39ID:???
PHPプログラムのチューニング、またはプロファイラについて説明したページありませんか?
0726nobodyさん04/08/21 00:41ID:???
>>724
phpではそういう形式で開くようになってる
perlは違う
0727nobodyさん04/08/21 01:25ID:???
>>724
探し方が足らんな。
CLI版なら標準入力を表す定数があるし、
いちいちオープンしなくても入出力できる。
0728nobodyさん04/08/21 14:03ID:???
htmlに出力するところで
echo "<p class=\"2ch\"><? include 'inc/giko.inc'; ?></p></div>";
とやると<? include 'inc/giko.inc'; ?>の部分がそのままでてきてしまいます。
これを出力するにはどうしたらいいでしょうか?
?>で一旦閉じる方法も考えましたが、それだとincludeが全部出力されてしまいちょっと都合が悪いのです。
0729nobodyさん04/08/21 14:28ID:???
ダブルクオートの中で命令が使えるわけ無いだろう。
もし使えたら予約語の文字列を全て把握しなければならない上、
びくびくしながらプログラムを組まなければならなくなる。
0730nobodyさん04/08/21 14:29ID:???
>>728
現在の状況と期待する内容が良く分からんが、
giko.incをphpスクリプトとして実行したいってことなら、
giko.incが <?php 〜 ?>の形式になってないだけじゃないの?
include()の説明を良く見てみ。
073172804/08/21 14:44ID:???
>>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内テキスト)
としたいわけです。
0732nobodyさん04/08/21 14:49ID:???
<?
echo "<p class=\"2ch\">";
include 'inc/giko.inc';
echo "</p></div>";
?>
これで確実にOKと思う
073372804/08/21 14:55ID:???
>>732
おお、いけました。ありがとうございました。
0734nobodyさん04/08/21 16:13ID:???
ファイルの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;
}
としてやったのですが、うまく計算できませんでした。
どのようにすればうまく計算できるでしょうか?
0735nobodyさん04/08/21 16:28ID:???
http://php.us.themoes.org/manual/ja/function.crc32.php
の下のほうにcrc16のサンプルがあるよ
使えるかどうか知らないけどね
0736nobodyさん04/08/21 16:35ID:???
>>727
教えてくれ。
今、コマンドラインで使うスクリプト書いてるが、stderrに吐くのを簡単にしたい。
0737nobodyさん04/08/21 16:48ID:???
>>736
php -r 'fputs(STDERR," イ   ヤ   だ   ! ! !");'
0738nobodyさん04/08/21 16:55ID:???
>>737
エラー
073973404/08/21 17:00ID:???
>>735
それ、http://jp.php.net/crc32 と同じです。
そして、うまくいきません。
0740nobodyさん04/08/21 17:40ID:???
>>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);
0741nobodyさん04/08/21 17:57ID:???
>>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;
}

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

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

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

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

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

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



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

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

ここの人はperlから来たてでイライラしてただけじゃない?
0755nobodyさん04/08/22 10:35ID:???
>>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);
?>
多分、関数の前に & を付けると関数からの返り値には関数内の変数の
リファレンスが返ってくるということだろう。
よく分からなかったらあまり使わない方が安全かもしれないけど。
075675504/08/22 11:21ID:???
一応捕捉。
デザインパターンで使われる singleton などはこの方法を使って実現している。
以下のサイトの説明が分かりやすい。

ttp://www.pat.hi-ho.ne.jp/dimension/sample/sample_class_dp_singleton.shtml
0757nobodyさん04/08/22 11:59ID:???
php+IISの環境にNamazuをインスコしたいのですが
どうやったらいいのでしょうか。
0758nobodyさん04/08/22 12:05ID:???
こんにちは
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などをやりたいのですが。
よろしくお願いします。
0759nobodyさん04/08/22 12:23ID:???
('A`)
076075304/08/22 13:26ID: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内のリファレンスとは関係ない?
076175504/08/22 14:12ID:???
>>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 のソースを読んで確認した訳でもないのでもしかしたら間違っているかもしれないけど。
0762nobodyさん04/08/22 15:48ID:E2HwDzLs
MySQLのphpmyadminでOverload ってのがありますが、
これって負荷と同義で考えて問題ナッシングでしょうか?
076375304/08/22 16:11ID: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(); でも同じ結果ですね。
リファレンスを得るか値を作るかが違うだけで。

076475304/08/22 16:21ID: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;
とあることから、....コード....で、作られたオブジェクトと考えていいのでしょうか。
「リファレンスを使う最大の目的はインスタンスの複製を行わないでメモリ消費を抑える」
ということから、あえて自明として....コード....の部分でオブジェクトを作ってると
マニュアルには記述してないのかなと思いますが。

合ってる?
それとも、「->」ってインスタンスのメンバにアクセスする以外の使い方で用いてるのかな?
0765nobodyさん04/08/22 16:44ID:???
>>762
DB板の方が適切だと思うよ
076675504/08/22 17:50ID:???
>>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);
0767nobodyさん04/08/22 18:36ID:???
サイトに会員制の部分をつくりたいのですが、パスワードをセッション
変数として保持しながらページを作成していくと、javascriptの
history.back()を使用してページを戻るときに「有効期限切れ」と
なってしまいます。

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

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


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

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

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

 <br />

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

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

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

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

ttp://127.0.0.1/~php/index.php?get=get
の場合…
print $_GET["get"];
/* 結果↓ */
get
0808nobodyさん04/08/23 23:12ID:???
>>807さん詳しそうですね。
もっといろいろ知りたいのですが、質問してもいいでしょうか?
0809nobodyさん04/08/23 23:13ID:???
うっ、プロと見た!
0810nobodyさん04/08/23 23:22ID:???
>>808
答えられる範囲なら。
眠いからもう寝るかも。
0811nobodyさん04/08/23 23:31ID:???
今、HTTPサーバ作ってるんですけど、pukiwikiがうまく動かないんです。
phpinfo()も、ロゴが表示されません。
たぶん、CGIの子プロセス側に与える変数が不足してるような気がするんだけど、
最低限必要な変数の一覧ってどこかに無いですか?
CGI/1.1Specは全く不十分でした。
そもそも変数をどうやって渡すかといった規定すらなく、
色々試してみるしか有りませんでした。
0812nobodyさん04/08/23 23:34ID:???
それとも、PHPはCGIで起動すると機能制限があるのかな?
0813nobodyさん04/08/23 23:38ID:???
在るわけない
SafeModeはmod_phpのみ
0814nobodyさん04/08/23 23:38ID:???
>>811
PHPのバージョンが古いんだよ。でバージョンは?
0815nobodyさん04/08/23 23:41ID:???
そうですか・・・
PHP Test Suiteとかないかなぁ?
0816nobodyさん04/08/23 23:43ID:???
バージョンは、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
こんなの。
0817nobodyさん04/08/23 23:51ID:YOffYGPl
>>804

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

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

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

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

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

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

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

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

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

やりから教えてたもられ
0827nobodyさん04/08/24 00:03ID:???
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
いまいち意味が・・・
待てって意味なのかな??
0828nobodyさん04/08/24 00:04ID:???
あー、ホントだ、キーワードだめだめだな…
で、こんなページ見つけたから参考にしてみて
ttp://apollo.u-gakugei.ac.jp/~sunaoka/misc/php_manual_ja/
0829nobodyさん04/08/24 00:07ID:???
その勢いで、CGIのほうもよろしくお願いします。
0830nobodyさん04/08/24 00:34ID:???
http://o2on.s69.xrea.com/index.php?The%20O2ON
ここに圧縮してアップしました。
CGIがさっぱりです。
0831nobodyさん04/08/24 01:00ID:???
>>828
うぉぉぉぉおおおお!ありがてー
ずっと困ってたんだよね<文字化け
ていうかこんなの本家でなんとかしる!
0832nobodyさん04/08/24 01:15ID:???
>>831
そうだね 
083380204/08/24 01:19ID:???
>>828

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

test.php内で

<?php include($content); ?>

と記述して

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

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

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

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

みんな困っているらしくて、php_manual_ja.chmでググると
直っているファイルが結構見つかる
084183604/08/24 11:40ID:???
>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側で禁止処理とは具体的にどういったものでしょうか?
それとも別な方法で、もっとスマートなやり方があるのでしょうか?
一応はググってみたのですがはっきりとわかりません。
教えて君ですいませんが宜しくお願いいたします。
0842nobodyさん04/08/24 12:27ID:???
>>841
index.php?name=うんこ
とか、名前にうんこ入って飛んで来たらいややん、
受け取ったうんこをどうにかしたいよね。
if(ereg("うんこ",$_GET['name'])){$_GET['name']="";}
そこで、名前にうんこが入ったら、名前を空にするとか
0843nobodyさん04/08/24 12:30ID:???
>>841
あと、Smartyでぐぐり スマートになるから
0844nobodyさん04/08/24 12:36ID:???
>>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-
0845nobodyさん04/08/24 17:40ID:???
ShiftJISかEUC…どっちがいいんだろ
0846nobodyさん04/08/24 18:07ID:???
俺はEUCで書いてるが
0847nobodyさん04/08/24 18:12ID:???
SJISを選ぶメリットなんかあるの?
携帯相手に変換しなくてもいいってぐらいしか思いつかない
0848nobodyさん04/08/24 18:16ID:???
>>845
ちゃんと設定していれば同じだろ。
開発環境とか鯖によって使い勝手が違う程度。
エンジン内部はUnicodeだったと思うが。
0849nobodyさん04/08/24 18:32ID:???
PHPの内部処理デフォルト文字コードはEUC。
だからEUC推奨。
085084804/08/24 18:36ID:???
>>849
古い情報なんだけど、

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

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

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

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

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

↑こんな感じで

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


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


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

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

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

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

imageフォルダには一応、トップページにリダイレクトするindex.php
を入れていますが、他にも何かできること、対策がありましたら
是非ご教授いただけると幸いです。
よろしくお願いします!
0867nobodyさん04/08/24 21:19ID:???
>>851
RSSって何を使って生成してますか?
PearのXML_RSS?
0868nobodyさん04/08/24 21:21ID:???
>>866
“PHP(mod_phpならApache)がアクセスできるセキュリティ設定”ってことでいいのでは?
0869nobodyさん04/08/24 21:25ID:???
>>866
basic 認証じゃダメ?
0870nobodyさん04/08/24 21:43ID:BjXF/ulZ
>>866
わたしは特に気にしてませんね。
だってプロバイダとかが提供してるスペースにCGIおく場合も
パーミッション777とか755とかがデフォルトだし
0871nobodyさん04/08/24 21:47ID:G+Zi/Jg+
管理人が殺された!!!
http://www2.ezbbs.net/04/235963
0872nobodyさん04/08/24 21:53ID:???
あ、XML_RSSってRSSを作ることはできないのか・・・
0873nobodyさん04/08/24 22:05ID:gv2tQqB7
新規質問です。
phpでxml宣言(<?xml〜?>)を出力したいときはecho以外にどんな方法があるでしょう?
教えて下さい凄い人。
0874nobodyさん04/08/24 22:07ID:k28OQysD
>>873
print
ヒアドキュ
0875nobodyさん04/08/24 22:42ID:???
>>873
php.ini で short_open_tag = Off
これを設定すると <? だけでなくて、<?= の形式も使えなくなるので注意が必要。
0876nobodyさん04/08/24 22:58ID: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
↑こんな感じ。
理由は分かるのですが、最後まで文字列として受け取れるアイデアは無い物でしょうか?
0877nobodyさん04/08/24 23:02ID:???
いや、受け取れるから
0878nobodyさん04/08/24 23:12ID:???
>>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で渡せばいいじゃん
その方がユーザにも悪戯されにくいし(気休め
0879nobodyさん04/08/24 23:16ID:???
>>878
ああそういうことか。
&を何か別のセパレータに変えてGETで渡して
もらったところで、$_GET['url']を先ほどのセパレータで分割
とか?
0880nobodyさん04/08/24 23:19ID:???
素直にurlencodeかrawurlencodeしてみては?
0881nobodyさん04/08/24 23:20ID:???
$_SERVER["QUERY_STRING"]から抜き出すしかないだろ。
088287904/08/24 23:20ID:???
あ、ただ受け取るだけか。
http://google(ryの中の&を\tにでも変える。
んで、GETで渡す。
もらった奴の\tを&にもどす

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

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

0891nobodyさん04/08/25 01:00ID:???
>>887
ていうか
$length = strlen($URL);
は何がしたいんだ?
0892nobodyさん04/08/25 01:06ID:???
>>890
発想がちょうど逆だったw
preg_replace('/url=(.*)$/','$1',$_SERVER['QUERY_STRING']);
089387604/08/25 01:12ID:N00bMw4b
再度感謝です。
もやもやがすっきりしました。よく眠れそうです。
>>891
長さを指定しなきゃいけないもんだと思い込んでました。
ありがとうございました。
0894nobodyさん04/08/25 16:29ID:???
PHPを普通にインストールすると、勝手にPearも入るけど、
やっぱりPearは最新版に更新してから使った方が無難?
0895nobodyさん04/08/25 16:37ID:???
>>894
つい先日php(rpm形式)をupdateしたら、
DB::DataObject pgsql.php のLIMITの扱いが LIMIT $count,$from になってて、
チョロっと2,3滴出てしまった。
(ある時期以降、PostgreSQLは LIMIT $count OFFSET $from しか受け付けないようになった)
0896nobodyさん04/08/25 16:58ID:???
>>895
げ。それはやだなぁ・・・
むー。
0897nobodyさん04/08/25 17:00ID:???
RSSを作る方法としては、どんな感じでやってますかー?
教えてエロイ人。

普通にSmartyとかでテンプレート作っといて、
assignするだけでもいいような気もするけど・・・。
0898nobodyさん04/08/25 17:04ID:hvemyQ1Y
ちと質問を。
phpのテキストカウンターで。
xxx.phpで使うのなら
include("./count.php");
などで読み出しできるけど、
これをjavaスクリプトを使わないで
xxx.htmlで読み出し出来ないかなと思ってるのだけど、
何か方法ないですか?
本体ページがhtmlのみでCGI使えないサーバ−でphpは他サーバーで使ってるのだけど。
0899nobodyさん04/08/25 17:18ID:???
>>898
<iframe>もしくは<ilayer>を使うしかないのでは。
どっちゃにしろ板違い。
0900nobodyさん04/08/25 17:24ID:???
>>899
どこが板違いなんだよw
なんでもかんでも板違いって言えばいいってもんじゃないだろが。

iframe&ilayerか。さんきゅ。やってみるよ。
でも。それだと、BGに画像がある場合はその部分だけおかしなことになるかな。
ま。ありがとね。

0901nobodyさん04/08/25 17:38ID:???
はぁ・・・
夏休みもあと1週間ですよ
もう少しの辛抱です
0902nobodyさん04/08/25 17:51ID:???
ああいう板違いの質問も少しは減るだろうね。
090389904/08/25 18:38ID:???
(T_T)
0904nobodyさん04/08/25 18:55ID:???
元気だせ。
夏厨っていう蚊に刺されただけさ。
0905nobodyさん04/08/25 19:01ID:???
はぁ、板違いに気づかない夏厨ってかなり悪質な部類だな
0906nobodyさん04/08/25 19:05ID:???
気付かないんじゃなくて分からないんじゃないかな。質問側は。
分からないからこそ聞いてるわけだし。
0907nobodyさん04/08/25 19:09ID:???
>>906
分からん奴は板違いを指摘されて「板違いじゃねぇよw」なんて言わない
0908nobodyさん04/08/25 19:10ID:JWj1Ppy8
それはもっと悪質だと思ふ。。
0909nobodyさん04/08/25 19:19ID:???
あれぐらいならこの板でもいい気がする
この板が何処までサポートするかだな
0910nobodyさん04/08/25 19:20ID:???
>>900-910
板違い

↓何事も無かったかのように
0911nobodyさん04/08/25 19:49ID:???
華氏911
0912nobodyさん04/08/25 20:46ID:6+AB4ycN
いま赤マンモスのパート1(phpの基礎(除くデータベース))
までなんとなく理解したのですが、作って覚えるphpみたいな
サイトって無いですか?
0913nobodyさん04/08/25 20:49ID:???
他のPHPスクリプトを実行するときは何を書けばいいですか
0914nobodyさん04/08/25 20:59ID:???
>>912
Let'sPHP
0915Tom04/08/25 21:13ID:dCL2qLIs
>>868,869,870さん
レスどうもありがとうございました。
ウェブ上のディレクトリのパーミッションに関して、ちょっとナーバスに
なりすぎてますかね?
一応、ファイルをアップロードするページ自体はパスワードを必要とする
ディレクトリに入れているのですが、パーミッションを低くしている
Imageフォルダになんらかの方法で外部からアクセスされて悪さを
されやしないかと、心配だったんですけど。。

ところでBASIC認証について、恥ずかしながらはじめて知りました。
自分でちょっと調べてみましたがそんなこともできるんですね。
勉強になりました。

どうもありがとうございました!
0916nobodyさん04/08/25 21:19ID:???
あれだな。
ここにいるやつって他の板もだけど、
自分の思う事言えないやつがおおいよな。
集団でないと何も出来ないってやつか。

0917nobodyさん04/08/25 21:20ID:BWOwaHCo
セッション管理について教えてください。
$a[0]="a";
$a[1]="b";
$a[2]="c";
$_SESSION['a'] = $a;
のようにしてセッションに配列を入れた時、
セッションからの取り出し方が解りません。
別ページで
print($_SESSION['a']);
とhtmlに表示したら"Array"とかでてきました。
print($_SESSION['a'[0]]);
では何にも出てきませんでした。

ご教授お願いします。
0918nobodyさん04/08/25 21:23ID:???
>>917
$_SESSION['a'][0];
0919nobodyさん04/08/25 21:23ID:???
>>917
$arr = $_SESSION['a']);
print_r($arr);
0920nobodyさん04/08/25 21:29ID:???
>>918
>>919
なるほど! 早速試してみます
すばやいレス有難うございました
0921nobodyさん04/08/25 22:07ID:Qso0P8lz
「P検3級なんだ、なめんなよ」とかいっている奴のHPが↓
http://smile.poosan.net/ennetu/index2.htm
なんですが、「こんなんでいばんな」と少しでも思ったら掲示板に書き込んであげてください。
あとそれだけ威張っておきながら「ページとの一致はヤフー登録なんだよ!」とか言ってましたのでそこらへんも考慮してあげてください。
0922nobodyさん04/08/25 22:44ID:???
>>921
その人に虐められたの?
確かにBMP使ってる辺り少しアレだけど
0923nobodyさん04/08/25 22:52ID:???
>>922
コピペ荒らしに反応するなっちゅうねん。
0924nobodyさん04/08/25 23:34ID:Qso0P8lz
まじでいじめられた感じw
復讐中さw
0925nobodyさん04/08/25 23:37ID:4zCbnYMx
P犬3級ごときに嫉妬しているお前は何者だ。
0926nobodyさん04/08/25 23:45ID:???
独りじゃ復讐も出来ないとは憐れだな(藁
092791204/08/26 02:18ID:Xl1ki6wy
>>914
ありがとうございます。
LetsPHPはチュートリアルが結構早く終わりました。
あとは配布しているソースの中身を見たりしたら
良いのでしょうか?
0928nobodyさん04/08/26 04:21ID:???
>927
お前アホだろ
何でも良いからやれっつのw
やればやるほど知識になるんだから
092991204/08/26 04:32ID:Xl1ki6wy
>>928
アホだから質問しているんだよ、ボゲ。
ありがとうございました。
0930nobodyさん04/08/26 04:48ID:???
まー、最初の頃はナニから手を付けたらいいか
わからんよな。
基本を押さえたら、実際に作りたいものを作り始めたり、
他の人のソースを丸写ししたりするのがいいんじゃないの?
0931nobodyさん04/08/26 05:27ID:???
おまいら
pear Auth のauth_container_db *RECURSION*気になりませんか?
0932nobodyさん04/08/26 13:47ID:p2TSxF3G
プログラマはテキストエディタを使うから問題ないんですが、
デザイナに手を入れてもらいたいのでHTMLエディタを検討しています。
PHPのコードが壊れないようなエディタって何があるのでしょうか?
フロントページはダメですよね。DreamWeaver とかどうなのでしょうか?
0933nobodyさん04/08/26 13:48ID:luvI+xpD
若干PHPの質問からズレルのですが、
可能かどうかという点で質問します。

フォームを使って、
アクション先のURLを変更したいんですが、むりぽでしょうか?
PHP使用しなきゃむりぽですか?
麗:
<form action=http://(ここにvalue=URLの値)/>
<input type=text name=URL></form>

みたいな感じで。
0934nobodyさん04/08/26 13:49ID:???
DreamWeaver de OK牧場!
0935nobodyさん04/08/26 13:51ID:???
>>933
web制作とのマルチですか?
0936nobodyさん04/08/26 13:51ID:???
<form action=<?=$_GET[url]?>/>
<input type=text name=URL></form>
0937nobodyさん04/08/26 13:52ID:???
あ、マルチだったのか?
0938軟式PHP04/08/26 13:52ID:???
>>932
DreamWeaverは使ってるけど壊れないよ。

>>933
JavaScript使えば出来るよ。
0939nobodyさん04/08/26 13:54ID:???
>>932
うちじゃDreamweaverでやってるべ。
とりあえず*アプリが*壊すことはない。

っていうかね、うちじゃPHP以前の問題で、フォームのnameを好き勝手変えといて
「動かなくなりました」とか言うんだよ?
PHP理解しろとはいわない。せめてHTML理解して組んでくれ。
いや悪い、つい愚痴を...
094093304/08/26 13:55ID:luvI+xpD
これをマルチというのですたか。
マジスイマセン&助かりました。
ありがとうございますm(_ _)m
0941nobodyさん04/08/26 14:26ID:???
>>332
テキストエディタ使ってコード書く PHP プログラマに、
テキストエディタで対処出来ない web デザイナー& HTML コードでつか。

がくぶる。
0942nobodyさん04/08/26 14:29ID:???
>>941
すごい遅レスでつね。

がくぶる。
0943nobodyさん04/08/26 14:30ID:???
>>940
もうくるなよ
0944nobodyさん04/08/26 14:30ID:???
>>942
あげあし

がくぶる。
094594104/08/26 14:57ID:???
がくぶる (;´Д`) >>932 ね、一応。
0946nobodyさん04/08/26 15:03ID:???
$arr[1],$arr[2],$arr[3]を破棄する場合
unset($arr[1],$arr[2],$arr[3]);
としますが、削除したい要素の添え字が配列に入っているときは、どうすればいいでしょうか?($unsetlist = array(1,2,3);)
0947nobodyさん04/08/26 15:26ID:???
foreach ($unsetlist as $value) {
unset($arr[$value]);
}

テストしてない。
0948nobodyさん04/08/26 15:28ID:???
>>947
ありがとうございます。
もうちょっとスマートにできないでしょうか?これが限界でしょうか
0949nobodyさん04/08/26 15:31ID:???
十分スマートだと思うが
0950nobodyさん04/08/26 15:35ID:???
>>932
そういう時にはテンプレートですよ。
有名所だとsmartyってのがあるし、pearにも幾つか転がってる。
オイラはシンプルさから http://hoover.ktplan.ne.jp/kaihatsu/php/index.php?type=doc&txt=htmltemplate
のを使わせてもらってる。
html中にPHPの命令文が入り込まなくなるので、デザイナさんに壊されることも無いし。
>>939のような事態は起こりえるけど、、、というか頻発するんだよなぁ。。_ト ̄|○
0951nobodyさん04/08/26 15:36ID:???
関数使って一行で書きたいとか?
095294704/08/26 15:38ID:???
>>948
うーん。俺はわからん。

もっと短い記述はあるのかもしれんが、
それはスマートじゃなくて、変態チックな予感がする。

あくまで憶測だが。
0953nobodyさん04/08/26 15:44ID:???
foreach ($unsetlist as $value) unset($arr[$value]);
1行にまとめてみた
意味無いな・・・
095494604/08/26 16:08ID:???
スマートと言うか、ループ無しでってのは、無理ですよねぇ。配列だから・・
0955nobodyさん04/08/26 16:10ID:???
>>948
無理矢理考えて 2つくらい思い付いた。
array_walk($unsetlist, create_function('$v, $k, $c', 'unset($c[0][$v]);'), array(&$a));
とか、
call_user_func_array(create_function('$x', 'unset($x[' . implode('], $x[', $unsetlist) . ']);'), array(&$a));
とか。

>>952 の言う通り変態的にしか見えない。
095694604/08/26 16:11ID:???
やっぱり変になっちゃいますか
素直にforeach使います。
どうもありがとうございました。
095795504/08/26 16:18ID:???
foreach を使わない方法としては、これが一番ましかもしれない。

eval('unset($a[' . implode('], $a[', $unsetlist) . ']);');
0958nobodyさん04/08/26 16:21ID:g+Sdupz+
( $hoge ) = hogeFunction();

こういう書き方をするとエラーになりますが、( $hoge )はダメなのですか?
0959nobodyさん04/08/26 16:29ID:???
>>958
こうかな?
list( $hoge ) = hogeFunction();
0960nobodyさん04/08/26 16:37ID:???
そもそもなぜ括弧で括りたいのか
0961nobodyさん04/08/26 17:00ID:???
PHP Accelerator 使おうかと思うんですが、
PHP4.3.8 で使う場合、該当バージョンがありません。

4.3.0版をダウンロードすればよいでしょうか?
096293204/08/26 17:24ID:p2TSxF3G
DreamWeaverでいけそうですね。
ありがとうございました。
0963nobodyさん04/08/26 17:56ID:???
HTMLデザインとPHPを別の担当者がやるなんて・・
裕福な会社でつね_| ̄|○
0964nobodyさん04/08/26 18:05ID:???
>>963
その方がいい物が出来るけどね。

といいつつ俺も全部一人でやってまつ。
本物のデザイナーなら欲しいな。
プライドと給料だけ一人前で能力付いてこないヤツ大杉なのよ。
0965nobodyさん04/08/26 18:07ID:???
また出ましたよ。有能上司
0966軟式PHP04/08/26 18:09ID:???
サーバーやPHPの環境設定、ブラウザの設定等に問題がないかも
チェックしたほうがいいかもしれませんね。
096796104/08/26 18:27ID:???
PHP Accelerator を入れてみました。

ところが・・・。
Failed loading /usr/.../php_accelerator_1.3.3r2.so:
/usr/.../php_accelerator_1.3.3r2.so:
cannot open shared object file: No such file or directory

そんなファイル無いよ?って言われます。
lsではちゃんと表示されるのに・・・。
# ... は 省略したところ。

$ ls /usr/.../php_accelerator_1.3.3r2.so
/usr/.../php_accelerator_1.3.3r2.so*
0968nobodyさん04/08/26 18:27ID:???
>>965
まだ解決できないのか。無能社員。
0969nobodyさん04/08/26 18:39ID:???
>>967
あなた様は今後エラーが出るたびに逐一ここで
聞きやがりますか?
0970nobodyさん04/08/26 18:46ID:???
いや、でも>>967のエラーは結構すごいと思うよ。
「php_accelerator "Failed loading" "cannot open shared object file"」でググっても
1件しかヒットしない。
世界で2番目だよ。
銀メダルみたいな?
ってゆーか、そんなエラーが出る可能性って言ったら、
ディレクトリの読み取り権限しか思いつかないや。
0971nobodyさん04/08/26 19:02ID:???
もちろん、ディレクトリ&ファイルのオーナー&グループ、
権限は色々といじってみているんですがニンともカンとも。

PHPをインストールするにもライブラリのリンクで苦労した
64ビットサーバにはPHPAは無理かなぁ・・・
0972軟式PHP04/08/26 19:16ID:???
次世代マシン萌え
0973nobodyさん04/08/26 20:45ID:???
配列aに数字が5個、配列bにも数字が5個あります。
配列bの数字の中に、配列aの数字がいくつ含まれているか、というのを調べる場合

1.配列aに配列bをpushして追加、12個にする。array_uniqueで重複を消し、countで要素数を調べ、12からその要素数を引く。
2.配列aを順番に見ていき、配列bの数字が含まれていたらunsetする。そしてcountで要素数を調べる。

というのを考えたのですが、どっちがいいですか?
それとも他に良い方法ありますか?何か、みなさんの言う”変態的”のやり方なようなのような気がして・・・
0974nobodyさん04/08/26 20:46ID:???
×12からその要素数を引く。
○10〃
でした、すいません。
0975nobodyさん04/08/26 21:31ID:???
count($b)-count(array_diff($b,$a))
とか。知らんけど。
0976nobodyさん04/08/26 22:14ID:???
count(array_intersect($a,$b))
0977nobodyさん04/08/26 23:10ID:???
>>971
64ビットのサーバーっつったら超高性能じゃん。
アクセラレータいらないって
0978nobodyさん04/08/26 23:33ID:???
(´-`).。oO ( ちょっとアレな PHP プログラムに限ってハードウェアや DB にカネかけてる (Oracle とか) のはなんでだろう )
0979nobodyさん04/08/26 23:43ID:???
(´ε`)y-~~~<技術力と金回りは無関係さ
0980nobodyさん04/08/27 00:01ID:???
俺の高性能なタイマーをチューニングしてくれ。

$ts = microtime();
$te = microtime();
$tr = $te - $ts;
echo $tr."秒";
0981 ◆.jC7ANgFY. 04/08/27 00:29ID:???
>>980
こんなんでいかが?

$ts = explode(' ', microtime());
$te = explode(' ', microtime());
$tr = array_sum($te) - array_sum($ts);
echo $tr * 1000 ."ミリ秒";
0982nobodyさん04/08/27 03:59ID:VDNxy0Ve
ttp://www.3lab.org/whois/
こういう感じのwhois情報を取得するスクリプトの
書き方を紹介しているページはありますか?
0983nobodyさん04/08/27 06:28ID:???
>>982
whoisコマンドの結果をそのまま表示しているにすぎないようだが。

echo `/usr/bin/whois -h whois.nic.ad.jp $_GET['domain']`;
0984nobodyさん04/08/27 08:15ID:???
PEAR だったか PECL だったか whois を扱うライブラリ
があったような気がします。
0985nobodyさん04/08/27 11:35ID:???
>>977
abで言えば20〜30 access/sec 欲しいもんで・・・。
0986軟式PHP04/08/27 11:55ID:???
そのハードでダメならコードがダメなんじゃないの?
現状のベンチ結果みせてーおくれーよ。
0987 ◆.jC7ANgFY. 04/08/27 12:09ID:???
>>985
モジュールにしてない、とか?
0988nobodyさん04/08/27 12:38ID:???
>>983
ぎゃああああああああああああ
0989nobodyさん04/08/27 13:13ID:???
>>985
SQL が腐ってるとかな。
パフォーマンスのボトルネックを挙げて長所短所を調べた上で何から行っていくかを見極めるべきだと思うが。

昔、リスト表示を行うのに while でループかけていちいち SELECT 文を実行し一行づつ拾うプログラムを書いた業者がいて、
その後パフォーマンス改善を要求したらハードウェアへの再投資を求めてきたとかあったよ。
0990nobodyさん04/08/27 13:28ID:???
悪徳業者だな

つか次スレ
0991nobodyさん04/08/27 15:11ID:???
>>986
Smartyだし、色々やってるからコードは確かに重い。
ab -n 1000 -c 10

Requests per second: 10.32 [#/sec] (mean)

ちなみにテスト用の32ビットサーバでは
PHPA無し 6 access/sec
PHPA有り 25 access/sec
0992nobodyさん04/08/27 15:33ID:???
>>991
まぁバカっぱやくなるよな。PHPA 以外にも色々あるよ。

んで Smarty 使ってるならキャッシュとか有効活用してる?全然違うぞ。
0993nobodyさん04/08/27 16:42ID:XbK7BqmO
SQLで引っ張ってきたデータが
{{ぽぽたん,萌え系},{花右京メイド隊,メイド系}}

ってな感じで、{{ }} 付で引っ張ってくるんですが、

配列関数を利用して、

[0]=>ぽぽたん
[1]=>花右京メイド隊

[0]=>萌え系
[1]=>メイド系

みたいに、{} を除いて入れたいんですが、可能でしょうか?
0994nobodyさん04/08/27 16:51ID:???
>>993
はい。
099599204/08/27 16:59ID:XbK7BqmO
>994
$moe_list=LTrim($moe_list,"\x7b..\x7d");
とかやって、$moe_arr=array($moe_list);

とかやろうと思ったんですが、{}が全部消えてくれません;;
考え方はあってるでしょうか?
099699504/08/27 17:34ID:XbK7BqmO
できますた
0997nobodyさん04/08/27 17:55ID:???
>>996
おめでとう
0998nobodyさん04/08/27 18:02ID:???
次スレ
【PHP】質問スレッドpart21【php】
http://pc5.2ch.net/test/read.cgi/php/1093597222/
0999nobodyさん04/08/27 18:23ID:???
セソ
1000nobodyさん04/08/27 18:24ID:6DtrpXem
1000(゚Д゚)セソ
おめでとう 自分
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。