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

443
(2): 03/09/22 16:10 ID:??? AAS
分からなかったら聞きましょうね♪
444: 03/09/22 16:36 ID:??? AAS
>>443が一番意味不明だな
445
(4): 03/09/25 23:55 ID:??? AAS
perlのflock関数だったらさんざん使ったことあるんですが、
perlの場合のflock関数と比較して、
phpのflock関数を使うときの注意点って、特になんか、ありますか?

(ウェブサーバは、Apacheという前提です)
446: 445 03/09/28 00:48 ID:lxnHIT50(1) AAS
どなたかお答えくださいませ
447
(1): 03/09/28 02:01 ID:??? AAS
lockはlock専用スレがありまっせ。
448
(1): 03/09/28 02:26 ID:??? AAS
>>445
にたようなもんじゃないのかな?
たしか、PHPマニュアルにもflock関数は全ての環境で使えるもんじゃ
ないみたいなこと書いてあったし、
ネットワークファイルシステムに対応してないけりゃ、無理だろうし。
ちなみに、うぇぶさばは関係ないですぞ。
449: 445 03/09/28 03:46 ID:??? AAS
>>447
ども。のぞいてきます。

>>448
そうですね。
よく考えりゃ、どっちもOSのflockを呼び出してるってことだから、
特段変わることはないか。。。

>ちなみに、うぇぶさばは関係ないですぞ。
いや、マニュアル
外部リンク[php]:www.php.net
に、
省7
450
(1): 03/09/28 09:23 ID:??? AAS

451: 445 03/09/28 22:34 ID:jyRnC+If(1) AAS
>>450
あれ、なんかとぼけたこと自分言ってました?

ご指摘きぼんぬ
452: 03/09/29 10:34 ID:??? AAS
通りがかりだが
あまり気にする事は無いかと

マルチスレッド型を利用している場合、別々に動作している
phpは同一プロセス(の、別スレッド)で動作している事になるので
プロセス単位で排他をかけるflock()は排他の目的には使えない
ということで、HTTPdとphpの組み合わせによる、というのは正しいかも
453: 03/10/07 22:48 ID:??? AAS
保守新党
454
(2): 03/10/07 23:44 ID:??? AAS
$str =~ s/◆/◇/g;
みたいなマルチバイト文字列の置換をPHPでやるにはどうしたらいいんでしょうか。
mb_ereg_replaceはまだ実験段階らしいのであまり乗り気ではなく。
455
(1): 03/10/08 00:11 ID:??? AAS
>>454
str_replaceでも「とりあえずは」OK。
それか、文字列をUTF-8に変換してから
$str_utf8 = preg_replace("/pattern/u", "replace", $str_utf8);
でもOK。

ただしmb_ereg_replaceはライブラリのライセンス絡みでもめてたけど
関数自体は十分実用に耐えるよ。
ライブラリの変更はPHP5で行われ、ユーザレベルでの変更は
不要になる方向らしいから気にすることは無いと思うけど。

ちなみにmb_ereg系を使うときはmb_languageとmb_internal_encodingを
省1
456: 454 03/10/08 00:30 ID:??? AAS
>>455
詳細なレスありがとうございます。
試しにpreg_replaceを使った時えらく文字化けしたのでなんでだろと疑問だったんですがこれで解決しました。
一応マルチバイト文字列関数用にphp.iniの設定は書き変えてあるので、
mb_ereg_replaceを使っても将来的に問題ないということならこれでいこうかなと思います。
457: 03/10/18 23:15 ID:??? AAS
配列をpackする時ってどうすんの?
他にも$a,$b,@c,$d,…と並べて@cの内容が展開されるようにしたい時とか.
458: 03/10/27 17:51 ID:??? AAS
既出かもしれませんが、
外部リンク[htm]:www.din.or.jp
をPHPにコーディングしなおしたサイトを誰かしりません?
無いかなー。
459
(1): 03/10/28 18:22 ID:??? AAS
 $a="abcdABCD";
 $a =~ tr/[a-z][A-Z]/[A-Z][a-z]/;
 print "content-type:text/html\n\n";
 print "$a";

上のコードをPHPに移植し、

 $a="abcdABCD";
 $a=strtr($a, "[a-z][A-Z]", "[A-Z][a-z]" );
 echo $a;

と書いてみたところ、strtr()で正規表現が使えないようなのですが
何か良い方法はないですか。
460: 03/10/29 23:14 ID:dIX7j6Ca(1) AAS
perlだと、csvファイルに対してSQL文を投げられる、SQL.pmっていうのがあるんですが、
phpでそういうモジュールってないでしょうか?
(いやぁ、ほんとはDB使いたいんですけどね。。。わけあってつかえず)
461: 03/11/01 14:03 ID:5TPcc+Om(1) AAS
連休中にphp勉強したいぞーage
462: 03/11/01 14:49 ID:??? AAS
>>459
泥臭いけど・・
$a = 'abcdABCD';
$from = implode('',array_merge(range('a','z'),range('A','Z')));
$to = implode('',array_merge(range('A',Z'),range('a','z')));
echo strtr($a,$from,$to);

rangeを使って配列をつくってarray_mergeで配列合体させて
implode(perlでいうところのjoin)で文字列にして置換ってかんじ
連続する文字コードならrangeでいけるよね
463
(2): 03/11/03 00:41 ID:4CVQMxAy(1) AAS
perlでいうところの、

print qq|
 $hoge
<hr>
<a href="外部リンク:www.yahoo.com"></a>
|;

みたいの、phpでないでしょうか?

要は、変数展開もされて、”もエスケープする必要がないように書きたいのですが・・・
464: 03/11/03 00:44 ID:??? AAS
$a =~ tr/[a-z][A-Z]/[A-Z][a-z]/;

なんか無駄がないか?
465
(1): 03/11/04 00:00 ID:??? AAS
>>463
ヒアドキュメントじゃだめですか?
466
(2): 03/11/07 15:11 ID:GoKF/NUR(1) AAS
$a = 2;
switch($a) {
 case "1" : global $b = "one";
 case "2" : global $b = "two";
 case "3" : global $b = "three";
}
echo $a." -> ".$b;

みたいなことをやりたいのですが、switch文では無理ですか?
if,elseif...なら可能なのですが…
467
(1): 03/11/07 15:40 ID:??? AAS
>>466
それを実行すると1〜3のどれを$aに入れても$bが"three"になっちゃう

各分岐のお尻にbreak;付けましょうね
switch($a) {
 case "1" : $b = "one"; break;
 case "2" : $b = "two"; break;
 case "3" : $b = "three"; break;
}
468
(1): 03/11/07 15:43 ID:??? AAS
>>466
よく嫁
外部リンク[php]:www.php.net
469: 03/11/07 15:59 ID:??? AAS
>>467-468
ありがとう。自分、厨すぎました。
470: 463 03/11/12 04:51 ID:FrBzA+Qu(1) AAS
>>465
ありがとうございます。

そういえば、php4からヒアドキュメント使えるようになったんですよね。
(php3の知識はあっても、4の知識はあまりないもんで)

ヒアドキュメントで逝ってみます。

ただ、print qq|ほげー|;の手軽さが、なれてしまって、ラクなんですけどね。。。
ともかく、ありがとうございました。
471
(1): 03/11/12 05:09 ID:??? AAS
my $xやvar xみたいな変数の宣言をする方法はないのでしょうか?
472: 03/11/12 06:00 ID:??? AAS
>>471

↓このへんわかりやすいんちゃう?
外部リンク[php]:itbtech.itboost.co.jp

<引用>
PHP の変数は宣言がありません。
また、明示的に型の指定をしてやる必要もありません。
この辺は Perl と同じです。
必要に応じてキャスト(相当のこと)を行うことはできます。
</引用>
473
(2): 03/11/12 17:05 ID:??? AAS
Perlで$a |= "default a";
という書き方を多用していたのですが、
PHPでは$a = !isset($a) ? "default a" : $a;
でよろしいのでしょうか?
474
(1): 03/11/12 20:14 ID:??? AAS
$a ||= "default a";
なら、
$a || ($a = "default a");
$a or $a = "default a";
とか。

$a |= "default a";
はそのままで通る。
(perl/PHP共に期待したものではないと思うけど)
475
(1): 473 03/11/12 21:19 ID:??? AAS
>>474
すみません、先ほどは$a ||= "default a";
のことを言っておりました。
で、$a || ($a = "default a");
ですと、$aが未定義の場合、undefined errorが出てしまいます。
(当方error_reporting = ALLにしています)
476: 03/11/12 21:56 ID:??? AAS
>>475
isset($a) || ($a = "default a");
これでどう?

厳密にはこうだろうけど、
(isset($a) && $a) || ($a = "default a");
長すぎ。

# PHP的には、先にデフォルトを設定するものだと思ってた。
# PHPのエロイ人plz。
477: 473 03/11/12 22:08 ID:??? AAS
> isset($a) || ($a = "default a");
これなら問題なく実行できました。この書き方が一番スマートそうですね。
478
(1): 03/11/12 22:08 ID:??? AAS
GETのパラメータ区切りに&じゃなく;を使うにはどうしたらよいのでしょうか?
479: 03/11/12 22:34 ID:??? AAS
>>478
php.iniの設定変更
arg_separator.input = ";&"
しか思いつかない。

Perlと関係なければ、
【PHP】質問スレッド Part11
2chスレ:php
こちらへどぞ。
480
(1): 03/11/26 02:30 ID:??? AAS
俺様帰ってこないかな
別に用は無いんだけど
481
(2): 俺様 03/12/05 23:06 ID:??? AAS
>>480
この板はしばしば見ているぞ。
最近はperl2phpのコンテンツを立ち上げてがんばっているところだ。
482: 03/12/12 00:39 ID:??? AAS
>>481
perl2php期待してます。
php勉強してるので…
483: 03/12/12 01:34 ID:??? AAS
外部リンク:www.cs.wcupa.edu
484
(1): 03/12/14 00:06 ID:??? AAS
ソケット通信をする際、相手方のIPアドレスがわかっている場合、
fsockopenの第一引数にIPアドレスを入れれば、
内部的に名前の解決をしなくて済むのでしょうか?
485
(1): 03/12/14 21:20 ID:??? AAS
>>484 外部リンク:jp.php.net
IP address がすでにわかってるのに名前の解決?
Ip address => name なら、そもそも必要ない。

fsockopen関数の内部で、PHPが名前え解決するかどうかとういう話であれば、
inet_aton が失敗すれば(第一引数のhostが IP address を表す文字列でない場合)、
名前の解決(gethostbyname)がされる様です。
486
(1): 03/12/14 23:41 ID:??? AAS
>>485
>fsockopen関数の内部で、PHPが名前え解決するかどうかとういう話であれば、
>inet_aton が失敗すれば(第一引数のhostが IP address を表す文字列でない場合)、
>名前の解決(gethostbyname)がされる様です。

なるほど、ありがとうございます。
大変参考になりました。
487
(1): 486 03/12/17 00:08 ID:??? AAS
IPアドレスでfsockopenと、リモホでfsockopenとで、
処理にかかる時間を比べたんですが、
前者の方が多少遅い結果になりました。
perlの場合とはやはり違うのでしょうか…?
488
(1): 03/12/18 13:37 ID:SDZbq9mq(1/2) AAS
perlでいうtr/a-zA-Z//c(a-zA-z以外にマッチして置き換える)
っていうのはPHPではどう書けば良いでしょうか?(´・ω・`)?モニュ
小一時間探したけど見つかりませんでした
489
(1): 03/12/18 13:59 ID:SDZbq9mq(2/2) AAS
やりたいことは、リストに含まない文字が
検出されたらエラーを表示させる事です。

perlだと
if(($_ =~ tr/a-zA-Z0-9//c) {
die 'リストに含まれない文字が検出されたYO!';
}
な感じでそれをPHPでやりたいです。
490: 03/12/18 15:25 ID:??? AAS
【PHP】質問スレッド Part12
2chスレ:php
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
1-
あと 59 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.028s