【PHP】初心者コーナー
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
02/01/21 03:21ID:???仕方ない、人気のないPHPを応援してやる。
データベース禁止 MySQL PostgreSQL はどっかいけ。
純粋にPHPプログラミングだけ。
初歩的な事ならWebProg板の誰かが素早く教える。
もちろんPerlプログラマーも手伝ってくれ。
ほんじゃ質問してみ。
>>2-9 誰か情報かいてくれ。
0159nobodyさん
02/11/03 03:53ID:???別にすごいから秘密にしたいってわけじゃないよ。
2chに書き込みをするスクリプトなんだけど
いたづらで悪用されたら、こまるから、
秘密にできたらいいなって思ってん。
0162nobodyさん
02/11/03 04:20ID:???ただZend Encoderと違って速くはならないらしいけど
0163nobodyさん
02/11/03 04:53ID:???APC (ALTERNATIVE PHP CACHE) というのかな?
でもこれって実行側で環境をインストールせやなあかんみたい。
これやと逆にユーザ対象が狭まれ過ぎて、配付する意味がなくなるわ…。
それに少し古いみたいで、惜しい。
0164nobodyさん
02/11/04 22:59ID:???./foo.php (メインファイル)
./subject.txt (現在存在するログファイル名が書いてある。 一行に一個。)
./dat/xxxxxxxx.dat (subject.txtに書いてあるログファイル)
subjectのarray[i]を読んで、そこに書かれてるxxxxx.datてゆーのをdatディレクトリから探して表示、
を繰り返すわけなのですが、、、、
Warning: file("./dat/1036411589.dat ") - Invalid argument in 〜
とゆーような感じでdatのあとに半角スペースが入ってしまうんです。 よって読めないと。
ereg_replace()してもダメでした・・・
配列の仕様ってヤツなのでしょうか? そして回避法はあるんでしょうか?
お願いします。
0165nobodyさん
02/11/05 10:20ID:iexiejZJもう一度、マニュアルを読んでみよう。
file()は、\nを除去しないと書いてあるよ。
よって、trim()でもつかうのがよろし。
0166165
02/11/05 10:24ID:iexiejZJあと、subject.txtに「表示させたいログファイル名」ではなくて、
「現在存在するログファイル名」だけがかいてあるのなら
./dat/を直接readdir()した方が楽でない?
0168nobodyさん
02/11/05 16:50ID:???pear/PECL/APCに最新版があるヨ
pear/PECL/APC Cache機能
pear/PECL/APD Debug機能というかプロファイラ
pear/PECL/OPC Optimizer機能(今日レポジトリが出来たみたい-まだ枠組みだけだけど)
これからが楽しみ :)
0169nobodyさん
02/11/05 16:59ID:???ありがとうございます!
> 改行記号はついたままと なります。
て書いてましたね・・汗
ついでにtrim()の存在も知らなかったので大変勉強になりました〜! ありがとうございました!
0170164
02/11/05 17:03ID:???readdir()ってディレクトリの見えないディレクトリで使えるかどうか分からなかったので頭に入れてなかったっす。
あとでちょっち試してみます。
0171nobodyさん
02/11/05 18:02ID:WIPa8/Vj半角スペースや「"」などの文字が含まれているとそれ以降が消えてしまいます
addslashesを使って「\"」にエスケープしても「\\」と文字化けします
どうやってデータを渡せばよいのでしょうか?
0172nobodyさん
02/11/05 20:25ID:Dn6gflHKphp.iniでmagic_quotes_gpcがonになっていると、
COOKIE,POST,GETで渡された値の中の
これらの文はは勝手にエスケープされる。
ので、
php.ini でmagic_quotes_gpc = off
にするか、
.htaccessで
php_flag magic_quotes_gpc off
にする。
あと、stripslashes() という函数もあったような;
0173nobodyさん
02/11/05 20:55ID:WIPa8/Vjすみませんちょっと説明不足だったようですが
勝手にエスケープされたものをstripslashes()で取り除いても
正常に受け渡しができなくなります。
「aaa"bbb"」→POST→「aaa」
「aaa\"bbb\"」→POST→「aaa\\」
フォームからは正常にエスケープされた文字列が受信できます
環境がおかしいのでしょうか?
対策としては正常に受け渡しできる文字に置換して
受信側で元の文字に戻すということですけど・・・
0174nobodyさん
02/11/05 21:28ID:???0175nobodyさん
02/11/06 01:26ID:EhYZ0bVtサーバースペースはまだ探していないので、local環境で始めてみたいです。
OSはWindows2000かLinux(Red Hat)です。
とりあえずwin2kでやってみようと思って、
phpdevやphpのインストーラ(win用)は落としてみたのですが、
使い方がいまいちわかりません。
初心者は何から始めればよいのでしょうか?
0177173
02/11/06 07:19ID:yWgDH7Dp4.2.2に戻してみましたがかわりませんでした・・・
0179173
02/11/06 17:19ID:???htmlspecialcharsで変換してPOSTすれば
消えずに送信できました
0180nobodyさん
02/11/07 11:41ID:QEt0uw4x単純な置き換えだけでなくてIFとかLOOPとかあるような・・・
0181nobodyさん
02/11/07 11:59ID:Go7yQUbZwhile (hoge) {
?>
aaaa
<?php
}
0183nobodyさん
02/11/08 01:14ID:Veqht0/QPHPを始めたいとのことですが、やはり「なぜPHPを始めるの?」
という質問に答えられるかどうかがポイントではないでしょうか?
その答えがご自分の中にあるのであれば、それに必要な処理や道筋を
立てて、そのプロセスに必要な関数や仕組みを試行錯誤でやることです。
そうすれば、徐々に覚えることができます。
0184nobodyさん
02/11/09 07:47ID:???促されたので質問させて下さい。↓は初心者スレからのコピペです。
現在、XHTMLで表示部分を記述しているCGIスクリプトが少ないので
自分でスクリプトを作ってみようと思っています。しかし、色々と
検索しているとPerlよりもPHPの方が動作も軽くていいようなので
PHPでスクリプトを作ろうかと思ったのですが、HTML(XHTML)以外
知らない人間がいきなりPerlではなくPHPを覚えようというのは
無謀なのでしょうか?下らない質問ですみませんが教えて下さい。
#Jsは多少知っています。
0185nobodyさん
02/11/09 10:59ID:X+rmQU/4こういう本で勉強
http://www.gihyo.co.jp/books/syoseki.php/4-7741-1321-2
そのあとはPHPのオンラインマニュアルを見れば簡単に書ける
何事も基礎が大事
0186nobodyさん
02/11/09 11:14ID:E2/H+5gTPHPとても簡単
0187nobodyさん
02/11/09 11:24ID:???>何事も基礎が大事
言われて納得。確かにそうですよね。ありがとう御座います。
PHPやPerlの前に基礎の基礎をしっかり固めたいと思います。
0189nobodyさん
02/11/09 11:39ID:rznkVAE5サイトを見るのにパスワードとユーザ名を要求されるようになってしまいました。
知らないうちに会員制に移行してたらしいのです。
こうなった以上、もう見るのは不可能なんでしょうか?
0190nobodyさん
02/11/09 12:14ID:???0191nobodyさん
02/11/10 11:26ID:QiAM6QEOecho '管理人の名前は使用できません。';
}
サポートと言う文字を入れると
Warning: REG_EBRACK: in C:\test.php on line 296
みたいなエラーが出るのですがなんででしょうか?
管理人やWebmasterではちゃんと表示されるんですが。
0192nobodyさん
02/11/10 11:29ID:???0193191
02/11/10 12:27ID:???どうやら長音記号「ー」のせいみたいですね。
メーリングリストに同じような話題が出ていました。
http://ns1.php.gr.jp/pipermail/php-users/2001-December/004497.html
0194191
02/11/11 05:10ID:???0195nobodyさん
02/11/22 03:31ID:klMrTIO/SELECT CODE, NAME FROM TABLE1 ORDER BY CODE
とポスグレに流したら、100件帰ってきます。
PHP3で pg_Result($rtn, 80, name)ってすると、80番目が帰ってきますよね。
この時、ポスグレのカーソルは先頭から80回フェッチしているんですか?
0196nobodyさん
02/11/22 11:25ID:???print と echo は、まったく同じものでしょうか?
ちょっと違うのかな?
どっちでもいい事かもしれませんが気になりまして
0199nobodyさん
02/11/22 13:01ID:???0201nobodyさん
02/11/22 14:46ID:2PtBJ1DAprintは関数。echoは文
echoは()がいらないので多用している。
0202nobodyさん
02/11/22 16:22ID:???0203nobodyさん
02/11/22 16:25ID:???> このため、引数を括弧で括る必要はありません。
http://www.php.net/manual/ja/function.print.php
0204nobodyさん
02/11/22 16:30ID:2PtBJ1DAそうだったのか。そうしたら ますます両者の違い側下欄。
0205bloom
02/11/22 16:30ID:ouswKb0xhttp://www.agemasukudasai.com/bloom/
0206nobodyさん
02/11/22 16:35ID:???Cのprintfも使って良いわけだし。
0207nobodyさん
02/11/22 16:38ID:???このスレタイのようにいわゆる初心者ならば
どれを使っても変わらないだろう。
0208nobodyさん
02/11/22 16:44ID:???echo print "test data\n";
してみ。
echo echo "test data\n";
も試してみれ。
if(!print("stdout check OK!")) die();
0209nobodyさん
02/11/22 18:28ID:???0210version
02/11/22 21:56ID:+Mj4l0eAどうすればよいか分かりません。
Red Hat Linux 7.2にPHP4.2.3をソースからコンパイルして
インストールしました。それで、本を買って、さぁ勉強しよう
と思ったら、その本がPHP4.2.2の本だったので、
同じバージョンにさせたいのです。
この場合ってどうすればよいのでしょうか?インストールされた
ファイルを探し出して、全部削除とかしてから4.2.2をインストール
するのですか?教えてください。
0211PHP ◆DQN/AO/IPw
02/11/23 00:15ID:???/* echo の方が早いね */
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
$str = "De man cyaan seh dat, aya.\n";
$start = getmicrotime();
echo "<span style=\"display: none\">";
$i = 0;
while ($i < 50000) {
echo $str;
$i++;
}
echo "</span>";
echo "echo: <b>". (getmicrotime() - $start) ."</b><br>\n";
$start = getmicrotime();
echo "<span style=\"display: none\">";
$i = 0;
while ($i < 50000) {
print $str;
$i++;
}
echo "</span>";
echo "print: <b>". (getmicrotime() - $start) ."</b><br>\n";
/* ローカルでテストしてね*/
?>
0212マニュアル嫁 君
02/11/23 00:22ID:eY1CU9cS0213nobodyさん
02/11/23 13:54ID:???echoのほうが良さそうなのでecho使うようにします。
0214nobodyさん
02/11/23 16:53ID:dkREGMIEPHP では入力された値は直接変数に格納されます。これはPOSTデータも
GETデータも、Cookie データも、FORMも同じです。
その変数は連想配列です。
$HTTP_POST_VARS
$HTTP_GET_VARS
$HTTP_COOKIE_VARS
0215nobodyさん
02/11/23 18:44ID:???0216nobodyさん
02/11/23 20:33ID:UbdTqBExこれから触ってみようと思うのですが
個人でPHP学ぼうと思ったらWEBサーバーが必要なんでしょ?
みんなレンタルサーバーとか使ってんの?
それともインターネットのプロバイダがPHPサポートしてんですか?
スタンドアローンでうごかしてるとか・・・
0217nobodyさん
02/11/23 20:53ID:???初心者スレだから答えてあげると、
・apacheをインストール
・PHPをインストール
これでローカルで動かせる。
具体的な設定方法は検索すればわかるでしょう。
0218216
02/11/23 21:02ID:UbdTqBExやっぱりそうですか
実は私もServletをスタンドアローンで動かしてる・・・
0219nobodyさん
02/11/23 21:03ID:u57L3WN30220nobodyさん
02/11/23 21:40ID:???そのまんまでしょ。
意味がわからないならCGIとは何かを勉強する必要がある。
mod_phpとかmod_perlも一緒に調べるとよくわかると思う。
0221nobodyさん
02/11/23 22:09ID:dkREGMIE0222nobodyさん
02/11/23 22:10ID:???0223nobodyさん
02/11/23 22:27ID:???http://jp.php.net/manual/ja/
0224nobodyさん
02/11/23 23:13ID:???また、完全CGI(HTMLへの送受信をしない?)として使えますよね。
何が言いたいんだ?
普通は
HTML+php (掲示板などへの書き込み)→php鯖で処理してその結果を→HTML+phpに表示
postメソッドなどの通信
post/getで通信 →php鯖で処理してその結果を →post/get?で通信
0225nobodyさん
02/11/23 23:19ID:???0226nobodyさん
02/11/24 00:10ID:???0227nobodyさん
02/11/24 00:20ID:???php.iniの設定が書いてるWebサイトキボンヌなのです
0228nobodyさん
02/11/24 00:34ID:???0229nobodyさん
02/11/24 00:43ID:???グローバルレジスターくらいいじれりゃ十分やけど。。
0231nobodyさん
02/11/24 00:55ID:???0232nobodyさん
02/11/24 02:32ID:???0233nobodyさん
02/11/24 09:20ID:???0234nobodyさん
02/11/24 13:28ID:???無くても別に困らないんだけど、気になったので・・・
0235nobodyさん
02/11/25 00:32ID:???困らないんだったらマニュアルみ。
http://jp.php.net/manual/ja/
0236nobodyさん
02/11/25 05:45ID:???いつのまにオーバーロードをサポートしてたんだ・・・・?
つかサンクス>>235 & マニュアル嫁>>オレ
エセOOつかえねーと思ってたが、PHP5も楽しみだな
023723
02/11/25 18:50ID:???オンランのソースは一通り目を通したはずなんだけどなぁ・・
結局、見つかりませんでした。
>>236 の言ってるのは、オブジェクトのオーバーロード?
0238nobodyさん
02/11/26 13:14ID:???Part5 http://pc.2ch.net/test/read.cgi/php/1031721334/l50
【PHP】初心者コーナー では初心者のアホっぽい質問を受け付けております。
初心者の人はマニュアルをざっとご参照のうえで質問してみてください。
http://jp.php.net/manual/ja/
0239nobodyさん
02/11/26 16:56ID:???マニュアル以上まとも未満の質問の例を教えてください。
0240nobodyさん
02/11/26 17:51ID:???0241nobodyさん
02/11/26 19:16ID:???アホッぽさの条件
1)変数とか制御構造とか基本的なことを理解していない
2)マニュアルにズバリ書いてあることを、独特の言い回しで質問。
3)HTMLとJavaScriptとPHPの区別が付かない
0242nobodyさん
02/11/26 20:12ID:???register_globals もちろんおやつです。
>>241
だいたいそんな感じですが、
初歩的な質問なのである程度理解しててもいいです。
高度な質問が入った場合は【PHP】質問スレッド 誘導してください。
http://pc.2ch.net/test/read.cgi/php/1031721334/l50
0243nobodyさん
02/11/26 21:16ID:???それは厳しくない?
マニュアル読める力があれば、2chでわざわざ質問しなくても自己解決出来るでしょ。
このスレはこれから始める人用だと思うな。
CGIって何?
phpって何?
モジュールphpって何?
インストール時のトラブル
phpでこれをやりたいんだけど出来る?
0244nobodyさん
02/11/26 22:03ID:???あるSJIS文字列(1バイト2バイト文字混合)を受け取った際に、数字とアルファベット以外を
1バイトずつ区切って、HTML数値エンティティ形式に変換して出力するXMLサーパントがあります。
たとえば、
私はPHPが好き(かも)です
という文字列は、
?E;???CD;PHP;??AA;?D;???AB;???A9;??E0;???C5;??B7
と返されます。
この返された文字列を元のSJISに戻したいのですが、何かスマートな方法はありますでしょうか?
0245244
02/11/26 22:08ID:????x8E;?x84;?x82;?xCD;PHP;?x82;?xAA;?x8D;?x44;?x82;?xAB;?x28;?x82;?xA9;?x82;?xE0;?x29;?x82;?xC5;?x82;?xB7
でした…。
0247nobodyさん
02/11/26 22:17ID:???register_globals='おやつ';
}
0248nobodyさん
02/11/26 22:50ID:???print "
,――、
/ ̄ ̄l|
■■-っ
∀`/
__/|X/\
Ё|__ | / |
| У |
ンナコターナイ
";
}
0249244
02/11/27 00:05ID:???>>246
ありがとうございます。一筋の光が遠くの方に見えてきました。
$str = "¥x8E¥x84";
echo $str;
の場合はちゃんと「私」と表示されるのに、&#x8E;&#x84;から
preg_replaceで置換した文字列だと表示されないのはなんででしょう…?
0253244
02/11/27 21:16ID:???ereg_replaceでもうまくいきませんでした…
$str1 = "\x8E\x84";
$str1 = mb_convert_encoding($str1, "EUC-JP", "Shift_JIS");
echo "str1= " . $str1 . "<br>\n";
$str2 = "Ž„";
$str2 = ereg_replace (";", "", $str2);
$str2 = ereg_replace ("(&#)", "\\", $str2);
$str2 = mb_convert_encoding($str2, "EUC-JP", "Shift_JIS");
echo "str2= " . $str2 . "<br>\n";
とした場合、出力結果(EUC-JPのhtml)は
str1= 私
str2= \x8E\x84
となります。どこがおかしいのでしょうか…サッパリわかりません。・゚・(ノД`)・゚・。
0254nobodyさん
02/11/27 22:31ID:wgGugnNo$str2 = urldecode($str2);
0255nobodyさん
02/11/27 22:32ID:wgGugnNo0256244
02/11/27 23:22ID:???アドバイスありがとうございます。実は
$str2 = preg_replace ("/&#x([0-9a-fA-F]{2});/", "%$1", $str2);
$str2 = urldecode($str2);
とかでも試していて、正しく表示されることは確認しています。
これが一番スマートなカンジでしょうか?
ところで、>>253の$str1はナゼそのままで正しく表示されるのでしょう?
そーゆーもの?
0257nobodyさん
02/11/27 23:57ID:iBP1PmSK0258nobodyさん
02/11/28 00:07ID:???そんなもんです。
■ このスレッドは過去ログ倉庫に格納されています