トップページ⇒php
593コメント196KB

【待望】PerlユーザのためのPHP入門

■ このスレッドは過去ログ倉庫に格納されています
0001俺様03/02/27 15:17ID:tJsRCtRD
見事Perl→PHPへの脱皮に成功した俺様が
両者の違いを中心に講義してやる。
今までPerlマンセーだったやつはこれを機にPHPに変更しよう也。
質問もガンガン書いてくれ。
このPerlの文はPHPだとどう書くの?とか。
05585572006/04/28(金) 03:19:25ID:???
HEAD内のひとつめのSTYLEタグは不要なので消しておk
0559nobodyさん2006/05/15(月) 05:54:56ID:KM0klNRe
>>557
乙。もらいます
0560nobodyさん2006/09/20(水) 11:53:55ID:uaOOSUkQ
Perlのqqみたいなの、PHPでできんか?
05615602006/09/20(水) 12:00:23ID:uaOOSUkQ
できんか・・rubyでも同様の文法はあるんだけどなぁ・・。
ヒアドキュメントは、インデントが崩れるので大袈裟でちょっと扱いにくい。
0562nobodyさん2006/09/24(日) 06:15:19ID:???
ヒアドキュメントは当然ながら、qqも必要ないもん。
0563nobodyさん2007/05/04(金) 02:57:45ID:SmDWSadW
保守
0564nobodyさん2007/05/07(月) 03:01:24ID:???
このスレの意思とは逆なんですが、
php経験があり、perl未経験です、
perlスクリプトを眺めているのですが、どうもわからない構文が多々あります。


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

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

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

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

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

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

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

条件
データ送信用ファイル:input.html
データ受信用ファイル:check.php

input.htmlには2種類のテキストボックスを配置させる(txtNameとtxtPassword)
check.phpでは以下の4種類のメッセージを出力させること
ユーザー名とパスワードの組み合わせが正しい場合「認証成功!」
ユーザー名が存在しない場合「ユーザー名が存在しません」
ユーザーは存在するがパスワードが誤っている場合「パスワードが間違っています」
ユーザー名またはパスワードのいずれかが空白の場合「ユーザー名またはパスワードが未入力です」

check.phpにおけるユーザー名とパスワードの組み合わせは以下のとおりとする。(3ユーザー分)
ユーザー名:guest admin shs0000
パスワード:goma adm 0000

スクリプト内での以下の配列に格納し、プログラムによって判断を行うこと。
ユーザー名:$arrUser $arrUser = array(・・・・);
パスワード:$arrPass $arrPass = array(・・・・);

ヒントでfor,if文を使うとあります。

どうかお願いします。
0571nobodyさん2007/10/04(木) 11:12:02ID:Ba37oSfY
ここに神がいることを祈ります。

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

をPHPで同じことさせるにはどうしたらいいのでしょうか・・・

0572nobodyさん2007/10/04(木) 11:18:40ID:???
int(rand(64)) => rand(0, 63)

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


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

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

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

教えて下さい神様。
0579nobodyさん2008/05/27(火) 23:52:32ID:???
if(isset($_POST)) {
while(list($key, $val) = each($_POST)) {
//POST変数が存在する数だけループ $key $valで所得->処理
}
}
if(isset($_GET)) {
while(list($key, $val) = each($_GET)) {
//GET変数が存在する数だけループ $key $valで所得->処理
}
}

かな?後、
import_request_variables("GPC","{re_ とか何か接頭辞}");
を使うとGET,POST,COOKIEを一度に変数へ展開できる。
Perlの方が良く解らないので見当はずれだったらごめん。
0580nobodyさん2008/05/28(水) 23:19:19ID:???
ありがとうございます。
上述の方法でやってみます。

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

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

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

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

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

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

こんなんどうだべ?
0591nobodyさん2008/06/17(火) 23:16:04ID:???
>>590
ズッポシです!ありがとうございました。
0592nobodyさん2010/06/19(土) 14:31:36ID:???
PHPのエラー処理は、以下の三つくらいがあげられますが、
どれを使うのが一番なのでしょうか?
・tryとcatch
・set_error_handler
・PEAR_Error
自分は、try catchが一番いいと思いつかっています。
0593 忍法帖【Lv=40,xxxPT】(1+0:8) 【19.5m】 電脳プリオン ◆3YKmpu7JR7Ic 2012/11/24(土) 18:32:42.67ID:???
  ∧_∧
  ( ・∀・)      | | ガガッ
 と    )      | |
   Y /ノ      .人
    / ) .人   <  >_∧∩
  _/し' <  >_∧∩`Д´)/
 (_フ彡 V`Д´)/   / ←>>416
            / ←>>343
■ このスレッドは過去ログ倉庫に格納されています