【PHP】初心者コーナー
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
02/01/21 03:21ID:???仕方ない、人気のないPHPを応援してやる。
データベース禁止 MySQL PostgreSQL はどっかいけ。
純粋にPHPプログラミングだけ。
初歩的な事ならWebProg板の誰かが素早く教える。
もちろんPerlプログラマーも手伝ってくれ。
ほんじゃ質問してみ。
>>2-9 誰か情報かいてくれ。
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;
の場合はちゃんと「私」と表示されるのに、Ž„から
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:???そんなもんです。
0259nobodyさん
02/12/05 11:25ID:???単に10回まわしたいのですがどうしたらいいですか?
0260nobodyさん
02/12/05 12:18ID:???非常に困ってます。
0262nobodyさん
02/12/05 12:53ID:???0263nobodyさん
02/12/05 14:58ID:???pdf版しか無いと思い込んでたので敬遠してしまっていてw;
感謝。
0265nobodyさん
02/12/06 23:59ID:???global変数なんですが、どっちのやり方がいいでしょう?
Perlにおいて
sub a{
$x=1;
&b;
}
sub b{ x++; }
0266nobodyさん
02/12/07 00:00ID:ahw/ygQO1、
function a(){
$x=1;
b($x);
}
function b($x) { x++;}
2,
function a(){
global $x;
$x=1;
b();
}
function b(){
global $x;
$x++;
}
0267nobodyさん
02/12/07 00:01ID:ahw/ygQOそれとも上の2案以外にもっと(・∀・)イイ!やり方があるでしょうか?
0268nobodyさん
02/12/07 00:02ID:ahw/ygQOb()内で$xの値は画面に出力する予定です。
print $x;って。
0270nobodyさん
02/12/07 11:03ID:???0271nobodyさん
02/12/07 16:18ID:7eULV5Qvどうやってコードを書けばよいですか?
0272nobodyさん
02/12/08 10:45ID:???perlでも
sub a {
my $x = 1;
&b( $x );
}
sub b {
my $x = shift;
%x++;
}
って俺はやるけど。
0274273
02/12/08 10:51ID:???>>271
socket_connect で $_SERVER["REMOTE_ADDR"] のチェックしたいポートに
接続できるか試してみれ。
接続できたらエラー返せばいい。
0276nobodyさん
02/12/08 12:59ID:???fsockopenでやってみます。
0278nobodyさん
02/12/09 14:44ID:7JN9kr7j動作環境
FreeBSD 4.4
PHP 4.2.3
gd 2.0 or higher
0279nobodyさん
02/12/09 15:55ID:W+Y68UCpこのページにあるライブラリの「メール受信・分解」というクラスを使いたいんですが、
使い方が全く解りません。
クラスとか、オブジェクト指向?ってのが、全く解らないんです。
この「メール受信・分解」クラスを使って、
メールを読み込むには、どのようなコードを書いたら良いんでしょうか?
もしよろしければ、サンプルコードを教えてもらえれば幸いです。
0280nobodyさん
02/12/12 10:24ID:YConQHPT$_SESSION に登録する変数の内容が小さいほうが、ウェブサーバのメモリの節約になりますか。
0281nobodyさん
02/12/12 10:31ID:???0283nobodyさん
02/12/12 13:02ID:qs26Iqx3当方、Java畑出身なのですが、
a.php→b.php
という感じで別のPHPプログラムに、オブジェクト渡しを行う事は可能でしょうか?
a.phpで使われたクラスのインスタンスをb.phpに渡したいのですが。
MVC設計が染み付いてしまって・・・。
すいませんが、教えてください。m(_)m
0286283
02/12/12 16:21ID:qs26Iqx3レスありがとうございます。
こちらの思い描いてたやりかたは
index.html→a.phpに変数$valueをpost
a.php内部でclass hogeをnewして、オブジェクト$fooを生成。
$foo->setValue($value)とかして、値をセット。
a.php→b.phpに$foo(値のセットされた)を渡す。
b.phpで処理して動的にhtmlを生成
というものだったのですが。
includeを使うということは
index.html→b.php(include a.php)へpost
というイメージになるのでしょうか?
何がやりたかったかと言うと、
b.phpでヒアドキュメント形式でhtmlにより近い形で表示部のみ書いておき。
前段階のロジック処理部をa.phpで済ませ、表示要件のみをb.phpへ渡す
といった事ができないかなぁ、と思いまして。
a.phpの内部処理によって、b.phpとc.php(bと同じくview担当)のどちらに
オブジェクトを渡すかを、判断させたりできたら良いなと。
htmlソースの中に<?php〜?>を埋め込むのを極力避けてみたかったんです。
デザイナーさんから貰ったHTMLソースの先頭と末尾にチョコっとつけたし、
変数の相当する部分に、渡されたオブジェクトから値をgetする処理を
書き込むだけですめば理想かな・・・などど。
現実には、こう簡単にいかないのは重々解っておりますが、近い形が出来ないかと
思いまして、質問させていただきました。
なにぶん、PHPはまだ触れ始めたばかりなので、長文乱文、失礼しました。
0288nobodyさん
02/12/12 20:32ID:???とするとテンプレートを採用しているBBSみたいなのを実装したいって事?
つか、無理にOOPでやらなくても良いと思われ。
ちなみに漏れはテンプレートタイプのBBSを作ろうとしてるけど未だに仕様を固められない。
1. デザインファイルを別のHTMLFileとして生成し特定のキーワードを入れておく
で、そのHTMLFileをPHPに放り込んでキーワードを変数や処理に置き換えて新たに動的生成用のPHPを作る。
2. HTMLとPHPが混在している(まぁ普通そうだわな)FileでできるだけPHPを見えないようにしたものを作る。
のどっちにしようかで迷ってる。
前者のがデザイナに喜ばれるけど性に合わないし(なんか無駄な冗長っぽくて嫌)、後者はプログラム嫌いなデザイナが居ると
ヒステリーパニックが発生する。
まぁ1. だと常に動的生成するのと一端処理して静的なFileとして書き出してそれを送るって言う二通りの手段がとれる。
が、デザインを変更する際に動的は負荷がかかるし、静的はヒューマンエラーの恐れがあるしなぁ・・・
程よい中間点は無い物か。
0289nobodyさん
02/12/12 20:40ID:LCTnjWgM百人同時にアクセスしたところでせいぜい3M。安いもんだろ。
0290nobodyさん
02/12/12 20:48ID:???参考サンクス。
なんつーか、Sourceを1文字2文字でも小さくすることに悦びを感じる性質なもんでして(^^;;;
それさえなけりゃ既に前者で・・・
縮小最適化まんせー!
0291nobodyさん
02/12/12 23:56ID:???> という感じで別のPHPプログラムに、オブジェクト渡しを行う事は可能でしょうか?
> a.phpで使われたクラスのインスタンスをb.phpに渡したいのですが。
include を使わないなら・・
_SESSION にオブジェクトのインスタンスを格納出来るけど・・・そういう事ではなくて?
0293nobodyさん
02/12/13 02:24ID:g6K/HTZ10295283
02/12/13 11:42ID:eyNFb0nZ>>288
>>291
レスありがとうございましたー。
やはりPHP風の思想が理解できてなかったようで、みなさんのレスで目から鱗
がポロポロでした。
今まで、OOPのみの世界にいたので、どうも頭が凝り固まっていた様です。
文法や記号等は、調べれば一発なのですが、思想となると、なかなか本読んでも
理解しにくいですね・・・修行せねば。
ありがとうございました。また何かあればよろしくおねがいします。
0296nobodyさん
02/12/13 13:06ID:???0298nobodyさん
02/12/13 18:40ID:???おそらく>>296の言いたかったことは、PHPでオブジェクトを本当に有効に
使えるだけの仕組みが存在するのか、という事ではないかと。
PHPはあくまでオブジェクトに対応した、という形で出来ているので
言語仕様からオブジェクトありき、で設計された他の言語と比べて
オブジェクトを使うメリットは必ずしも一致しない、というのが今の感想です。
だからといって、良い悪いじゃなくて、思想がそもそも違うと言う事で・・・。
0299nobodyさん
02/12/13 19:16ID:???PHPとPerlならどちらが将来性がありますか?
また、WEB製作・運営に有利なのでしょうか?
0300nobodyさん
02/12/14 00:20ID:???将来性があるのはPHPで有利なのもPHP。
でもなPerlを知ることも大事だと思うぞ。
まずしっかりPerlやってみ。それからPHPやってみ。
アホくさくて、もうPerlには戻れなくなるから。(w
Perlにハマッチャー仕方ないけどな。これでいいか?
0301nobodyさん
02/12/14 00:42ID:p2nwe6Xb0302nobodyさん
02/12/14 02:49ID:6HjHDV03これはデフォルトの設定なのでしょうか?
またApacheの設定のおかげなのか、
PHPの設定のおかげなのか、
どっちでしょうか?
0303nobodyさん
02/12/14 03:11ID:???0304nobodyさん
02/12/14 13:54ID:???そういう意味ではJSPへGoって感じですな。
漏れの場合だとDBへの接続処理等を一まとめにする等のそんなにきちんとしてない使い方しかしてなかったら
気付かなかった。
まぁOOPを活かしたいならPHPは向かないわな。
もっとも楽をするために簡易OOPを使えるのがPHPだとは思うが。
# 個人的にはOOPを活かす為のプログラムってのは主従逆転だと思ってたりするが。
>> 299
将来性についてはどっちにしろ微妙だと思われ。
現状は戦国時代だから。
しくみや言語をごっちゃにして言うなら、ASP、PHP、JSP、Perl、C等様々な選択肢がある。
正直、これが一番ってのは判らない。
で、有利不利だけど何を作り、どれくらいの規模になるかによる。
殆どどこでも動かしたいのならPerl
環境が整ってるならPHP、ASP、JSP
ひたすら速度を求めたり、なんでもしたかったらC
などいろんな条件があるからな。(条件は他にももっと沢山あるが)
なんにしろ、広範な知識をつけるために色々遊んだほうが有利になると思われ。
# 仕事の有利不利は使用言語の有利不利ではなく製作者の能力に依存する。
0307nobodyさん
02/12/14 18:02ID:???OOPってのはOOAやOODを生かすためにあるものなので。
OOA・OODの否定はOO自体の否定な訳で。
書きなぐり個人作業ではまかない切れない世界から出てきた手法ですから。
道具を状況に応じて上手く使うってだけの問題かと思われ。
ソースの可読性と冗長性を計りにかけりゃ、可読性がめっぽう重いのがOOの世界。
これ以上はスレ違いにつきsage
0310nobodyさん
02/12/16 01:36ID:hCx9IPwF最初
header("Location: ez.php");
exit;
↑にしたらezwebで動いてくれませんでした。
(これ自体が間違ってますか?)
そこで↓のようにしてみたのですがやっぱり上手く動きません。
<?
$visitor_host = gethostbyaddr($REMOTE_ADDR);
$visitor_refe = $HTTP_REFERER;
$visitor_host= explode( "/", $REMOTE_ADDR );
switch( $visitor_host[0] ){
case "ezweb" : $file = "ez.php"; break;
default : $file = "index.php"; break;
}
include $file;
?>
申し訳ありませんがどなたか力を貸してください…。
0311404.HDML ◆StMXML.EXE
02/12/16 02:08ID:???0312nobodyさん
02/12/16 02:46ID:???$REMOTE_ADDRにちゃんと値入ってる?
User-Agent使わないのは何故?
Locationは http://で始めるのが常識。
0313310
02/12/16 03:12ID:???今FTPがつながらないのでまた報告しに来ますね。
>Locationは http://で始めるのが常識。
そうなんですか…。
今までHTMLしか書いたことがなくてPHPが使える鯖に移って
はじめたばっかりなんです…。
というかプログラム自体がはじめてでさっぱりです。
>User-Agent使わないのは何故?
USER_AGENTは偽装できちゃうんでPCからでも見れちゃうからです。
ちなみに今はこれを使っています。
$user_agent= explode( "/", $_SERVER['HTTP_USER_AGENT']);
switch( $user_agent[0] ){
case "DoCoMo" : include("k.php"); exit;
case "L-mode" : include("k.php"); exit;
case "ASTEL" : include("k.php"); exit;
case "UP.Browser" : include("k.php"); exit;
case "PDXGW" : include("k.php"); exit;
case "J-PHONE" : include("k.php"); exit;
}
これなら問題なく動いているんですが偽装をはじきたかったので…
include("k.php")ってなってるんでLocationもファイル名だけでいいんだと思ってました。
0314310
02/12/16 03:15ID:???各社対応phpファイルに振り分けにしてます。
0315nobodyさん
02/12/16 08:21ID:???0316名無しさん
02/12/16 20:09ID:eEnVcco/マルチバイトで正規表現の.←
これって日本語一文字(2byte)を意味するのでしょうか、
それとも .. で一文字?
0317310
02/12/16 21:24ID:???>Locationは http://で始めるのが常識。
なんかこれを直すだけでうまくいきました。
どうもありがとうございました。
0318nobodyさん
02/12/16 21:27ID:???http://www.studyinghttp.net/rfc_ja/2616/sec14.html#sec14.30
これも一度は見とけよ。
Location = "Location" ":" absoluteURI
~~~~~~~~~~~~
0319yani ◆saNSktNEdQ
02/12/16 22:28ID:8G3Bnajs(根助ならうまくいくもんだから)FTPサーバのほうが設定変えたのかと思って自作スクリプトを
書きはじめて、途中で一応RFCのFTPのコマンド一覧くらい見とくべえと思って
RFC読んでみたらPASVなんてコマンドがあるんで、何気無しにpassive FTPオプション
つけてwget起動したら、スカっとうまく逝ってヤンの。
ルータの設定きつくしたの忘れてたぜ。
しかし、LISTなんてコマンドをFTPサーバからのコネクションで実装しているとは. RFC恐るべし。
0320310
02/12/16 23:25ID:???かさねがさねありがとうございます。
プログラムは全くの初心者なので実は読んでもあんまり意味はわからなかったんですが…。
これからがんばって勉強します。
0321nobodyさん
02/12/17 16:01ID:luHNSdPOPHPで配列の配列をつくり、ネストしたループでどんどん値を取り出す場合
どんな書き方が一般的ですか?
0322nobodyさん
02/12/17 20:24ID:???多次元配列?
一番安直なやり方で
$a = array(/*メンドイから略*/);
$b = array(/*同上*/);
for ($i = 0;$i <= count($a);$i++){
for ($i = 0;$i <= count($b);$i++)){
/*処理*/
}
}
で、どうよ?
0323322
02/12/17 20:25ID:???多次元配列として生成してねぇw
0324nobodyさん
02/12/17 20:38ID:???0325nobodyさん
02/12/17 20:57ID:???0326nobodyさん
02/12/18 21:55ID:cw9jSdt5リファレンスにあるglob()は
Fatal error: Call to undefined function: glob()
とのことです。
0327nobodyさん
02/12/18 22:05ID:FF8U3rzWhttp://www.redbit.ne.jp/~yasu/br/brlist.cgi
こんなのをPHPで作るときにデータはテキストかデータベースか
どちらにしたらサーバにはよいのでしょうか?
0329nobodyさん
02/12/18 22:16ID:FF8U3rzWありがとございました
0330nobodyさん
02/12/18 22:16ID:3yzKjqMGhttp://petitmomo.com/mm/
ここがちょっぴりエッチ系のめぐが運営している出会いサイトです。
もしよかったら使ってみて、、、
ヨロシクです。
めぐ(^o^)-☆
0332nobodyさん
02/12/19 01:00ID:XTsygYiy$image_type = array("image/gif","image/jpeg");
でいいんっすか?
0333nobodyさん
02/12/19 01:09ID:???$st="ギコ モナー";
echo "<FORM>";
echo "<input type=text value=".$st.">";
echo "</FORM>";
と、変数にスペースやタブが入っていると、テキストボックスでは
スペース以降が消えてギコだけになってしまいます。
スペースが入ったまま、全体を表示させる方法をお教えください。
0334rwxr---wx ◆jTWOZwTY1g
02/12/19 01:55ID:???全然動かん。大幅な改修が必要な予感。あらためてphp4の便利さがわかった。
>>333
echo "<input type=text value='".$st."'>";
0336333
02/12/19 09:33ID:???> echo "<input type=text value='".$st."'>";
うまくいきました。多謝です。
'と"は同じモノに解釈されると思いこんでました……。
■ このスレッドは過去ログ倉庫に格納されています