見事Perl→PHPへの脱皮に成功した俺様が
両者の違いを中心に講義してやる。
今までPerlマンセーだったやつはこれを機にPHPに変更しよう也。
質問もガンガン書いてくれ。
このPerlの文はPHPだとどう書くの?とか。
【待望】PerlユーザのためのPHP入門
1俺様
03/02/27 15:17ID:tJsRCtRD446445
03/09/28 00:48ID:lxnHIT50 どなたかお答えくださいませ
447nobodyさん
03/09/28 02:01ID:??? lockはlock専用スレがありまっせ。
448nobodyさん
03/09/28 02:26ID:??? >>445
にたようなもんじゃないのかな?
たしか、PHPマニュアルにもflock関数は全ての環境で使えるもんじゃ
ないみたいなこと書いてあったし、
ネットワークファイルシステムに対応してないけりゃ、無理だろうし。
ちなみに、うぇぶさばは関係ないですぞ。
にたようなもんじゃないのかな?
たしか、PHPマニュアルにもflock関数は全ての環境で使えるもんじゃ
ないみたいなこと書いてあったし、
ネットワークファイルシステムに対応してないけりゃ、無理だろうし。
ちなみに、うぇぶさばは関係ないですぞ。
449445
03/09/28 03:46ID:??? >>447
ども。のぞいてきます。
>>448
そうですね。
よく考えりゃ、どっちもOSのflockを呼び出してるってことだから、
特段変わることはないか。。。
>ちなみに、うぇぶさばは関係ないですぞ。
いや、マニュアル
http://www.php.net/manual/ja/function.flock.php
に、
「いくつかのオーペレーティングシステムでflock() はプロセスレベルで実装されています。
ISAPIのようなマルチスレッド 型のサーバーAPIを使用している場合、
同じサーバーインスタンスの並 列スレッドで実行されている他のPHPスクリプトに対してファイルを保 護する際に
flock()を使用することはできません」
って書いてあったから、
ウェブサーバにIIS使ってると、事情が違うのかなと思って一応かいといたもんで。。。
(正直IIS分からんですが)
ども。のぞいてきます。
>>448
そうですね。
よく考えりゃ、どっちもOSのflockを呼び出してるってことだから、
特段変わることはないか。。。
>ちなみに、うぇぶさばは関係ないですぞ。
いや、マニュアル
http://www.php.net/manual/ja/function.flock.php
に、
「いくつかのオーペレーティングシステムでflock() はプロセスレベルで実装されています。
ISAPIのようなマルチスレッド 型のサーバーAPIを使用している場合、
同じサーバーインスタンスの並 列スレッドで実行されている他のPHPスクリプトに対してファイルを保 護する際に
flock()を使用することはできません」
って書いてあったから、
ウェブサーバにIIS使ってると、事情が違うのかなと思って一応かいといたもんで。。。
(正直IIS分からんですが)
450nobodyさん
03/09/28 09:23ID:??? ?
451445
03/09/28 22:34ID:jyRnC+If452nobodyさん
03/09/29 10:34ID:??? 通りがかりだが
あまり気にする事は無いかと
マルチスレッド型を利用している場合、別々に動作している
phpは同一プロセス(の、別スレッド)で動作している事になるので
プロセス単位で排他をかけるflock()は排他の目的には使えない
ということで、HTTPdとphpの組み合わせによる、というのは正しいかも
あまり気にする事は無いかと
マルチスレッド型を利用している場合、別々に動作している
phpは同一プロセス(の、別スレッド)で動作している事になるので
プロセス単位で排他をかけるflock()は排他の目的には使えない
ということで、HTTPdとphpの組み合わせによる、というのは正しいかも
453nobodyさん
03/10/07 22:48ID:??? 保守新党
454nobodyさん
03/10/07 23:44ID:??? $str =~ s/◆/◇/g;
みたいなマルチバイト文字列の置換をPHPでやるにはどうしたらいいんでしょうか。
mb_ereg_replaceはまだ実験段階らしいのであまり乗り気ではなく。
みたいなマルチバイト文字列の置換をPHPでやるにはどうしたらいいんでしょうか。
mb_ereg_replaceはまだ実験段階らしいのであまり乗り気ではなく。
455nobodyさん
03/10/08 00:11ID:??? >>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を
ちゃんと設定していないと駄目。
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を
ちゃんと設定していないと駄目。
456454
03/10/08 00:30ID:??? >>455
詳細なレスありがとうございます。
試しにpreg_replaceを使った時えらく文字化けしたのでなんでだろと疑問だったんですがこれで解決しました。
一応マルチバイト文字列関数用にphp.iniの設定は書き変えてあるので、
mb_ereg_replaceを使っても将来的に問題ないということならこれでいこうかなと思います。
詳細なレスありがとうございます。
試しにpreg_replaceを使った時えらく文字化けしたのでなんでだろと疑問だったんですがこれで解決しました。
一応マルチバイト文字列関数用にphp.iniの設定は書き変えてあるので、
mb_ereg_replaceを使っても将来的に問題ないということならこれでいこうかなと思います。
457nobodyさん
03/10/18 23:15ID:??? 配列をpackする時ってどうすんの?
他にも$a,$b,@c,$d,…と並べて@cの内容が展開されるようにしたい時とか.
他にも$a,$b,@c,$d,…と並べて@cの内容が展開されるようにしたい時とか.
458nobodyさん
03/10/27 17:51ID:???459nobodyさん
03/10/28 18:22ID:??? $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()で正規表現が使えないようなのですが
何か良い方法はないですか。
$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()で正規表現が使えないようなのですが
何か良い方法はないですか。
460nobodyさん
03/10/29 23:14ID:dIX7j6Ca perlだと、csvファイルに対してSQL文を投げられる、SQL.pmっていうのがあるんですが、
phpでそういうモジュールってないでしょうか?
(いやぁ、ほんとはDB使いたいんですけどね。。。わけあってつかえず)
phpでそういうモジュールってないでしょうか?
(いやぁ、ほんとはDB使いたいんですけどね。。。わけあってつかえず)
461nobodyさん
03/11/01 14:03ID:5TPcc+Om 連休中にphp勉強したいぞーage
462nobodyさん
03/11/01 14:49ID:??? >>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でいけるよね
泥臭いけど・・
$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でいけるよね
463nobodyさん
03/11/03 00:41ID:4CVQMxAy perlでいうところの、
print qq|
$hoge
<hr>
<a href="http://www.yahoo.com"></a>
|;
みたいの、phpでないでしょうか?
要は、変数展開もされて、”もエスケープする必要がないように書きたいのですが・・・
print qq|
$hoge
<hr>
<a href="http://www.yahoo.com"></a>
|;
みたいの、phpでないでしょうか?
要は、変数展開もされて、”もエスケープする必要がないように書きたいのですが・・・
464nobodyさん
03/11/03 00:44ID:??? $a =~ tr/[a-z][A-Z]/[A-Z][a-z]/;
なんか無駄がないか?
なんか無駄がないか?
466nobodyさん
03/11/07 15:11ID:GoKF/NUR $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...なら可能なのですが…
switch($a) {
case "1" : global $b = "one";
case "2" : global $b = "two";
case "3" : global $b = "three";
}
echo $a." -> ".$b;
みたいなことをやりたいのですが、switch文では無理ですか?
if,elseif...なら可能なのですが…
467nobodyさん
03/11/07 15:40ID:??? >>466
それを実行すると1〜3のどれを$aに入れても$bが"three"になっちゃう
各分岐のお尻にbreak;付けましょうね
switch($a) {
case "1" : $b = "one"; break;
case "2" : $b = "two"; break;
case "3" : $b = "three"; break;
}
それを実行すると1〜3のどれを$aに入れても$bが"three"になっちゃう
各分岐のお尻にbreak;付けましょうね
switch($a) {
case "1" : $b = "one"; break;
case "2" : $b = "two"; break;
case "3" : $b = "three"; break;
}
468nobodyさん
03/11/07 15:43ID:???470463
03/11/12 04:51ID:FrBzA+Qu >>465
ありがとうございます。
そういえば、php4からヒアドキュメント使えるようになったんですよね。
(php3の知識はあっても、4の知識はあまりないもんで)
ヒアドキュメントで逝ってみます。
ただ、print qq|ほげー|;の手軽さが、なれてしまって、ラクなんですけどね。。。
ともかく、ありがとうございました。
ありがとうございます。
そういえば、php4からヒアドキュメント使えるようになったんですよね。
(php3の知識はあっても、4の知識はあまりないもんで)
ヒアドキュメントで逝ってみます。
ただ、print qq|ほげー|;の手軽さが、なれてしまって、ラクなんですけどね。。。
ともかく、ありがとうございました。
471nobodyさん
03/11/12 05:09ID:??? my $xやvar xみたいな変数の宣言をする方法はないのでしょうか?
472nobodyさん
03/11/12 06:00ID:??? >>471
↓このへんわかりやすいんちゃう?
http://itbtech.itboost.co.jp/php/php_01.php
<引用>
PHP の変数は宣言がありません。
また、明示的に型の指定をしてやる必要もありません。
この辺は Perl と同じです。
必要に応じてキャスト(相当のこと)を行うことはできます。
</引用>
↓このへんわかりやすいんちゃう?
http://itbtech.itboost.co.jp/php/php_01.php
<引用>
PHP の変数は宣言がありません。
また、明示的に型の指定をしてやる必要もありません。
この辺は Perl と同じです。
必要に応じてキャスト(相当のこと)を行うことはできます。
</引用>
473nobodyさん
03/11/12 17:05ID:??? Perlで$a |= "default a";
という書き方を多用していたのですが、
PHPでは$a = !isset($a) ? "default a" : $a;
でよろしいのでしょうか?
という書き方を多用していたのですが、
PHPでは$a = !isset($a) ? "default a" : $a;
でよろしいのでしょうか?
474nobodyさん
03/11/12 20:14ID:??? $a ||= "default a";
なら、
$a || ($a = "default a");
$a or $a = "default a";
とか。
$a |= "default a";
はそのままで通る。
(perl/PHP共に期待したものではないと思うけど)
なら、
$a || ($a = "default a");
$a or $a = "default a";
とか。
$a |= "default a";
はそのままで通る。
(perl/PHP共に期待したものではないと思うけど)
475473
03/11/12 21:19ID:??? >>474
すみません、先ほどは$a ||= "default a";
のことを言っておりました。
で、$a || ($a = "default a");
ですと、$aが未定義の場合、undefined errorが出てしまいます。
(当方error_reporting = ALLにしています)
すみません、先ほどは$a ||= "default a";
のことを言っておりました。
で、$a || ($a = "default a");
ですと、$aが未定義の場合、undefined errorが出てしまいます。
(当方error_reporting = ALLにしています)
476nobodyさん
03/11/12 21:56ID:??? >>475
isset($a) || ($a = "default a");
これでどう?
厳密にはこうだろうけど、
(isset($a) && $a) || ($a = "default a");
長すぎ。
# PHP的には、先にデフォルトを設定するものだと思ってた。
# PHPのエロイ人plz。
isset($a) || ($a = "default a");
これでどう?
厳密にはこうだろうけど、
(isset($a) && $a) || ($a = "default a");
長すぎ。
# PHP的には、先にデフォルトを設定するものだと思ってた。
# PHPのエロイ人plz。
477473
03/11/12 22:08ID:??? > isset($a) || ($a = "default a");
これなら問題なく実行できました。この書き方が一番スマートそうですね。
これなら問題なく実行できました。この書き方が一番スマートそうですね。
478nobodyさん
03/11/12 22:08ID:??? GETのパラメータ区切りに&じゃなく;を使うにはどうしたらよいのでしょうか?
479nobodyさん
03/11/12 22:34ID:??? >>478
php.iniの設定変更
arg_separator.input = ";&"
しか思いつかない。
Perlと関係なければ、
【PHP】質問スレッド Part11
http://pc2.2ch.net/test/read.cgi/php/1067635640/l50
こちらへどぞ。
php.iniの設定変更
arg_separator.input = ";&"
しか思いつかない。
Perlと関係なければ、
【PHP】質問スレッド Part11
http://pc2.2ch.net/test/read.cgi/php/1067635640/l50
こちらへどぞ。
480nobodyさん
03/11/26 02:30ID:??? 俺様帰ってこないかな
別に用は無いんだけど
別に用は無いんだけど
483nobodyさん
03/12/12 01:34ID:??? http://www.cs.wcupa.edu/~rkline/perl2php/
484nobodyさん
03/12/14 00:06ID:??? ソケット通信をする際、相手方のIPアドレスがわかっている場合、
fsockopenの第一引数にIPアドレスを入れれば、
内部的に名前の解決をしなくて済むのでしょうか?
fsockopenの第一引数にIPアドレスを入れれば、
内部的に名前の解決をしなくて済むのでしょうか?
485nobodyさん
03/12/14 21:20ID:??? >>484 ttp://jp.php.net/fsockopen
IP address がすでにわかってるのに名前の解決?
Ip address => name なら、そもそも必要ない。
fsockopen関数の内部で、PHPが名前え解決するかどうかとういう話であれば、
inet_aton が失敗すれば(第一引数のhostが IP address を表す文字列でない場合)、
名前の解決(gethostbyname)がされる様です。
IP address がすでにわかってるのに名前の解決?
Ip address => name なら、そもそも必要ない。
fsockopen関数の内部で、PHPが名前え解決するかどうかとういう話であれば、
inet_aton が失敗すれば(第一引数のhostが IP address を表す文字列でない場合)、
名前の解決(gethostbyname)がされる様です。
486nobodyさん
03/12/14 23:41ID:??? >>485
>fsockopen関数の内部で、PHPが名前え解決するかどうかとういう話であれば、
>inet_aton が失敗すれば(第一引数のhostが IP address を表す文字列でない場合)、
>名前の解決(gethostbyname)がされる様です。
なるほど、ありがとうございます。
大変参考になりました。
>fsockopen関数の内部で、PHPが名前え解決するかどうかとういう話であれば、
>inet_aton が失敗すれば(第一引数のhostが IP address を表す文字列でない場合)、
>名前の解決(gethostbyname)がされる様です。
なるほど、ありがとうございます。
大変参考になりました。
487486
03/12/17 00:08ID:??? IPアドレスでfsockopenと、リモホでfsockopenとで、
処理にかかる時間を比べたんですが、
前者の方が多少遅い結果になりました。
perlの場合とはやはり違うのでしょうか…?
処理にかかる時間を比べたんですが、
前者の方が多少遅い結果になりました。
perlの場合とはやはり違うのでしょうか…?
488nobodyさん
03/12/18 13:37ID:SDZbq9mq perlでいうtr/a-zA-Z//c(a-zA-z以外にマッチして置き換える)
っていうのはPHPではどう書けば良いでしょうか?(´・ω・`)?モニュ
小一時間探したけど見つかりませんでした
っていうのはPHPではどう書けば良いでしょうか?(´・ω・`)?モニュ
小一時間探したけど見つかりませんでした
489nobodyさん
03/12/18 13:59ID:SDZbq9mq やりたいことは、リストに含まない文字が
検出されたらエラーを表示させる事です。
perlだと
if(($_ =~ tr/a-zA-Z0-9//c) {
die 'リストに含まれない文字が検出されたYO!';
}
な感じでそれをPHPでやりたいです。
検出されたらエラーを表示させる事です。
perlだと
if(($_ =~ tr/a-zA-Z0-9//c) {
die 'リストに含まれない文字が検出されたYO!';
}
な感じでそれをPHPでやりたいです。
490nobodyさん
03/12/18 15:25ID:??? 【PHP】質問スレッド Part12
http://pc2.2ch.net/test/read.cgi/php/1070639208/
http://pc2.2ch.net/test/read.cgi/php/1070639208/
491nobodyさん
03/12/18 16:46ID:??? >487
どうせろくでもないベンチスクリプトだろ
>488
既出
>789
!
どうせろくでもないベンチスクリプトだろ
>488
既出
>789
!
492nobodyさん
03/12/18 20:33ID:??? >>489
$str = ...
if (ereg("[^a-zA-Z0-9]", $str)){
die('リストに含まれない文字が検出されたYO!');
}
多分"[^[:alnum:]]"でも。
$str = ...
if (ereg("[^a-zA-Z0-9]", $str)){
die('リストに含まれない文字が検出されたYO!');
}
多分"[^[:alnum:]]"でも。
493nobodyさん
03/12/18 20:37ID:??? そういうことじゃないと思う。
494nobodyさん
03/12/21 18:56ID:16zntf/g >492
ぇ?ネタですか?(´・ω・`)?モニュ
-zA-Z0-9にマッチでエラー表示
じゃないでつ。文字列中に例えば
記号が入ってたらエラーにする処理でつ。
ぇ?ネタですか?(´・ω・`)?モニュ
-zA-Z0-9にマッチでエラー表示
じゃないでつ。文字列中に例えば
記号が入ってたらエラーにする処理でつ。
495nobodyさん
03/12/21 20:52ID:??? ネタ?
491のでええやん。elseでもいいし。
491のでええやん。elseでもいいし。
497nobodyさん
03/12/22 17:55ID:??? asdf
498nobodyさん
03/12/22 19:05ID:??? ghjk
499nobodyさん
03/12/23 11:09ID:hM9+gLxR >496
ぉぉやってみたら確かにマッチした。さんくすこ。
PHPだと’^’って反転する意味なのですか・・・?
なんか小さな幸せを発見したw
ぉぉやってみたら確かにマッチした。さんくすこ。
PHPだと’^’って反転する意味なのですか・・・?
なんか小さな幸せを発見したw
500nobodyさん
03/12/23 11:15ID:hM9+gLxRぁぁぼけてすまそ。。。
文字クラスの反転記号ですね。記憶から全く遠のいていますた。
(PHPの独自拡張なのかとさえ思ってしまったw)
もう一度勉強し直し逝ってきま _| ̄|○
501nobodyさん
04/01/19 18:13ID:??? >>481
で、どのへんまでできた?
なぜかおれも作るハメになってしまって、
BNFで定義しきれないPerlを無理やりBNFレベルで定義中なんだけど。
そこまでPerl詳しくねーんで困ってる。
parrotのライブラリにPerl6のパーサーやってるっぽいんだが、、むずい。
だれか、なんちゃってPerl BNF定義した人おらんですか。。
で、どのへんまでできた?
なぜかおれも作るハメになってしまって、
BNFで定義しきれないPerlを無理やりBNFレベルで定義中なんだけど。
そこまでPerl詳しくねーんで困ってる。
parrotのライブラリにPerl6のパーサーやってるっぽいんだが、、むずい。
だれか、なんちゃってPerl BNF定義した人おらんですか。。
502501
04/01/19 18:23ID:??? ガク
コンテンツか。。ツールじゃないのね。。シツレイ
コンテンツか。。ツールじゃないのね。。シツレイ
503nobodyさん
04/01/23 00:02ID:Zt/PsL2C 質問君です。すいません。
idはadmin、passは111111だったとして、
test.php?id=admin&pass=111111と入力します。
test.php内で
idとpassの値を受け取るには、$id=param[id]でしたっけ?
idはadmin、passは111111だったとして、
test.php?id=admin&pass=111111と入力します。
test.php内で
idとpassの値を受け取るには、$id=param[id]でしたっけ?
504nobodyさん
04/01/23 00:24ID:Zt/PsL2C extract($_GET);
$_GET["id"];
$_GET["pass"];
$_GET["id"];
$_GET["pass"];
506nobodyさん
04/01/23 01:03ID:Zt/PsL2C >>505
ここ読みました。
http://php.s3.to/off.txt
これも対策済まれている方が多いことですが、
Warning: REG_EBRACK in
eregi関数で文字比較するとき、全角の「ー」の2バイト目が半角では“[”になるのが原因らしい・・
簡単な解決方法ありますでしょうか?
ここ読みました。
http://php.s3.to/off.txt
これも対策済まれている方が多いことですが、
Warning: REG_EBRACK in
eregi関数で文字比較するとき、全角の「ー」の2バイト目が半角では“[”になるのが原因らしい・・
簡単な解決方法ありますでしょうか?
507俺様
04/01/23 01:17ID:??? >>501-502
いや、俺もツール考えてみたんだわ。
PHPなら文法定義しているの発見したんだけど
Perlは見つからないんだよね。。。
perly.yにあるyacc文法も読んだんだけど
文法以前に字句解析どうしようって感じで。
いや、俺もツール考えてみたんだわ。
PHPなら文法定義しているの発見したんだけど
Perlは見つからないんだよね。。。
perly.yにあるyacc文法も読んだんだけど
文法以前に字句解析どうしようって感じで。
508nobodyさん
04/01/23 02:04ID:??? >>506
extract() するなら、$_GETでアクセスする必要ないかと…
register_globals=off がデフォになったのは、
未初期化の変数が汚染されたりとか
セキュリティ面の問題が利便性より重要だったからではないのかなぁ
なので、extract()するならその配列の安全チェックをしてからのほうが良いかと。
extract() するなら、$_GETでアクセスする必要ないかと…
register_globals=off がデフォになったのは、
未初期化の変数が汚染されたりとか
セキュリティ面の問題が利便性より重要だったからではないのかなぁ
なので、extract()するならその配列の安全チェックをしてからのほうが良いかと。
509nobodyさん
04/01/23 02:08ID:??? >>506後半
内部エンコーディングをEUCかUnicodeにする。
入力変換をautoにする。
これで、内部では、EUCかUnicodeになるので、その手の問題に遭遇しない。
海外製ソフトでSJISはいいことがない。
内部エンコーディングをEUCかUnicodeにする。
入力変換をautoにする。
これで、内部では、EUCかUnicodeになるので、その手の問題に遭遇しない。
海外製ソフトでSJISはいいことがない。
510nobodyさん
04/01/23 02:13ID:??? 入力変換はHttpInputだけなので、ファイルを読むときなどはMb_かjcode.phpで
内部エンコードにそろえてやる必要があると思います。
内部エンコードにそろえてやる必要があると思います。
511nobodyさん
04/01/23 23:10ID:???list()でログファイル(5MB程度)を参照して検索などを作るとき、
fopen()
flock()
Fclose()
しなくてもログファイルの破損などは起こらないでしょうか?
書き込み中はロックしてますが、list()中はロックしないとします。
513アノニマス
04/02/16 18:58ID:O91ZKuNr 正規表現でマッチできないけど?
どこがおかしいの?
//10桁の1...と12桁の2...の配列がある。
$str = array('1111111111','222222222222');
//10桁以上、10桁以下の(要は10桁のみ)数値パターンを配列$resultに格納したい。
$hoge = preg_grep("/[0-9]{10,10}/",$result);
//結果、両方でてきちゃう。どうして?
print_r($result);
よろしこ。
どこがおかしいの?
//10桁の1...と12桁の2...の配列がある。
$str = array('1111111111','222222222222');
//10桁以上、10桁以下の(要は10桁のみ)数値パターンを配列$resultに格納したい。
$hoge = preg_grep("/[0-9]{10,10}/",$result);
//結果、両方でてきちゃう。どうして?
print_r($result);
よろしこ。
514イ奄様
04/02/16 19:15ID:PkrMZZ9m >>513
それだと
"hoge1234567890hage"とかにもマッチする。
数字で始まり10個目の数字で終わるなら
$result = preg_grep("/^[0-9]{10,10}$/",$str);
それだと
"hoge1234567890hage"とかにもマッチする。
数字で始まり10個目の数字で終わるなら
$result = preg_grep("/^[0-9]{10,10}$/",$str);
515イ奄様
04/02/16 19:18ID:??? $result = preg_grep("/^\d{10}$/",$str);
でもいい
でもいい
516アノニマス
04/02/16 19:35ID:O91ZKuNr >>514,515 イ奄様
有難うございます。なるほどよく分りました。
しかも、問題が間違えているにもかかわらずよく理解してくださいました。
重ねて御礼します。
出したかった問題は、こうでした。
$result = preg_grep("/[0-9]{10,10}/",$str);
まぁ、間違ってんだから訂正は要らないんだけどね・・・。
有難うございます。なるほどよく分りました。
しかも、問題が間違えているにもかかわらずよく理解してくださいました。
重ねて御礼します。
出したかった問題は、こうでした。
$result = preg_grep("/[0-9]{10,10}/",$str);
まぁ、間違ってんだから訂正は要らないんだけどね・・・。
517nobodyさん
04/02/16 21:57ID:??? それは perl でも同じ結果だろうなと。
perlとPHPで結果が違うのかと思ったよw
perlとPHPで結果が違うのかと思ったよw
518nobodyさん
04/03/05 15:09ID:??? 質問してもいいですか?
Perlの「undef」に相当するPHPの関数は何ですか?
マニュアル検索しても見つけられなかったのです。
スレ違いでしたらスルーでお願いします。
Perlの「undef」に相当するPHPの関数は何ですか?
マニュアル検索しても見つけられなかったのです。
スレ違いでしたらスルーでお願いします。
520nobodyさん
04/03/08 22:21ID:??? Perlだと文字列の置換をしたときに置換されたものが$1などの変数に代入されますよね。
PHPでも同じことは出来るのでしょうか?
PHPでも同じことは出来るのでしょうか?
522nobodyさん
04/04/06 09:54ID:Rt5G2mKK 自作関数に渡した引数は、Perlでは$_[0],$_[1]...に、
JavaScriptではarguments[0]...に、入るじゃないですか。
PHPでは何に入るのでしょうか?
もしかして必ず function x($a,$b,$c) の様にする必要があるのでしょうか?
何とかして引数を配列として扱いたいのです。
JavaScriptではarguments[0]...に、入るじゃないですか。
PHPでは何に入るのでしょうか?
もしかして必ず function x($a,$b,$c) の様にする必要があるのでしょうか?
何とかして引数を配列として扱いたいのです。
525nobodyさん
04/04/06 14:59ID:??? (^∀^)ゲラゲラ
526nobodyさん
04/04/18 21:32ID:??? (^∀^)ゲラゲラ
527nobodyさん
04/04/19 04:39ID:??? (^∀^)ゲラゲラ
528nobodyさん
04/04/19 13:09ID:??? (^∀^)ゲラゲラ
530カポコン
04/04/21 13:43ID:???532nobodyさん
04/04/21 21:28ID:??? >>530
Shift_JISでスクリプトを書いてはいけない理由、
どうしてもShift_JISで書きたい場合はどのPHPをインストールすべきとか
mb_string周りのPHP.iniの設定の仕方、設定のオーバーライドの方法を解説して欲しい。
あと、PerlにもHTML埋め込みを行う方法がいくつかあるよ。
Shift_JISでスクリプトを書いてはいけない理由、
どうしてもShift_JISで書きたい場合はどのPHPをインストールすべきとか
mb_string周りのPHP.iniの設定の仕方、設定のオーバーライドの方法を解説して欲しい。
あと、PerlにもHTML埋め込みを行う方法がいくつかあるよ。
534カポコン
04/04/26 10:25ID:???535532
04/04/27 05:54ID:??? マジレスした自分に鬱。
536nobodyさん
04/04/30 23:59ID:um4DKqqr perlにおいて、csvファイルを配列に取り込み、複数項目(カンマ区切りの2列目と3列目)でソートをかける為に
下記のような方法を取っていたのですが、
これをphpで行う場合、multisortでは1項目でのソートしか出来ないと
マニュアルに記述されていますが、どのような処理でなら可能でしょうか?
@DATA = sort { (split(/,/,$b))[1] <=> (split(/,/,$a))[1] || (split(/,/,$a))[2] <=> (split(/,/,$b))[2]; } @DATA;
下記のような方法を取っていたのですが、
これをphpで行う場合、multisortでは1項目でのソートしか出来ないと
マニュアルに記述されていますが、どのような処理でなら可能でしょうか?
@DATA = sort { (split(/,/,$b))[1] <=> (split(/,/,$a))[1] || (split(/,/,$a))[2] <=> (split(/,/,$b))[2]; } @DATA;
537nobodyさん
04/05/01 06:06ID:???538nobodyさん
04/05/01 07:23ID:???539nobodyさん
04/05/03 01:13ID:N715jxDT ASPユーザですが、PHPへの移行への許可は頂けますか?
540nobodyさん
04/05/08 15:25ID:??? perlとPHPのどっちが偉いかとかいった下らない話題につき合うつもりはないが
http://f13.aaacafe.ne.jp/~mugen/perlvsphp/page7.htm
↑を MVC と呼ばれては碇浸透
コンテンツとデザインの分離スレにちょっと鯉 >>350
http://f13.aaacafe.ne.jp/~mugen/perlvsphp/page7.htm
↑を MVC と呼ばれては碇浸透
コンテンツとデザインの分離スレにちょっと鯉 >>350
542nobodyさん
04/05/20 12:08ID:NShBOzWM PHP普及の原因は、イスラエル・Zend社のマーケティングの成功にある。
@Perlでは別インストールで多くの人が知らないデーターベース利用を標準で使用できるようにし、「データーベースが簡単に取り扱える」というイメージを特に強く植えつけた。
Aウェブサイト作成への特化。例えば、セッション管理がそうだ。
Bソースの隠蔽による著作権保護を可能にした。
データーベースを使いたいが、使い方がわからない。そこに、PHPなら使えるという情報が先に入る。これで、PHPに入った人もかなり多いはず。
PHPの言語仕様はZendに大きく左右される。
二年ほど前、PHPが出始めた頃には、変数のスコープがPerlとまったく同じ仕様だった。
もともと、Perlのソースコードを改編して作成されたPHP。
↓PHPの歴史
http://php.planetmirror.com/manual/ja/history.php
PHPには、Perlコードの退行による高速化の意図が言語のいたるところに見える。
マイクロソフトは、オブジェクト指向への対応というのが大義にVB6.0からVB.NETに言語仕様を大幅に変えた。
今後も大きく言語仕様が変わることはないのか?
オープンソースとは言っても、Zend社の
http://www.zend.com/management.php
の数人のスタップによって大きく左右される。
再帰的定義とされる「PHP:Hypertext Preprocessor」という名前にも理由がある。これは、要するに、正確には、「Perl Hypertext Preprocessor」としたいところだが、GNUの「GNU is Not UNIX」という再帰的な定義をもじったものだ。
要するに、「GPLのフリーソフトのライセンスには違反していませんよ!」と一つには主張し、また、一つには、「PHP is Not Perl」とでも言って、Zendの社としての姿勢を、先人の「Perl開発者たち」から擁護する意図があったのだろう。
Nではなく、Hなのが、そのための味噌だ!Perl開発者たちは、当然、面白くないはずだ。
PHP信奉者は、六芒星(hexagram)マークのユダヤ教にでも、入信せよ!
…といいつつ、かく言う私も、PHPに乗り遅れまいと必死だが…。(^^;)
@Perlでは別インストールで多くの人が知らないデーターベース利用を標準で使用できるようにし、「データーベースが簡単に取り扱える」というイメージを特に強く植えつけた。
Aウェブサイト作成への特化。例えば、セッション管理がそうだ。
Bソースの隠蔽による著作権保護を可能にした。
データーベースを使いたいが、使い方がわからない。そこに、PHPなら使えるという情報が先に入る。これで、PHPに入った人もかなり多いはず。
PHPの言語仕様はZendに大きく左右される。
二年ほど前、PHPが出始めた頃には、変数のスコープがPerlとまったく同じ仕様だった。
もともと、Perlのソースコードを改編して作成されたPHP。
↓PHPの歴史
http://php.planetmirror.com/manual/ja/history.php
PHPには、Perlコードの退行による高速化の意図が言語のいたるところに見える。
マイクロソフトは、オブジェクト指向への対応というのが大義にVB6.0からVB.NETに言語仕様を大幅に変えた。
今後も大きく言語仕様が変わることはないのか?
オープンソースとは言っても、Zend社の
http://www.zend.com/management.php
の数人のスタップによって大きく左右される。
再帰的定義とされる「PHP:Hypertext Preprocessor」という名前にも理由がある。これは、要するに、正確には、「Perl Hypertext Preprocessor」としたいところだが、GNUの「GNU is Not UNIX」という再帰的な定義をもじったものだ。
要するに、「GPLのフリーソフトのライセンスには違反していませんよ!」と一つには主張し、また、一つには、「PHP is Not Perl」とでも言って、Zendの社としての姿勢を、先人の「Perl開発者たち」から擁護する意図があったのだろう。
Nではなく、Hなのが、そのための味噌だ!Perl開発者たちは、当然、面白くないはずだ。
PHP信奉者は、六芒星(hexagram)マークのユダヤ教にでも、入信せよ!
…といいつつ、かく言う私も、PHPに乗り遅れまいと必死だが…。(^^;)
543nobodyさん
04/05/20 16:11ID:??? ↑もう5回くらい見たんだが。しかも全部IDが同じだ・・・見間違いだよな?
544nobodyさん
04/12/07 16:29:25ID:??? 最近やっとphpの配列は、perlの配列のリファレンスだと考えればいいんだとわかった。
んで、phpで関数に配列を引渡すときは、配列のコピーのリファレンスを渡していると考えればいいとわかった。
だから、phpのこれは
$array[$index] = $value;
perlのこれに対応するわけじゃなく
$array[$index] = $value;
これに対応しているわけで
$array->[$index] = $value;
phpのこれは
$array = array($val1,$val2,$val3);
perlのこれに対応している
$array = [$val1,$val2,$val3];
なのでphpのこれは
function f($array){
.......
}
perlのこれに対応するわけだったんだね。
sub f{
my $array = [@{$_[0]}];
.......
}
んで、phpで関数に配列を引渡すときは、配列のコピーのリファレンスを渡していると考えればいいとわかった。
だから、phpのこれは
$array[$index] = $value;
perlのこれに対応するわけじゃなく
$array[$index] = $value;
これに対応しているわけで
$array->[$index] = $value;
phpのこれは
$array = array($val1,$val2,$val3);
perlのこれに対応している
$array = [$val1,$val2,$val3];
なのでphpのこれは
function f($array){
.......
}
perlのこれに対応するわけだったんだね。
sub f{
my $array = [@{$_[0]}];
.......
}
545nobodyさん
05/03/03 01:29:07ID:eDjoFwC+ Perlのlast関数にあたるものはPHPのbreak関数かと思いますが、
next関数にあたるものは何になるのでしょうか?
ご教示いただけますと幸いです。
next関数にあたるものは何になるのでしょうか?
ご教示いただけますと幸いです。
レスを投稿する
ニュース
- 女優・松本まりか「壊されたくない物があるなら、罰で強制でなく…大切に思ってもらえるように行動すべき」作家の国旗に関する投稿に私見 [少考さん★]
- 高市首相… 経歴詐称疑惑で米下院関係者が決定的証言「インターンだった」SNSで猛拡散 ★4 [少考さん★]
- 【W杯】悪夢1次L敗退の韓国 ホン・ミョンボ監督への批判集中 「出禁」にするレストラン、コンビニも 店主は「怒りが湧いた」 [王子★]
- 【日本代表】ブラジル撃破へ…板倉滉「全員が倒す気でいる」 長友佑都「過去イチくらいチームが団結。 勝ちます!見ていてください」 [王子★]
- 【W杯】韓国敗退で、アジア枠減少を危惧する声 決勝T進出は日本とオーストラリアのみ「これは削られても仕方ない」★3 [ネギうどん★]
- 【独身マイホーム】増加中 自分らしい家に住めるメリットor縛られるデメリット…どう考える? [煮卵★]
- 【高市悲報】日本政府、官民ファンドによるゲームアニメの経済波及効果を300兆円と閣議決定 [709039863]
- 高市早苗、動く「南鳥島沖レアアースは来年実証実験よ!2028年以降に商業利用を目指すわよ!」 大陸よ、震えて待て🤥 [117552482]
- ブラックマンデー対策本部🏡📉😅📉
- 明日から中忍試験だわ
- 【広島】10歳未満の児童34人を校内で強姦し撮影、日本人男性教師の中島健夫(39)に求刑13年 [485187932]
- アジア枠、さすがに減少されそうwwwwwwwwwwwwwwwwwwwwwwwww [595118796]