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

491: 03/12/18 16:46 ID:??? AAS
>487
どうせろくでもないベンチスクリプトだろ

>488
既出

>789
!
492
(1): 03/12/18 20:33 ID:??? AAS
>>489
$str = ...
if (ereg("[^a-zA-Z0-9]", $str)){
die('リストに含まれない文字が検出されたYO!');
}

多分"[^[:alnum:]]"でも。
493: 03/12/18 20:37 ID:??? AAS
そういうことじゃないと思う。
494
(1): 03/12/21 18:56 ID:16zntf/g(1) AAS
>492

ぇ?ネタですか?(´・ω・`)?モニュ

-zA-Z0-9にマッチでエラー表示
じゃないでつ。文字列中に例えば
記号が入ってたらエラーにする処理でつ。
495: 03/12/21 20:52 ID:??? AAS
ネタ?
491のでええやん。elseでもいいし。
496
(1): 492 03/12/21 21:11 ID:??? AAS
>>494
a-zA-Z0-9 *以外* の文字にマッチしたらdieしますが、違うのですか?
497: 03/12/22 17:55 ID:??? AAS
asdf
498: 03/12/22 19:05 ID:??? AAS
ghjk
499: 03/12/23 11:09 ID:hM9+gLxR(1/2) AAS
>496

ぉぉやってみたら確かにマッチした。さんくすこ。
PHPだと’^’って反転する意味なのですか・・・?
なんか小さな幸せを発見したw
500: 03/12/23 11:15 ID:hM9+gLxR(2/2) AAS
ぁぁぼけてすまそ。。。
文字クラスの反転記号ですね。記憶から全く遠のいていますた。
(PHPの独自拡張なのかとさえ思ってしまったw)

もう一度勉強し直し逝ってきま _| ̄|○
501
(2): 04/01/19 18:13 ID:??? AAS
>>481
で、どのへんまでできた?
なぜかおれも作るハメになってしまって、
BNFで定義しきれないPerlを無理やりBNFレベルで定義中なんだけど。
そこまでPerl詳しくねーんで困ってる。
parrotのライブラリにPerl6のパーサーやってるっぽいんだが、、むずい。
だれか、なんちゃってPerl BNF定義した人おらんですか。。
502
(1): 501 04/01/19 18:23 ID:??? AAS
ガク
コンテンツか。。ツールじゃないのね。。シツレイ
503: 04/01/23 00:02 ID:Zt/PsL2C(1/3) AAS
質問君です。すいません。

idはadmin、passは111111だったとして、

test.php?id=admin&pass=111111と入力します。

test.php内で
idとpassの値を受け取るには、$id=param[id]でしたっけ?
504
(1): 04/01/23 00:24 ID:Zt/PsL2C(2/3) AAS
extract($_GET);

$_GET["id"];
$_GET["pass"];
505
(1): 04/01/23 00:46 ID:??? AAS
>>504
なぜ、extract()
506
(2): 04/01/23 01:03 ID:Zt/PsL2C(3/3) AAS
>>505

ここ読みました。
外部リンク[txt]:php.s3.to

これも対策済まれている方が多いことですが、

Warning: REG_EBRACK in
eregi関数で文字比較するとき、全角の「ー」の2バイト目が半角では“[”になるのが原因らしい・・
簡単な解決方法ありますでしょうか?
507: 俺様 04/01/23 01:17 ID:??? AAS
>>501-502
いや、俺もツール考えてみたんだわ。
PHPなら文法定義しているの発見したんだけど
Perlは見つからないんだよね。。。

perly.yにあるyacc文法も読んだんだけど
文法以前に字句解析どうしようって感じで。
508: 04/01/23 02:04 ID:??? AAS
>>506
extract() するなら、$_GETでアクセスする必要ないかと…

register_globals=off がデフォになったのは、
未初期化の変数が汚染されたりとか
セキュリティ面の問題が利便性より重要だったからではないのかなぁ
なので、extract()するならその配列の安全チェックをしてからのほうが良いかと。
509: 04/01/23 02:08 ID:??? AAS
>>506後半
内部エンコーディングをEUCかUnicodeにする。
入力変換をautoにする。
これで、内部では、EUCかUnicodeになるので、その手の問題に遭遇しない。
海外製ソフトでSJISはいいことがない。
510: 04/01/23 02:13 ID:??? AAS
入力変換はHttpInputだけなので、ファイルを読むときなどはMb_かjcode.phpで
内部エンコードにそろえてやる必要があると思います。
511
(1): 04/01/23 23:10 ID:??? AAS
list()でログファイル(5MB程度)を参照して検索などを作るとき、

fopen()
flock()
Fclose()
しなくてもログファイルの破損などは起こらないでしょうか?
書き込み中はロックしてますが、list()中はロックしないとします。
512: 04/01/24 18:46 ID:??? AAS
>>511
listでファイルは参照できないはずだが????
513
(1): アノニマス 04/02/16 18:58 ID:O91ZKuNr(1/2) AAS
正規表現でマッチできないけど?
どこがおかしいの?

//10桁の1...と12桁の2...の配列がある。
$str = array('1111111111','222222222222');
//10桁以上、10桁以下の(要は10桁のみ)数値パターンを配列$resultに格納したい。
$hoge = preg_grep("/[0-9]{10,10}/",$result);
//結果、両方でてきちゃう。どうして?
print_r($result);

よろしこ。
514
(1): イ奄様 04/02/16 19:15 ID:PkrMZZ9m(1) AAS
>>513
それだと
"hoge1234567890hage"とかにもマッチする。
数字で始まり10個目の数字で終わるなら
$result = preg_grep("/^[0-9]{10,10}$/",$str);
515
(1): イ奄様 04/02/16 19:18 ID:??? AAS
$result = preg_grep("/^\d{10}$/",$str);
でもいい
516: アノニマス 04/02/16 19:35 ID:O91ZKuNr(2/2) AAS
>>514,515 イ奄様
有難うございます。なるほどよく分りました。

しかも、問題が間違えているにもかかわらずよく理解してくださいました。
重ねて御礼します。

出したかった問題は、こうでした。
$result = preg_grep("/[0-9]{10,10}/",$str);
まぁ、間違ってんだから訂正は要らないんだけどね・・・。
517: 04/02/16 21:57 ID:??? AAS
それは perl でも同じ結果だろうなと。
perlとPHPで結果が違うのかと思ったよw
518
(1): 04/03/05 15:09 ID:??? AAS
質問してもいいですか?
Perlの「undef」に相当するPHPの関数は何ですか?
マニュアル検索しても見つけられなかったのです。
スレ違いでしたらスルーでお願いします。
519: 04/03/06 02:17 ID:??? AAS
>>518
unsetじゃないかな?
520
(1): 04/03/08 22:21 ID:??? AAS
Perlだと文字列の置換をしたときに置換されたものが$1などの変数に代入されますよね。
PHPでも同じことは出来るのでしょうか?
521: 04/03/08 23:07 ID:??? AAS
>>520
自己レスです。
preg_match_allで出来ました・・・
他にいい方法があれば知りたいです。
522
(1): 04/04/06 09:54 ID:Rt5G2mKK(1) AAS
自作関数に渡した引数は、Perlでは$_[0],$_[1]...に、
JavaScriptではarguments[0]...に、入るじゃないですか。
PHPでは何に入るのでしょうか?
もしかして必ず function x($a,$b,$c) の様にする必要があるのでしょうか?
何とかして引数を配列として扱いたいのです。
523
(1): nobody 04/04/06 11:33 ID:??? AAS
>>522
function ほらよ ($配列) { print_r($配列); }
ほらよ(array('a', 'b', 'c'));
524
(1): 04/04/06 14:51 ID:??? AAS
>>523
有難う御座ります。
PHPって関数名や変数名に日本語使えたんですね 驚きました。
525: 04/04/06 14:59 ID:??? AAS
(^∀^)ゲラゲラ
526: [age] 04/04/18 21:32 ID:??? AAS
(^∀^)ゲラゲラ
527: 04/04/19 04:39 ID:??? AAS
(^∀^)ゲラゲラ
528: 04/04/19 13:09 ID:??? AAS
(^∀^)ゲラゲラ
529: 04/04/19 21:16 ID:??? AAS
( ・∀・)σ)´Д`)>>524
530
(4): カポコン 04/04/21 13:43 ID:??? AAS
外部リンク[html]:f13.aaacafe.ne.jp

よろしこ。
531: 04/04/21 19:32 ID:??? AAS
>>530
実に頭の悪そうな文章ですね。
532
(2): 04/04/21 21:28 ID:??? AAS
>>530
Shift_JISでスクリプトを書いてはいけない理由、
どうしてもShift_JISで書きたい場合はどのPHPをインストールすべきとか
mb_string周りのPHP.iniの設定の仕方、設定のオーバーライドの方法を解説して欲しい。

あと、PerlにもHTML埋め込みを行う方法がいくつかあるよ。
533
(1): 04/04/22 03:05 ID:??? AAS
>>530
俺もPerlはあまり好きじゃないが
>認めざる終えません。
なんて文章書く人の言語構造をむしろ疑いたい。
534: カポコン 04/04/26 10:25 ID:??? AAS
>>532
その真珠のヴァージョンは何ですか?
requireを使用するとか笑わせる答えじゃないですよね?

>>533
>しかし、CやJavaなどと比べPerlの方が極力型を意識しない言語仕様
>になっているというのは認めざる終えません。
あーそんな風に書いてたんだね。そのうち、なんとか汁。

# 真珠批判やってるサイトって他にもあるもんだねー。
535
(1): 532 04/04/27 05:54 ID:??? AAS
マジレスした自分に鬱。
536
(1): 04/04/30 23:59 ID:um4DKqqr(1) AAS
perlにおいて、csvファイルを配列に取り込み、複数項目(カンマ区切りの2列目と3列目)でソートをかける為に
下記のような方法を取っていたのですが、
これをphpで行う場合、multisortでは1項目でのソートしか出来ないと
マニュアルに記述されていますが、どのような処理でなら可能でしょうか?

@DATA = sort { (split(/,/,$b))[1] <=> (split(/,/,$a))[1] || (split(/,/,$a))[2] <=> (split(/,/,$b))[2]; } @DATA;
537: 04/05/01 06:06 ID:??? AAS
>>536
外部リンク[php]:jp.php.net
538: 04/05/01 07:23 ID:??? AAS
>>530
あまり真面目に見ていないけど、もっと説得力ある文章になるくらい
たくさんプログラムを作ってみた方が良いんじゃないかな。
今の状態だと言語の違い以前に本当にプログラムを作った事が
あるんだろうかと疑いたくなるよ。

>>535
気にすんな
539: 04/05/03 01:13 ID:N715jxDT(1) AAS
ASPユーザですが、PHPへの移行への許可は頂けますか?
540
(1): 04/05/08 15:25 ID:??? AAS
perlとPHPのどっちが偉いかとかいった下らない話題につき合うつもりはないが

外部リンク[htm]:f13.aaacafe.ne.jp
↑を MVC と呼ばれては碇浸透

コンテンツとデザインの分離スレにちょっと鯉 >>350
541: 04/05/15 03:52 ID:??? AAS
>>540
そいつはマジメに運営してないからほっといていいよ。
542: 04/05/20 12:08 ID:NShBOzWM(1) AAS
PHP普及の原因は、イスラエル・Zend社のマーケティングの成功にある。
?Perlでは別インストールで多くの人が知らないデーターベース利用を標準で使用できるようにし、「データーベースが簡単に取り扱える」というイメージを特に強く植えつけた。
?ウェブサイト作成への特化。例えば、セッション管理がそうだ。
?ソースの隠蔽による著作権保護を可能にした。
データーベースを使いたいが、使い方がわからない。そこに、PHPなら使えるという情報が先に入る。これで、PHPに入った人もかなり多いはず。
PHPの言語仕様はZendに大きく左右される。
二年ほど前、PHPが出始めた頃には、変数のスコープがPerlとまったく同じ仕様だった。
もともと、Perlのソースコードを改編して作成されたPHP。
↓PHPの歴史
外部リンク[php]:php.planetmirror.com
省11
543: 04/05/20 16:11 ID:??? AAS
↑もう5回くらい見たんだが。しかも全部IDが同じだ・・・見間違いだよな?
544
(1): 04/12/07 16:29 ID:??? AAS
最近やっとphpの配列は、perlの配列のリファレンスだと考えればいいんだとわかった。
んで、phpで関数に配列を引渡すときは、配列のコピーのリファレンスを渡していると考えればいいとわかった。

だから、phpのこれは
$array[$index] = $value;

perlのこれに対応するわけじゃなく
$array[$index] = $value;

これに対応しているわけで
$array->[$index] = $value;

phpのこれは
$array = array($val1,$val2,$val3);
省11
545
(2): 05/03/03 01:29 ID:eDjoFwC+(1) AAS
Perlのlast関数にあたるものはPHPのbreak関数かと思いますが、
next関数にあたるものは何になるのでしょうか?

ご教示いただけますと幸いです。
546: 05/03/03 07:00 ID:??? AAS
>>545
continue
547: 05/03/03 09:43 ID:??? AAS
>>545
関数じゃないよ。制御構造と呼んでくれくれたこら
548: 05/03/03 14:56 ID:??? AAS
>>544
おれがPHP使い始めたころと同じこと考えとるな
きっと次は$がいらないんじゃないかとか
printした時に自動で配列表示して欲しいとか
正規表現や無名関数使いずれーとか
便利な関数がイパーイあってええねとか
クラスがPerlよりはおしゃれだとか

549: 05/03/08 04:57 ID:??? AAS
日本語を変数名に使えるようにすんなよとか
リファレンス変数とか可変変数で戸惑うとか
多重継承できないってなんだよとか
DBはいいなとか

550: 05/03/08 07:20 ID:??? AAS
0.0.1のバージョンアップでコアに新機能を加えたあげくにエンバグって何よとか
デフォルトでハッシュな配列はステキですねとか
array_map_recursive()きぼんとか

551: 2005/11/06(日)12:54 ID:szZvbyxN(1) AAS
perl使いがPHP使いに成ってもスキル低いのには変わらないけどな。
PHP覚える時間と暇があれば、JavaとかCが使えるようにスキル磨け。
552: 2005/11/07(月)01:20 ID:??? AAS
意味不明
553: 2006/01/20(金)19:20 ID:??? AAS
Cはもう、使う職場が限られている気がするが
554: 2006/03/13(月)04:51 ID:??? AAS
保守
555: 2006/03/31(金)03:55 ID:??? AAS
保守
556: 2006/04/27(木)19:27 ID:??? AAS
保守
557
(2): 2006/04/28(金)03:16 ID:??? AAS
スレの内容を勝手にまとめてみたのでうpするよ
俺様タンのレスぶっこ抜いただけなので
だめなようならすぐ消します。
txtだけどhtmlにリネームしてくだせ。

外部リンク[html]:bebe.run.buttobi.net
558: 557 2006/04/28(金)03:19 ID:??? AAS
HEAD内のひとつめのSTYLEタグは不要なので消しておk
559: 2006/05/15(月)05:54 ID:KM0klNRe(1) AAS
>>557
乙。もらいます
560
(1): 2006/09/20(水)11:53 ID:uaOOSUkQ(1/2) AAS
Perlのqqみたいなの、PHPでできんか?
561: 560 2006/09/20(水)12:00 ID:uaOOSUkQ(2/2) AAS
できんか・・rubyでも同様の文法はあるんだけどなぁ・・。
ヒアドキュメントは、インデントが崩れるので大袈裟でちょっと扱いにくい。
562: 2006/09/24(日)06:15 ID:??? AAS
ヒアドキュメントは当然ながら、qqも必要ないもん。
563: 2007/05/04(金)02:57 ID:SmDWSadW(1) AAS
保守
564: 2007/05/07(月)03:01 ID:??? AAS
このスレの意思とは逆なんですが、
php経験があり、perl未経験です、
perlスクリプトを眺めているのですが、どうもわからない構文が多々あります。

サブルーチン if ($hoge && $> == 0);

↑これってどういう意味を表しているのでしょうか?
ifの前にサブルーチンが存在するのと、
$hoge && $> == 0 の意味がわからんです。
565: 2007/05/08(火)00:36 ID:??? AAS
$>はuid
$hogeが真かつrootで実行されている時だと思う

> ifの前にサブルーチンが存在するのと、
Perlの基本的な変体文法なので入門書読め
566
(1): 2007/05/09(水)21:29 ID:+HRKvy3U(1) AAS
perlでハッシュの値を出力すると何故か「1/8」になってしまうんですがこれはどうすれば直せますか?
567: 2007/09/17(月)05:29 ID:j/liUul9(1) AAS
亀だが

>566
$foo=%hoge;
print $foo;

ってなってんじゃね
鯨のハラワタが散らかってるとか言われる部分だから気にするな

perl嫌になてきた
だからといってphpも嫌だぜ
Lispでもはじめようぜ
568: 2007/09/17(月)14:53 ID:??? AAS
早くもPHPユーザのためのPerl入門スレになりつつあるな
569: 2007/09/17(月)19:28 ID:??? AAS
アリガ?
570
(1): 2007/09/18(火)21:48 ID:??? AAS
基礎PHPという教本を読みながら問題を解こうとしているんですが、まったく理解できなくて
悩んでいます。
何方か指南していただけないでしょうか?
問題の内容は以下に、

内容
フォームからPOSTのメソッドを利用して「ユーザー名」と「パスワード」を送信する。
受信したファイルでは「ユーザー名」と「パスワード」の妥当性を判断してメッセージを出力する。

条件
データ送信用ファイル:input.html
データ受信用ファイル:check.php
省14
571: 2007/10/04(木)11:12 ID:Ba37oSfY(1/2) AAS
ここに神がいることを祈ります。

これ

$a1="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ./";
$a2=substr($a1,int(rand(64)),1).substr($a1,int(rand(64)),1);
$cryptpass = crypt($pass,$a2);

をPHPで同じことさせるにはどうしたらいいのでしょうか・・・
572
(1): 2007/10/04(木)11:18 ID:??? AAS
int(rand(64)) => rand(0, 63)

これだけ代えればいけるんじゃね?
573: 2007/10/04(木)14:18 ID:Ba37oSfY(2/2) AAS
>>572
あなたは神だ。
ありがとうございました^^
本当助かりました。
574: 2007/10/07(日)01:40 ID:??? AAS
>>570
まずPerlでかけるのか?
かけないなら質問スレいってこい
575: 2007/10/20(土)02:19 ID:??? AAS
漠然とした質問で申し訳ないが
単なるテキストファイルをincludeするだけだったら
SSIとPHPとどっちがサーバ負荷が少ないかな?
576
(1): 2007/10/20(土)02:42 ID:??? AAS
基本同じくらい

ただ、組み込むモジュールmod_includeとmod_phpではmod_phpの方が断然メモリ食う
577: 2007/10/23(火)00:14 ID:??? AAS
>>576
遅くなったがありがトン

すでに構築されてるサイトを引き受ける事になったんだけど
SSIだらけだったんでちょっと気になってね
PHPの方が利便性良さそうなんで移行しようかと思ったけど静観かな
578
(1): 2008/05/25(日)10:56 ID:??? AAS
&ReadParse;
while (($key,$val) = each %in) {

って言う良く見るPerlをphpで書き直すと?
extractだとPOSTとGET両方は拾えないみたいですし。
キーごとに処理を分けるのは、phpではどうしたら?

教えて下さい神様。
579
(1): 2008/05/27(火)23:52 ID:??? AAS
if(isset($_POST)) {
while(list($key, $val) = each($_POST)) {
//POST変数が存在する数だけループ $key $valで所得->処理
}
}
if(isset($_GET)) {
while(list($key, $val) = each($_GET)) {
//GET変数が存在する数だけループ $key $valで所得->処理
}
}
省4
580: 2008/05/28(水)23:19 ID:??? AAS
ありがとうございます。
上述の方法でやってみます。

助かりました!
581
(1): 2008/06/04(水)07:29 ID:??? AAS
>>578だとgetだろうがpostだろうが
すでに%inに入ってる訳だがその辺は良いのか?

>>579
俺はPHPはイマイチなんだが、$_POSTか$_GETを判別して別のハッシュに入れ
そのハッシュをeachした方が良くね?
582: 2008/06/05(木)21:39 ID:??? AAS
>>581
Perlでいうハッシュ=連想配列:$QUERY{$key} = $valで、
$_POSTや$_GETは既に判別された後のハッシュと同じと解釈してますが、
実際どうなんだろう?
583: 2008/06/06(金)10:39 ID:??? AAS
いや、ループの前に$_POSTでも$_GETでも1つにしちまえば
ループ自体が1つに出来るっていう話
584
(1): 2008/06/06(金)11:40 ID:??? AAS
つ $_REQUEST
585: 581=583 2008/06/06(金)17:14 ID:??? AAS
>>584
そんな便利なのあるんだな
元質問者じゃないが勉強になったよ
586: 2008/06/16(月)20:24 ID:??? AAS
DMYHMS形式をエポック秒に変換したいんだすが、
Perlのtimelocal()的なものがphpでありますでしょうか?
587
(1): 2008/06/16(月)21:19 ID:??? AAS
お前は風大左衛門かw
こんな感じでどうだす?

mktime(HH,MM,SS,mm,dd,yyyy);
588: 2008/06/16(月)23:26 ID:??? AAS
>>587
バッチリです!ありがとうごぜいます。
589: 2008/06/17(火)09:51 ID:??? AAS
文字列の小数点以下を削除しようと思って、("3.1415"→"3")

$PI = ereg_replace("\.\d*", "", $PI);

とすると、31415になってしまいました。perlの
s/\.\d*//;
だとうまくいくのですが、何かPHPでの注意点ありんすか?
590
(1): 2008/06/17(火)23:01 ID:??? AAS
perlちとPHPとで、正規表現がちがうでよ。

$PI = ereg_replace("\.[0-9]*", "", $PI);
$PI = preg_replace("/\.\d*/", "", $PI);

こんなんどうだべ?
1-
あと 11 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.021s