【待望】PerlユーザのためのPHP入門 (601レス)
1-

243: 俺様 03/03/11 12:05 ID:+7fowk1S(9/9) AAS
まあ、重要な設定はこんなもんか?
後は上の日本語訳や
マニュアルにもけっこう説明がしてあるはずだから
それを読んでクレイ。
244
(1): 03/03/11 12:32 ID:??? AAS
register_globals対策。

php3 -> php4で一番困るのが
register_globals

で、Sourceを手っ取りばやく移植するにはSourceの先頭で

$hoge = $_POST["hoge"];

ってな感じにする。
245: 俺様死ね 03/03/11 12:34 ID:??? AAS
>>244
って言うか配列を変数に展開する関数みたいなの無かったっけ?
Perlだったっけか?
246: 03/03/11 12:58 ID:??? AAS
何だよここ、良スレ過ぎ!
回答ありがとう。

>>233
ググりかたが甘かったみたい。サンクスコ。
がんがってみます。
247: 03/03/11 13:09 ID:??? AAS
extract
248: 俺様 03/03/11 13:21 ID:Aj/riikG(1) AAS
レッツPHPより引用

>■修正の仕方
>以前のスクリプトを、PHP4.1.0以降に対応させるには、
>以下の文を、最初の<?以降に挿入すると、暫定的に動作するかと思われます。
>extract($_GET);
>extract($_POST);
>extract($_COOKIE);
>extract($_SERVER);

>extract($_SESSION);←セッションを使う場合

>未確認なので動作は保証しません。extractは配列を変数に展開するための関数です($_GET[f]=2002なら$fに2002が入る)
249
(1): 03/03/12 22:56 ID:??? AAS
phpをcgiとして使用した場合は

・Perl/CGIと比較して処理速度の高速化
・サーバー負荷の低減

これらのメリットは無くなるということですか?
250: 俺様死ね 03/03/13 11:13 ID:??? AAS
>>249
そだね。CGIとしてPerlやCを動かすのと状況は同じ。
それでも俺的にはメリットは余りあるけど。
後、マルチすんなボケ。
251: 俺様 03/03/13 11:51 ID:??? AAS
今日はいよいよDBについて書こう。ようやく使い方がわかってきたので。
PostgreでもMyでも使えるようにPearを用います。

対応DB
Interbase
Mini-SQL
Microsoft SQL Server
MySQL
Oracle 8 (OCI)
ODBC
PostgreSQL
省1
252: 俺様 03/03/13 11:59 ID:??? AAS
まず準備としてphp.iniの設定が必要だ。

この3つを参照。
>>236
>>239
>>242

>>239>>242はMySQLのみの場合は要らないかな。
例えばPostgreSQLを使いたければ
;extension=php_pgsql.dll

extension=php_pgsql.dll
省1
253: 俺様 03/03/13 12:09 ID:??? AAS
MySQLのみインストール方法も書いておこう。

外部リンク:www.mysql.com
ここからバージョンを選んで(勇気ない俺は4ではなく3.23)
Windows downloadsってのを落とす。
で、seteupを実行してnext連打でOK(一応要確認)。

インストールしたらc\:windows辺りにmy.iniってファイルが出来ていると思うので
それを開いてこれを追加。

[mysqld]
default-character-set=sjis

以上で完了だ。
省2
254: 俺様 03/03/13 12:11 ID:??? AAS
ああ、後winmysqladmin.exeってのも
一度実行してユーザー名とパスを決めるように。
外部に公開しない場合はキャンセルでも良いでしょう。
255: 俺様 03/03/13 12:17 ID:??? AAS
PHPにはいる前に単独での動作確認もしておきましょう。
DOSプロンプトで

C:\>mysql\bin\mysql
で、
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 50 to server version: 3.23.55-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

こんなふうになったら成功だ。
256: 俺様 03/03/13 12:24 ID:??? AAS
Pearはここを参考。
外部リンク:pear.php.net

調べたところによるとWindows用PHP4.3以降では
標準で付かなくなってしまったらしいので
上を参考に落としておきましょう。
257: 俺様 03/03/13 12:25 ID:??? AAS
もちろん4.2以前から使ってた人は
最初からPearも使用できます。
258: 俺様 03/03/13 12:30 ID:??? AAS
というか調べてるうちに(・∀・)イイ!サイト見つけたな。
これ見れば俺様の説明なんぞ用なしかも。
外部リンク[html]:tsuttayo.sytes.net

これ見てphpMyAdminとかも入れておくと良い。
ブラウザからアクセスできるのでレンタル鯖などでも手軽に使えるのが特徴。
259: 山崎渉 [(^^)] 03/03/13 17:01 ID:??? AAS
(^^)
260: [age] 03/03/15 21:28 ID:??? AAS
age
261: 03/03/15 22:18 ID:??? AAS
MySQL入れました。
最初、エラーが出て焦りました。
mysqladminいいかも。
262
(1): 03/03/19 23:10 ID:??? AAS
つづきまだー
263: 俺様 03/03/19 23:51 ID:??? AAS
>>262
何の話題がいい?
語るべきことは大体語っちゃったから
もう全てのPerlスクリプトを移植できるはずだ。
264: 03/03/20 01:11 ID:??? AAS
実践編が欲しいな。

なんかのコピペジェネレータを作るとか。

てかフォームを表示して受け取ってとかやってるとすんげー
HTMLとPHPのコードが入り乱れて汚くなっちゃうんだけど、どうすりゃいいの?
265: 03/03/20 15:43 ID:??? AAS
上でデータを作って下で表示させりゃいい。
<?

//極手抜き
$hoge = $_POST["hoge"];

?>
<HTML>
<H1><? print $hoge; ?></H1>
</HTML>

とか。
266: 03/03/20 16:41 ID:??? AAS
俺様殿江。ファイルとディレクトリの扱い方について解説して下さい。
267: 03/03/20 16:59 ID:??? AAS
Perl の Taint モードみたいのって、PHP にありますか?
268
(1): 03/03/20 19:10 ID:??? AAS
Perlのexitや__END__みたいなヤシはありますか?
269
(1): 03/03/20 19:39 ID:??? AAS
$fh = @fopen($file,"w");
の@はperlの何に相当するんですか?単にfopenじゃイクナイの?
270
(1): 03/03/20 20:28 ID:??? AAS
>>269
@をつけると、エラー出力を抑止する。
つけなくてもいいけど、その場合はfopenに失敗したときにエラーがブラウザに返される。
271
(1): 03/03/20 21:50 ID:??? AAS
>>270
ありが?。
それじゃ代わりにperlみたいに
$fh = fopen($file,"w") or die("しぼんぬ");
ってやってもイイのかな。
272
(1): 03/03/20 22:09 ID:??? AAS
>>271
いやだからそーすると、しぼんぬの前にエラーメッセージが出てしまう。

$fh = @foepn($file, "w");
if(!$fh){
 die("しぼんぬ");
}
273: 03/03/20 22:15 ID:??? AAS
>>272
なるほど。ありが??
274
(1): 03/03/21 01:11 ID:??? AAS
>>268
exitはexit()
__END__や__DATA__はないんじゃないかな
275: 03/03/21 19:33 ID:??? AAS
>>274
さんくす
276
(1): 03/03/25 14:18 ID:CVcoKJbJ(1) AAS
メモ。

$a = $b || $c;

perl では、$b が false の場合は $c が $a に代入される。
php の場合は、 $a には $b || $c の bool値(0 or 1)が入る。
277
(1): 03/03/25 16:37 ID:??? AAS
>>276
それJavaScriptでもできたなぁ。
278
(1): 03/03/26 06:38 ID:l1CVp/e0(1) AAS
ISPによっては、PEARとかの拡張モジュールが入ってない
ところがあるだろうけど、自分で使えるように拡張できるの
ですか?
例えばPerlでいえば、モジュールを自分のディレクトリに入れ
ておけばいいけど、そーゆーことはPHPでできますか?
279
(1): 03/03/26 09:07 ID:??? AAS
>>277
ホントだ。
$foo ||= 'bar'; とか…は流石に無理かな。
ちなみに、python でも or を使って同様のことが出来ました。

>>278
出来るよ。ただし、共有のサーバーにインストールする場合は、
いままで自分のHOMEのライブラリを読んでいたのが、
ISPがPEARをインストールして突然ライブラリのバージョンが変わったりとか
…ありそうな話なので気をつけて。
280: 03/03/27 05:59 ID:p+/0Vcby(1) AAS
>>279
できるのですか。
PHPは、PHP.INIにいろいろな基本設定を書いたりするようなので、
通常ISPでCGIやると、それを編集するのは許されないだろうから
無理だとおもっていました。

PHP.INI に記述された設定は、スクリプト内で変更できるのですか?
281
(1): 03/03/27 08:34 ID:illH7cXT(1) AAS
> PHP.INI に記述された設定は、スクリプト内で変更できるのですか?
ini_set -- 設定オプションの値を設定する
string ini_set ( string varname, string newvalue)
だけど、全ての設定が変更可能ではなく、pathの設定とかは確か無理だったかな。

include_pathの設定は、カレント・ディレクトリに
<?php require_once '/full/path/of/PEAR.php'; ?>
とか、リンクを PEAR.phpと言う名前で置くことで対応。
282: [age] 03/03/27 10:50 ID:??? AAS
Perl の
$ perl -wcT hoge.pl
に相当する PHP の簡単な文法チェック方法って無い?
283
(1): [質問age] 03/03/27 11:08 ID:??? AAS
質問です。

例えば名前とトリップを分離する場合、Perl なら
if ($FROM =~ /(.*)(\#\S+)/) {
  $name = $1;
  $trip = $2;
}
と、$1, $2 使って楽できるんだけど、
PHP で↑の $1, $2 みたいなモノに相当するのって何ですか?
284
(1): 03/03/27 11:16 ID:??? AAS
>>283
PerlならsplitにLIMITを指定して使い、分割すると思うが・・・・
PHPでもsplitでしょ。
285: 03/03/27 11:21 ID:??? AAS
>>284
あー例が悪かったですね。丁度身近にあったので出しちゃいました。
要はマッチした部分を簡単に再利用できないか?という質問です。
つまり、Perl の $1, $2 に相当するモノって何だろう、ということです。
286
(2): 03/03/27 11:25 ID:??? AAS
\\1,\\2
287: 03/03/27 12:02 ID:??? AAS
>>286
\\1, \\2 ってどう使うのでしょう?
マッチングの後に、print \\1; とかやったらエラーになりました…。

再度、google 様に問い合わせたら、
if (ereg("(.*)(\#[^ \t\n\r\f]+)", $FROM, $regs)) {
  $name = $regs[1];
  $trip = $regs[2];
}
でいいみたいですね。調査が甘くてすみません。
288: 03/03/27 12:52 ID:??? AAS
自己レスです。
\\1, \\2 は
$url = ereg_replace("(外部リンク:ime.nu", "http://\\2", $url);
こうでしたか。
レスありがとうございました。>>286
289
(1): 03/03/27 14:34 ID:??? AAS
magic quotes gpc なるヤツでここしばらく悩んでた。
勝手にエスケープされるなんて、まるで想像もつかなかった。
Perl → PHP への道、俺にとってはかなり遠い。でもガンガルsage

ところで tr/ab/cd/ って PHP ではどーやんの?
290
(1): イ奄様 03/03/27 16:23 ID:??? AAS
>>289
$hoge=strtr($hoge, "ab", "cd");
291: 03/03/27 16:32 ID:??? AAS
>>290
サンクスコ!!
292: 03/03/28 04:03 ID:??? AAS
俺様ありが?

C/C++とPerlとVBとPascalとASM位しか知らなかったのだが、
よーやくPHPに手が伸びそうでつ。
293
(1): 03/03/28 06:56 ID:NA3CJ6rA(1) AAS
>>281
教えていただき、ありがとう。

システム側で設定したPHP動作設定値を変えられないとなると、
ISPで利用する場合、大きな壁になりそうですね。

例えばアップロードファイルのサイズは2Mまでだから、それを超え
るものをアップさせる仕様に対応できない。
PHPでWebアプリ組んでも、いつかはユーザ要件に対応できずに全部
Perl等に書き直す時が来るかも、ということでしょうか?
294
(1): 03/03/28 08:06 ID:56FSUIhD(1/3) AAS
>>293
>>293
WEB用途にPHPを使うなら、.htaccessでphp.iniの設定を上書きする方法があります。
アップロードサイズの制限を変更するには、
upload_max_filesize と post_max_size の値を上げることで対応出来るかな。

PEAR のインストールは、多分 include_path に PEAR のpathを追加するだけでOKだと思う。
295: 03/03/28 18:00 ID:56FSUIhD(2/3) AAS
既出だけど、三項演算子のネストではまった事あったのでそのときの教訓。
Perl と PHP では、演算子の優先順位に結構違いがあるので
一度目を通しておこう。

$r =
 ($foo < $bar) ? "LESS" :
 ($foo > $bar) ? "GREATER" :
 "EQUAL";
296
(1): 03/03/28 18:49 ID:56FSUIhD(3/3) AAS
>> 282
php -l script.php

-w は、error_reporting(E_ALL); に相当?(かな?)
Taint モードについては、私も前に探したことあるけどPHPには見つけられなかった。
汚染チェックは、自主的にそういう習慣を身につけるしかないのかな。
297
(2): 03/03/28 19:00 ID:??? AAS
@sortdata = sort { (split(/\,/,$a))[2] <=> (split(/\,/,$b))[2] } @hogehoge;
Perlでいう↑みたいなことはPHPではどうやればできますか?
298: 03/03/28 19:19 ID:??? AAS
>>296
おぉ、回答ありがとう。
299: 03/03/28 20:35 ID:/IEo7+Sn(1) AAS
AA省
300: 03/03/29 13:38 ID:CQcFf7wk(1) AAS
>>294
回答ありがとう。
301
(1): 03/03/29 18:28 ID:??? AAS
%hash = map { $_ => 1 } @list;
とか、
@hash{@list} = (1) x @list;
Perlでいう↑みたいなことはPHPではどうやればできますか?
302
(1): phpformperl 03/03/29 20:26 ID:kc16+nkl(1) AAS
手本になるようなきれいなPHPコードどれかしってまっか?
やっぱxoopsでっか?
303
(1): 03/03/29 22:26 ID:??? AAS
>>302
XOOPSを積極的に弄っている身としては残念なことだが、
決してきれいなコードではないし、流れを追うのも面倒。
過去のしがらみとかあるので大きく変えられないことや、
複数人で作っているが、細かい部分で明確な規定がある訳ではないので
コア、標準モジュール、果ては標準外の勝手モジュールまで入れると
コードの統一はされていないと思っていい。
フレームワークとしては非常に緩いのでモジュールのコードまで
含めるのは本来フェアではないのだが。

あとJpGraphもコードはちょっとね。便利に使わしてもらってますけど。
304: phpfromperl 03/03/30 13:14 ID:fNA6Ajxw(1) AAS
>>303
サンクス
とりあえず手本にさせてもらいます。
いろいろ仕掛けをつけやすそうだし。
ほかよりましなようなので。
305
(1): 03/03/30 21:07 ID:??? AAS
sub test {
 my $num = 0;

 return sub {
  $num += shift if @_ == 1;
  return $num;
 }
}
Perlでいう↑みたいなことはPHPではどうやればできますか?
306: [深読みしてみる] 03/03/31 00:21 ID:??? AAS
>297,301,305
PHPでFP(関数プログラミング)でもやりたいのかな?

lambda 代わりに create_function,
array_(map|reduce|filter) 後、array_walk, usort。
で、大体御希望の事は出来ると思います。

ただし、…前にも書いたけど &&, || が倫理値を返したり、
…かといって三項演算子を使おうとすると今度は演算子の優先順位が違ったり、
他にも変数のスコープ等、細かな違いがいろいろ有るので、
PHPでのFPはあまりお勧めしない。素直にパラダイムシフトした方が良いと思う。

例えば >305 だと、
省12
307: 03/03/31 00:21 ID:D273gBu9(1) AAS
# 突っ込まれるかもしれないので、一応補足。
現行のバージョンのPHPでは、すべてpublicメンバになるので、
$numへ直接アクセスすることが可能。(Perlのオブジェクトでも同様だよね)
現状(PHP4)では、完全に隠蔽することは出来ない。…はず。(PHP暦浅いので自信なし。フォロー求)

# 外部リンク[txt]:www.php.net を読んだところ、
# zend2 engine/PHP5? では private が使えるらしい。
308: 名無しさん@Emacs 03/03/31 17:22 ID:mhlggPCn(1) AAS
perldoc モジュール名、perldoc -f 関数名に該当する PHP のやり方って
なんでしょうか?
309: 03/03/31 18:46 ID:??? AAS
php.netで検索する。
310
(1): [さげ] 03/04/01 02:03 ID:??? AAS
ブラウザのアドレス欄に
php.net/関数名
pear.php.net/モジュール名
311: 03/04/01 18:35 ID:??? AAS
倫理値w
312: [age] 03/04/01 19:21 ID:??? AAS
ぷりぃず、晒さないでw
訂正 s/イ/言/
313: <> 03/04/01 20:18 ID:iGZ3zwAc(1) AAS
>310

ローカルには作れんもんでしょうか?
ADSL でも結果が出るまでの "待ち" が気になるの。
314
(1): 生徒1 03/04/01 23:58 ID:2arYjAuZ(1) AAS
foreach (@pairs) {
($name,$value) = split(/=/);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
&jcode'convert(*value, "sjis", "", "z");
$value =~ s/&/&/g;
$value =~ s/</</g;
$value =~ s/>/>/g;
$value =~ s/"/"/g;
$value =~ s/\r\n/<br>/g;
省5
315: 03/04/02 01:58 ID:??? AAS
>>314
ネタ?
316: 03/04/03 16:31 ID:??? AAS
> 倫理値w
右か左を返すんだよ
317: 03/04/08 14:23 ID:??? AAS
PHPってx演算子ないの?
print "-" x 10;
みたいな
318: 03/04/08 15:41 ID:??? AAS
str_repeat()が近いよ。
319: 03/04/08 22:26 ID:??? AAS
perl にあって PHP にないもの。
PHP にあって perl にないもの。

…って何かないかな?
320
(2): 03/04/11 00:44 ID:fBEofA1c(1) AAS
年寄りデザでつが,これから極めるのならPerlとPHPどっちでつか?
ただPerlと違い,初心者向けの本がPHPにないところが痛いでつが。
321: 03/04/11 00:47 ID:??? AAS
でつ厨にはどちらも無理でつ
322: 03/04/11 03:50 ID:??? AAS
”極める”のなら、Perlの方が面白い。
323
(2): 03/04/12 05:30 ID:sfZex8vW(1) AAS
>>320
私も年寄りですが、Perl、PHPを使ってメシ食ってます。

まったくの初心者が始めるならPHPですね。
HTTPプロトコルをあまり意識する必要がないから、
ブラウザに文字を表示させるのは簡単です。
そのコードも単純明快に理解できます。

一方Perlは、ブラウザに文字を表示させるためには
表示する処理の前に、何行かのおまじないを書かな
ければいけません。
そのおまじないを理解しようとすると、初心者では到底
省3
324: 03/04/12 06:02 ID:??? AAS
Perlの方が幾分ややこしい気はするね。
Perl->PHPは入りやすいらしいけど逆は結構厳しい。
ちなみに、私は後者です…。
325: 320 03/04/12 22:12 ID:3Lo6Ghrc(1) AAS
>>323
Thanksです。
PHPだと入門書でいきなりECサイトまで行ってしまうのですが,
(チャット作成までなんとかついていっている程度)
Perlだと入門書で息切れするような。。。(とてもECサイトまでナンテ
行きませんよね?)
ただ,やはりデザなので自分一人でECサイトまではやりません。
外に頼むまでもない事を自分でやれるようにするという感じです。
(極めるという表現が不適切でした。)
データバのソートとか,Webの自動更新とか。
省1
326: 03/04/13 00:12 ID:??? AAS
@array = ($query =~ /([0-9a-fA-F]{4})/g);

これをPHPで表現するとどうなるんですか?
327
(1): 03/04/13 00:12 ID:??? AAS
>>323
おまじないってなんだ?CGIとして使ったときのヘッダーのことか?
328
(1): 03/04/13 00:56 ID:??? AAS
>>327
print "Content-type: text/html\n\n";
だと思われ
329: 03/04/13 01:06 ID:??? AAS
>>328
ヘッダーじゃん。
330: 03/04/13 01:12 ID:??? AAS
おまじないって言ったら1;が浮かぶ
331
(3): 03/04/13 03:24 ID:Ba9KZRzY(1) AAS
PHPって配列厄介だなぁ。
332: 03/04/13 03:55 ID:??? AAS
>>331
PHPの配列の何が厄介なん??? ほれいってみ。教えてあげるよ。
333
(1): 03/04/14 01:24 ID:??? AAS
>>331
僕PHPはじめて1週間だけど配列はだいたい分かったので
配列ですが僕はすぐ理解できたので
331さんの厄介とこが分かれば教えてあげますよ
334
(3): 03/04/14 01:28 ID:??? AAS
オレは>>333の日本語が分かりづらい
335
(1): 03/04/14 01:42 ID:??? AAS
>>334
同じく
336
(1): 03/04/14 02:16 ID:??? AAS
>334
禿デゥ
337: 03/04/14 14:30 ID:??? AAS
>>331=>>334=>>335=>>336 反応しすぎ。
ぶっちゃけ、331はバカだな。(w
338
(1): 03/04/15 16:55 ID:JlWa+G1C(1) AAS
phpでperlでいうところのpackageの作り方教えてください。
339: 03/04/15 18:07 ID:??? AAS
331は、ハッシュと配列が一緒なのが気に入らないらしい。あと、
いちいちarray_*系の関数を使わないといけないのも面倒らしい。
340: 03/04/15 19:26 ID:1VLAH3RO(1) AAS
>>338
phpは名前空間を定義できない。
341: 山崎渉 [(^^)] 03/04/17 12:01 ID:??? AAS
(^^)
342: 山崎渉 [(^^)] 03/04/18 15:30 ID:??? AAS
(^^)
1-
あと 259 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.029s