X



【待望】PerlユーザのためのPHP入門
0001俺様
垢版 |
03/02/27 15:17ID:tJsRCtRD
見事Perl→PHPへの脱皮に成功した俺様が
両者の違いを中心に講義してやる。
今までPerlマンセーだったやつはこれを機にPHPに変更しよう也。
質問もガンガン書いてくれ。
このPerlの文はPHPだとどう書くの?とか。
0002nobodyさん
垢版 |
03/02/27 15:19ID:???
このスレ結構ありがたいかも。
>>1
ありがd
0003俺様
垢版 |
03/02/27 15:19ID:tJsRCtRD
まず、両者には似てる部分も非常に多いというのは特徴だ。
例えば変数の宣言、初期化をしてみよう。
$foo = 0;
頭に$をつけるところも、型を特に指定する必要がないことも、
文末は;になることもみんな一緒だ。

ほら、簡単に移行できそうに思えてきただろ?
0004俺様
垢版 |
03/02/27 15:31ID:tJsRCtRD
とりあえずHello, world!を出力してみるぞ。

<?
print "Hello, world!\n";
?>

printの意味はperlと一緒だ。
まあ、printよりecho使う人が多いがそんなに違いはない。
perlユーザならわかりやすい方が(・∀・)イイ!だろう。

プログラムの開始と終了は<?と?>で囲むんだ。
これはPHP特有だから早く覚えよう。
<?じゃなくて<?phpで囲んでもOK。将来XMLとの連携を考えるなら
後者で書く癖をつけたほうが良いとは言われている。
0006nobodyさん
垢版 |
03/02/27 15:39ID:???
PHPでrequireするファイルは必ず<?php ?>で囲まなきゃダメ?
0007俺様
垢版 |
03/02/27 15:50ID:tJsRCtRD
とりあえずCGIじゃなくてmod_phpを使っていこう。
例えばCGI/Perlの場合、

#!/perl/bin/perl
print "Content-type: text/html\n\n";
print "Hello, world!\n";

簡単なテストスクリプトを書くときも2行目あたりのウザイのを
書く必要があったがmod_phpならそんな必要はない。
とにかく<?と?>で囲めばOKだ。

というわけで課題として、各自ローカルサーバにPHPをインストールしておこう。
PerlユーザならApacheはインストールしてあると思うのでそれを前提とすると、

http://www.php.net/downloads.php
上記サイトにある
Windows Binaries
PHP 4.3.1 zip package [5,853Kb]
を落とすのじゃ。下のPHP 4.3.1 installerの方が楽そうに見えるが
こっちはCGI/PHPとしてしか使えないから駄目。間違えるなよ。
0008俺様
垢版 |
03/02/27 15:55ID:tJsRCtRD
>>6
どういう用途で用いるのか知らんが
PHPスクリプトをrequire()するなら当然
そっちも<? ?>は必要だぞ。

まあ、聞くより自分で確かめたほうが早いだろう。
0009俺様
垢版 |
03/02/27 15:59ID:tJsRCtRD
PHPのインストールについては
詳しく解説しているところを見たほうが早いか。
始めたばかりの頃俺が参考にした所だ。

http://www.php-j.com/tutorial/install/win.php

では各自ローカルでPHPを動かせるようにしておきましょう。
その瞬間からPerlとはおさらばだ!
0012俺様
垢版 |
03/02/27 17:15ID:tJsRCtRD
>>11
そこのじゃ嫌なのか?
そこからで全然問題ないと思うが。
0013nobodyさん
垢版 |
03/02/27 17:57ID:???
おお,このスレはありがたい.がんがってください.
0014nobodyさん
垢版 |
03/02/27 18:00ID:oT8eTv8K
期待age
0015俺様
垢版 |
03/02/27 20:27ID:tJsRCtRD
CGI/Perlの場合は
能や予、表などの漢字を使うときに文字化けしないように
\能、\予、\表みたいな面倒な書き方をする必要があっただろう。

PHPでは大半の人がEUCの日本語コードで記述していて
そのような必要はない。

と、言うわけでEUCを読み書き・保存できるエディタを用意しておきましょう。
例えば、Windows標準のメモ帳では無理です。

まあ、ベクターとかでEUCって検索すればすぐに見つかる。
http://channel.goo.ne.jp/download/search/search.php3?MT=euc&CD=1&SW=1&OS=3&category=1&search_num=10

シェアウェアのものでよいならば秀丸やEmEditorがお奨め。
0016nobodyさん
垢版 |
03/02/27 21:11ID:???
質問なんですけど、
関数の引数にハッシュを使う方法ってありますか?
function func($key,$value){
return "$key => $value";
}
$result = func("key"=>"value");
みたいにやりたいのですが
Parse error: parse error, unexpected T_DOUBLE_ARROW
というエラーがでました。

function func($key=>$value){
return "$key => $value";
}
でも無理でした。
0018nobodyさん
垢版 |
03/02/28 04:10ID:???
(PerlCode)
$name="john";
$say=sub{return "My name is $_[0].";};
print &{$say}($name);

はPHPで書くとどうなりますか?
0019nobodyさん
垢版 |
03/02/28 06:25ID:???
>>18
俺のPerl自慢。

                  つづく
0020nobodyさん
垢版 |
03/02/28 08:36ID:???
>>18
<?php
$name = "jhon";
function say($name) {return("My name is $name");}
echo say($name);
?>
0021nobodyさん
垢版 |
03/02/28 09:16ID:TC5rJBdj
そんなもんをXHTMLに埋め込んだら、見苦しくて死ぬぞ。
ブラウザでパースもできんようになるし。
MVCにしろや。
0022俺様
垢版 |
03/02/28 10:31ID:???
>>20
お答えサンクス。

と、いうわけでもうインストールはばっちしだと思うので
今日はユーザー定義関数についてから話そう。
超独自仕様のPerとの大きな違いの1つだ。
まあ、はっきり言っちゃえば
>>18みたいな書き方はPerlではごく普通だが
Perl知らない人から見れば何なのかさっぱりってほど特殊だ。
それに比べてPHPの>>20は他の言語
(例えばJavaとか)しか知らない人が見ても何となく理解できるだろう。
002318
垢版 |
03/02/28 10:35ID:???
>>20
レスどうもです。

無名サブルーチンみたいなのが使いたいなと思っていたのですが、
create_function関数というのがあるみたいですね。
http://www.php.net/manual/ja/function.create-function.php

<?php
$name="john";
$say=create_function('$name','return "My name is $name.";');
print $say($name);
?>
0024俺様
垢版 |
03/02/28 10:51ID:???
Perlでは関数でなくサブルーチンと呼ばれていたな。

sub foo {
print "$_[0] ";
return $_[0]+100;
}
$b= &foo(100)
print $b;;
#100 200
-------------------
function foo($a) {
print "$a ";
return $a+100;
}
$b= foo(100);
print $b;
#100 200

PHPの場合は明示的に引数を記述しておく必要がある。
可変引数は配列を渡せば良いだろう。Perlも実際は@_という配列を渡しているわけだし。
まあ、こうやって見ると両方大した違いは無く見えるが
変数のスコープについて根本的な違いがあるので注意しよう。
それについては後述。
0025俺様
垢版 |
03/02/28 11:03ID:0fBPA0cl
いちいち引数を書くとは面倒になったと言う人もいるだろうが、
おかげでデフォルト引数を簡単に実現できる。

<?php
function foo2($a ="俺様") {
print "$a は凄い<br>";
}
foo2("お前");
foo2();
?>

/*
お前 は凄い
俺様 は凄い
*/
引数を指定しなかったら勝手に俺様が凄くなってくれるのだ。
0026nobodyさん
垢版 |
03/02/28 11:04ID:???
講座スレ作ろうとする奴って大体理論が崩壊してるよな・・・。
0027nobodyさん
垢版 |
03/02/28 11:04ID:???
Perlでは関数でなくサブルーチンと呼ばれていたな。

sub foo {
print "$_[0] ";
return $_[0]+100;
}
$b= &foo(100)
print $b;;
#100 200
-------------------
function foo($a) {
print "$a ";
return $a+100;
}
$b= foo(100);
print $b;
#100 200

PHPの場合は明示的に引数を記述しておく必要がある。
可変引数は配列を渡せば良いだろう。Perlも実際は@_という配列を渡しているわけだし。
まあ、こうやって見ると両方大した違いは無く見えるが
変数のスコープについて根本的な違いがあるので注意しよう。
それについては後述。
0028俺様
垢版 |
03/02/28 11:08ID:0fBPA0cl
これかいてる間に重要なこと思い出した。

#Perl code
$a=26;
print "$aゲット";

#26ゲット
-------------
#PHP code
$a=26;
print "$aゲット";

#(何も表示されない)
----------------------

両者にはこのような違いが起きてしまう。
下はどうすればよいのか各自考えてみましょう。

出かけるので解答は夜で。
0029俺様
垢版 |
03/02/28 11:09ID:0fBPA0cl
26ゲットできなかったヽ(`Д´)ノ
0030俺様
垢版 |
03/02/28 11:10ID:0fBPA0cl
>>26
俺様はPHP歴浅いので
崩壊どころか理論自体形成されていない。
だからこのスレタイは入門だ。
間違いはがんがん指摘してクレイ!
0031nobodyさん
垢版 |
03/02/28 11:13ID:njt3nQcM
>>30
俺はPHPすら分からない。
だから、がんがん解説してクレイ!
0032nobodyさん
垢版 |
03/02/28 11:19ID:???
結構見やすいPerl/PHPの構文比較のページ見つけました。

Perl/Php Translation
http://www.cs.wcupa.edu/~rkline/perl2php/

既出だったらゴメン。
0033俺様
垢版 |
03/02/28 11:21ID:0fBPA0cl
>>32
それは便利だな。
では今後はそこに載ってないやつを指摘していくことにしよう。
0034nobodyさん
垢版 |
03/02/28 11:25ID:???
>>18
<?php
$name = "jhon";
function say($name) {return("My name is $name");}
echo say($name);
?>
0035nobodyさん
垢版 |
03/02/28 11:26ID:???
Perlでは関数でなくサブルーチンと呼ばれていたな。

sub foo {
print "$_[0] ";
return $_[0]+100;
}
$b= &foo(100)
print $b;;
#100 200
-------------------
function foo($a) {
print "$a ";
return $a+100;
}
$b= foo(100);
print $b;
#100 200

PHPの場合は明示的に引数を記述しておく必要がある。
可変引数は配列を渡せば良いだろう。Perlも実際は@_という配列を渡しているわけだし。
まあ、こうやって見ると両方大した違いは無く見えるが
変数のスコープについて根本的な違いがあるので注意しよう。
それについては後述。
Perlでは関数でなくサブルーチンと呼ばれていたな。

sub foo {
print "$_[0] ";
0036nobodyさん
垢版 |
03/02/28 11:32ID:???
>>28
変数名の後ろは全角文字でもダメみたいですね。
(半角の「.」はOKだった)

#PHP code
$a=26;
print $a."ゲット";

#26ゲット

#PHP code
$a=26;
print "$a.ゲット";

#26.ゲット
0037nobodyさん
垢版 |
03/02/28 11:33ID:???
>>28
print "${a}ゲット";
print $a."ゲット";
echo $a,"ゲット";
0038nobodyさん
垢版 |
03/02/28 12:12ID:???
Perlでは関数でなくサブルーチンと呼ばれていたな。

sub foo {
print "$_[0] ";
return $_[0]+100;
}
$b= &foo(100)
print $b;;
#100 200
-------------------
function foo($a) {
print "$a ";
return $a+100;
}
$b= foo(100);
print $b;
#100 200

PHPの場合は明示的に引数を記述しておく必要がある。
可変引数は配列を渡せば良いだろう。Perlも実際は@_という配列を渡しているわけだし。
まあ、こうやって見ると両方大した違いは無く見えるが
変数のスコープについて根本的な違いがあるので注意しよう。
それについては後述。
Perlでは関数でなくサブルーチンと呼ばれていたな。

sub foo {
print "$_[0] ";
 
0039nobodyさん
垢版 |
03/02/28 12:41ID:???
シフトJISでがんがん書いてます。
0040俺様
垢版 |
03/02/28 20:06ID:R6lXT7Vm
>>36
  _n
 ( l    _、_
  \ \ ( <_,` )
   ヽ___ ̄ ̄  )   グッジョブ!! 
     /    /

>>37
   _、_
 ( ,_ノ` )      n
 ̄     \    ( E)  グッジョブ!!
フ     /ヽ ヽ_//

0041俺様
垢版 |
03/02/28 20:12ID:R6lXT7Vm
些細なことに見えるが、
自分はこのせいで某スクリプトを
PerlからPHPに移植する際に、
30分ぐらい睨めっこした記憶があるので。
頭の中に入れて起きましょう。

$a=26;
print "{$a}ゲット";
print $a."ゲット";
0042nobodyさん
垢版 |
03/03/01 11:16ID:5K/2+grl
先生質問です。
>>9の通りしましたがapacheが起動できません。
どうやらhttpd.confのLoadModule php4_module C:/php/sapi/php4apache.dllが原因のようです
php4apache.dllをphp4apache2.dllとしても同じでした。

WinME Apache2.0.39です
0044俺様
垢版 |
03/03/01 12:12ID:UE12tRyA
>>42
Apacheは2よりも1.3.27の方がいいと思う。
後はなんだろな〜
Meなんて怪しいOS使ったことないからな。
とりあえずApacheのバージョンを変えて試してみてクレイ。
0045nobodyさん
垢版 |
03/03/01 12:41ID:5K/2+grl
>>44
ありがとうございます。1.3.27を使ったら起動できました。
0046nobodyさん
垢版 |
03/03/01 16:35ID:???
 |  | ∧
 |_|Д`) < それだー!!
 |文|⊂)
 | ̄|∧|
 ̄ ̄ ̄ ̄ ̄
 |  | ∧
 |_|Д`) < それだー!!
 |文|⊂)
 | ̄|∧|
 ̄ ̄ ̄ ̄ ̄
 |  | ∧
 |_|Д`) < それだー!!
 |文|⊂)
 | ̄|∧|
 ̄ ̄ ̄ ̄ ̄
 |  | ∧
 |_|Д`) < それだー!!
 |文|⊂)
 | ̄|∧|
 ̄ ̄ ̄ ̄ ̄
 |  | ∧
 |_|Д`) < それだー!!
 |文|⊂)
 | ̄|∧|
 ̄ ̄ ̄ ̄ ̄
0047nobodyさん
垢版 |
03/03/01 16:36ID:???
>>44
OS = Windowsとか思っている痛い講師がいるクソスレはココですか。
0048俺様
垢版 |
03/03/01 17:05ID:UE12tRyA
>>47
世の中は理詰めだけでは解決しない。
理論ヲタになるより、わかりやすさを求める方が現実的だ。
わかるかい?
しかも、PHPと直接は関係ない。
君は文学者がテイラー展開を出来なかったら馬鹿にするだろうか?

では、今日はいよいよ変数のスコープについての説明だ。
あくまでも対象者は基本的に『Perlしか』やったことがない人のみ。
C言語など他の言語をやっている人には馬鹿見たく思われる説明になるからだ。
0049nobodyさん
垢版 |
03/03/01 17:07ID:???
>>48
>君は文学者がテイラー展開を出来なかったら馬鹿にするだろうか?

少なくとも数学者を目指す文学者がマクローリン展開を知らなければバカにするが。
0050俺様
垢版 |
03/03/01 17:30ID:UE12tRyA
>>49
俺様はべつにオペレーティングシステムのエキスパートを目指してはいないッポ。

#Perlscript

sub foo{
$a = 100;
print "$a,";
$a++;
}

&foo();
print $a;

#100,101

まあ、当たり前の結果が表示されます。
これをPHPに書き換えてみましょう。
0051俺様
垢版 |
03/03/01 17:34ID:UE12tRyA
#PHPscript

<?php
function foo(){
$a = 100;
print "$a,";
$a++;
}

foo();
print $a;

?>
# 100,

何故か100しか表示されません!?( ̄□ ̄;)ナント!!
どうして後ろの$aは表示されなかったのでしょうかという問題です。
0052俺様
垢版 |
03/03/01 17:41ID:UE12tRyA
同様の例です。

#Perl

sub hoge{
print $a;
}
$a="俺様";
&hoge;
----------
#PHP

function hoge(){
print $a;
}
$a="俺様";
hoge();

Perlの方だと見事、俺様と表示されるのですが、
後者の方は何も表示されないので吃驚仰天です。
0053nobodyさん
垢版 |
03/03/01 17:47ID:???
>>50
>俺様はべつにオペレーティングシステムのエキスパートを目指してはいないッポ。

いや、エンジニアでなくても車=ベンツとか思ってる奴はアホなわけで。

教養ではなく常識なのよ。常識。
0055nobodyさん
垢版 |
03/03/01 18:33ID:???
>>54
どうしていつものコテハンを使わないんですか?
0056nobodyさん
垢版 |
03/03/01 18:58ID:???
>>55
ごめんごめん。かんじよめないんだ?
ジャマ。キエロ
0057俺様
垢版 |
03/03/01 19:04ID:UE12tRyA
>>54,>>56
(・∀・)カエレ!!
せっかくこのスレを良い感じにしたいのだから
煽りはよそでやってクレイ。
0058俺様
垢版 |
03/03/01 19:06ID:UE12tRyA
>>53
まあ、教養が無かった俺様が厨ってことで
その話題は終わりにしよう。スレ違いだし。
0060nobodyさん
垢版 |
03/03/01 19:29ID:???
>>50-51
Perlがデフォルトでグローバル変数なのに対して、
PHPでは、デフォルトでローカル変数だから。

#PHPscript
<?php
function foo(){
$a = 100;
print "$a,";
$a++;
}
foo();
print $a;
?>


#Perlscript
sub foo{
my $a = 100;
print "$a,";
$a++;
}
&foo;
print $a;

と同じ
#始めたばかりなので全く同じかどうかとか用語の使い方は正しくないかもしれません
0061nobodyさん
垢版 |
03/03/01 19:56ID:???
#PHPscript
<?php
$a = 999;
function foo(){
$a = 100;
print "$a,";
$a++;
}
foo();
print $a;
?>
#100,999

なーる。
0062俺様
垢版 |
03/03/01 19:58ID:gsC9ephA
>>60
(*゚▽゚ノノ゙☆パチパチ

Perlにおいていわゆるmyを付けた場合が
PHPでは標準になっています。
C言語などの場合はコンパイル時に
未定義(未宣言)の変数だ!ってエラーを出してくれるのですが、
PHPではそのまま初期値(文字なら空白、数字なら0)として
認識してしまうので注意しましょう。

結構すんなり受け入れられるのかなー?
普段からmyを使ったりしている人なら問題ないだろうけど
プログラミング言語をPerlしかやってないでグローバルなのが当たり前だって
思ってた人には受け入れるのに時間が掛かるかもしれない。

そんなことないか?どうだろう。
0063nobodyさん
垢版 |
03/03/01 20:01ID:Ddm3hU+C
Perlってなんて読むの?
0064俺様
垢版 |
03/03/01 20:08ID:gsC9ephA
逆にPerlの標準のようにグローバル(大域)変数として
扱いたい場合も書いておきましょう。
これはCやJavaとも違う仕様ですね。
関数内の最初でglobalと宣言します。
なお、PHPの設定でregister_globalsをonにすると
また違うようなのですが、デフォルトはoffで推奨となっているのでそれに従います。

<?php
$a = 999;
function foo(){
global $a; //これでグローバルスコープの$aを参照しますよと宣言している。
print "$a,";
$a++;
}
foo();
print $a;
?>
#999,1000

因みに、function foo()はどこに書いてもOKです。
(PHP3だったころは駄目だったとか・・・)

>>63
[p:(r)l]
0065俺様
垢版 |
03/03/01 20:25ID:UE12tRyA
Perlには静的(スタティック)変数が無かったと思うので
それについても書いておきましょう。

function foo(){
static $a=0;
print $a;
$a++;
}

for($i=0;$i<5;$i++){
foo();
}

#01234

このようにすると
最初にfoo()が呼ばれたときのみstatic $a=0が呼ばれてくれるのです。
以降、foo()が呼ばれるたびに$aは1ずつ増加してくれます。
staticをつけないと毎回0が出力されてしまいますね。
変数のスコープは関数内のみなのに値を保持していてくれるわけです。
globalでは無いので関数外部から直接$aの値をいじることは出来ません。
0066生徒B
垢版 |
03/03/01 20:39ID:???
perlの use strict; のような未定義変数をチェックする方法はPHPに無いのでしょうか。
0067nobodyさん
垢版 |
03/03/01 20:50ID:???
{
my $static = 0;
sub foo () {
return ++$static;
}
}
0068nobodyさん
垢版 |
03/03/01 21:03ID:b+i+15ud
だめだ・・・functionの時点でわからそ。
0069俺様
垢版 |
03/03/01 21:27ID:UE12tRyA
>>66
すまんが俺様は知らんな。
全ての定義済の変数を配列で返すような
関数ならあるが。

<?php
$def_arr= get_defined_vars();
//初期設定(_SERVER["SERVER_ADDR"]のようなもの)
//を含む全ての定義済みの変数の配列を得る)

$a=3;
$abc=10;

$arr = get_defined_vars();
//初期設定のものに上の2つが追加された。

$new_arr = array_diff($arr,$def_arr);
//2つの配列の差を得る。

print_r($new_arr);//配列の内容を出力
?>

#Array ( [a] => 3 [abc] => 10 )
0071俺様
垢版 |
03/03/01 21:32ID:UE12tRyA
>>67
なるほど。Perlでstaticを実現した例ですね。
まあ、PHPの場合はわざわざ自前で作らなくても
最初からstaticという命令が用意されているということです。
0072俺様
垢版 |
03/03/01 21:35ID:UE12tRyA
>>68
Perlをある程度理解していれば
わかるようにしたいのだが、
(Perlも未経験という場合はちょっと厳しいです。)
どこら辺がわからんだろうか?
とりあえずPerlのsubをfunctionに置き換えちゃえばOKだ。
0074生徒B
垢版 |
03/03/01 21:56ID:???
>>69
どもども。
ちょっと面倒ですね。
0078生徒B
垢版 |
03/03/01 22:22ID:???
<?php
error_reporting(E_ALL);
print $a;
?>
#<b>Notice</b>: Undefined variable: a in <b> (filename)
# </b> on line <b>3</b><br />

>>76
ありがとう。うまくいきました。
0080俺様
垢版 |
03/03/01 22:30ID:UE12tRyA
>>76
(・∀・)イイ!

φ(.. )メモシテオコウ
error_reporting(E_ALL);
0081nobodyさん
垢版 |
03/03/01 22:35ID:???
あいだに空を入れる人生。色即是空(w
0083俺様
垢版 |
03/03/02 19:03ID:SRraTB8e
よっしゃ!早くも寂れてきたぞ。今日は配列について書いておこう。

まず、Perlの場合配列値を表す変数は先頭が$でなく@になっていた。
しかしPHPではそんな面倒なことはない。どんな場合でも先頭は$でOKだ!
凄い楽そうだろ?(祝

初期化の差はこんな感じだ。

#Perl
@a = (20,10,30,3);

#PHP
$a = array(20,10,30,3);

arrayって余計な文字が付いたが細かいことは気にするな。
0084俺様
垢版 |
03/03/02 19:10ID:SRraTB8e
驚くことにPHPでは

$a[] = "a";
$a[] = "b";
$a[] = "c";

$a[0] = "a";
$a[1] = "b";
$a[2] = "c";

この2つが同じ意味となるのだ。
角括弧内の数字を省略した場合、
値は配列に最後の要素として勝手に追加してくれる。
まあ、こういう独自仕様は混乱の元だから俺は上の形式で書いたことは無いがな。
わかった上で使うなら利用場面は結構多いかもしれない。
0086俺様
垢版 |
03/03/02 19:19ID:SRraTB8e
配列の関数一つ一つ説明するのは面倒だから
あとは>>32のサイトや公式のマニュアルでも読んでくれ。
Perlで実現できてたことの代替手段は大体存在してる。

0087俺様
垢版 |
03/03/02 19:26ID:FrxqKaYz
多次元配列は一つ注意を。
これは前も似たようなこと言ったが

$a[0][1] = 41;
print "$a[0][1]";

Perlだと期待する結果41が出力されるが、
PHPだとArray[1]という怪しげな結果が出力されてしまう。
後ろの[1]はただの文字列として認識されてしまっているようなのだ。
以下のどちらかにしないといけない。

$a[0][1] = 41;
print "{$a[0][1]}";
print "".$a[0][1];
0088俺様
垢版 |
03/03/02 19:28ID:FrxqKaYz
まあ、おかしくなったらまずは変数を{}で括ってみろってことだ。
0089nobodyさん
垢版 |
03/03/02 19:51ID:???
@a{qw(a b c)} = @b[1..3];
こういうのはどう書く?
0091俺様
垢版 |
03/03/02 21:07ID:FrxqKaYz
>>89
うーん、よくわからんな(汗
誰かわかる人募集中だ!

まあ、とりあえず根性で全部書いておけ。
$a = array(
"a" => $b[1],
"b" => $b[2],
"c" => $b[3],
)
0092nobodyさん
垢版 |
03/03/02 23:06ID:???
なんで、空投稿するんだよ。見ずらいんだよ。
0093nobodyさん
垢版 |
03/03/02 23:16ID:???
日本語すら満足に書けない俺様が講師のクソスレはここですか?

見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。
見ずらいんだよ。

0094nobodyさん
垢版 |
03/03/02 23:20ID:???
ねちっこいね。うざいというかきもい。
0095nobodyさん
垢版 |
03/03/02 23:27ID:???
  ∧_∧
 ( ´∀`)<きもい。きもい。
 (     つ
 (_○___)
0096nobodyさん
垢版 |
03/03/02 23:31ID:???
見づらいんだよ。でした。すまん。
俺は「俺様」じゃないです。
0097nobodyさん
垢版 |
03/03/03 04:20ID:???
普通に見てる人もいるんで、煽ってるやつらマジでどっかいって。
0098nobodyさん
垢版 |
03/03/03 08:39ID:???
>>97
普通にウザがってる人もいるんで自分のサイトでやるように説得してください。
0099俺様
垢版 |
03/03/03 10:08ID:gt/b6+qo
煽りでもレスが付かないよりは大歓迎だ!
>>98
需要も少しはあるようだからまあ、多めに見てもいいじゃないか。
WebProg板ってスレ保持数に比べて活性化しているスレ数が非常に少ないから
他のスレがdat落ちして困るとかも無いしな。ウザかったら見なければ(・∀・)イイ!
2chブラウザ使ってこのスレごとあぼーんだ。
0100俺様
垢版 |
03/03/03 10:33ID:gt/b6+qo
今日はオブジェクト指向について書いておこう。
PHPもPerlもJavaやC++に代表されるオブジェクト指向言語である。

Perlのオブジェクト指向についてあまり知らないんですが、
Javaに比べるとPHPのオブジェクト指向に関する仕様は
             ショボイ!!!!
今年中に出る予定のPHP5で大幅に機能がアップするらしいので
それに期待しましょう。

0101俺様
垢版 |
03/03/03 10:48ID:gt/b6+qo
まず、誰でも最初に疑問に思うのが
オブジェクト指向を用いるメリットは何か?
ということだ。

再利用ができる?
そんなのオブジェクト指向じゃなくてもしてるじゃないか。
我々はprintという出力命令を何度も利用している。
printの命令が内部でどういう仕組みになっているか調べたことのある人は極少数だろう。
0102俺様
垢版 |
03/03/03 11:12ID:gt/b6+qo
まあ、オブジェクト指向をうまく使えば
再利用『しやすく』はなるだろう。

まず、カプセル化(データ隠蔽)というものがある。
人間というオブジェクトの例で考えてみよう。
人間は体重というデータを持っているが
我々は外見から見ただけでは体重を正確には知れない。
例えば、彼に『体重計に乗れ』ってメッセージを送れば
正確な体重を得ることが出来る。
同様に体重に『直接』アクセスして値を変えることは出来ない。
彼に『〜を食べろ』ってメッセージを送れば
その食べた分だけ体重が増加してくれるのである。

つまり、内部で保持しているデータを隠蔽できて、
見たり変えたりするには間接的にアクセスする必要があるということなのだが、

PHPではアクセサ(アクセス制限)の概念が存在しないため
このカプセル化があっさり崩壊してしまう。
0103俺様
垢版 |
03/03/03 11:35ID:gt/b6+qo
再利用のためのもう一つの便利な機能は『継承』だろう。
既存のクラスのフィールド(データ)やメソッド(機能)を引き継いで、
その上で既存の機能を修正したり新たに追加したりできるようになる。
まあ、言い方を変えれば『継ぎはぎ』みたいなものだ。

PHPでは多重継承が存在しない。
つまり、あるクラスに対して1つの親クラスからしか
フィールドやメソッドを引き継げないということだ。
同じく多重継承が禁じられているJavaではこのようなことがしたければ
interfaceで代替が可能だが、
PHPではその代替案すら用意されていない。

多重継承なんかしなくてもプログラムは作れるという主張も根強いが、
まあ、それを言ったら継承なんかしなくてもプログラムを作れる
と言っても同じようなことである。
0104俺様
垢版 |
03/03/03 12:07ID:gt/b6+qo
1つぐらいサンプルを書いてみよう。
因みに、このように変数に日本語使っても大丈夫だ。
(普段はお奨めしない。)

<?php
class 人{ //クラス名
var $体重; //フィールド
function 人($値){ //コンストラクタ(初期化)
$this->体重=$値; //値をフィールドへ代入
}
function 体重計に乗る(){ return $this->体重;} //体重を出力するメソッド
function 食べる($量){ $this->体重+=$量;} //体重を量だけ加える
}

$俺様=new 人(60);
print $俺様->体重計に乗る();
print ",";
$俺様->食べる(0.5);
print $俺様->体重計に乗る();
#60,60.5
?>
0105俺様
垢版 |
03/03/03 12:10ID:gt/b6+qo
クラス内で自分自身のフィールドにアクセスするのにも
$this->体重
このように$thisとかいうものが必要なのだ。
(Javaの場合は省略可能)
これは長いコードを書こうとするとわかるが面倒すぎ。
0106俺様
垢版 |
03/03/03 12:16ID:gt/b6+qo
ここで>>102で指摘した問題が起きる。
<?php
class 人{
var $体重;
function 人($値){
$this->体重=$値;
}
function 体重計に乗る(){ return $this->体重;}
function 食べる($量){ $this->体重+=$量;}
}

$俺様=new 人(60);
$俺様->体重 = 200; //おいおい、勝手に体重変えられたYO!
print $俺様->体重; //体重計使わなくても調べられるのかYO!
#200 俺は相撲取りじゃねえYO!
?>

てなわけで体重計とかのメソッドを作る意味がなくなってしまうのだ。
(Javaの場合はフィールドの前にprivateを付けるなどすれば
このような直接アクセスを防ぐことが出来る。)
0107俺様
垢版 |
03/03/03 12:26ID:gt/b6+qo
コンストラクタと言うのは結構便利なんだがな。
<?php
class 人
{
var $体重;
function 人($値){
if($値<0) print "( ´,_ゝ`)プ";
else $this->体重=$値;
}
}

$俺様=new 人(-20);
#( ´,_ゝ`)プ
?>

このように体重に負の値が入れられるのを
防ぐことが出来る。
まあ、>>106のようにされたら結局は意味が無いのだが・・・
0108俺様
垢版 |
03/03/03 12:30ID:gt/b6+qo
というわけで長くなったが
PHPのオブジェクト指向は
現在の仕様では大したことがないということで
積極的に使う必要は無いだろう。
機能をグループ化したい人とか、
『何となくかっこいいことしたい人とか』
(ただし、使い方を誤ると逆にかっこ悪くなる)
にはしても損は無い程度だろうか。

いずれにしてもPHP5に期待。
0109俺様
垢版 |
03/03/03 12:33ID:gt/b6+qo
否定的なことばかり書いてたが
最近の本とか見るとメリットしか書いてなくて
オブジェクト指向マンセーになる奴が多すぎる気がするから
敢えて逆行して書いただけで、
メリットをもっと強調するのなら実際は
そこまでひどいわけでもないがな。
0110nobodyさん
垢版 |
03/03/03 23:34ID:???


98 名前:nobodyさん 投稿日:2003/03/03(月) 08:39 ID:???
>>97
普通にウザがってる人もいるんで自分のサイトでやるように説得してください。


99 名前:俺様 投稿日:2003/03/03(月) 10:08 ID:gt/b6+qo
煽りでもレスが付かないよりは大歓迎だ!
>>98
需要も少しはあるようだからまあ、多めに見てもいいじゃないか。
WebProg板ってスレ保持数に比べて活性化しているスレ数が非常に少ないから
他のスレがdat落ちして困るとかも無いしな。ウザかったら見なければ(・∀・)イイ!
2chブラウザ使ってこのスレごとあぼーんだ。


98 名前:nobodyさん 投稿日:2003/03/03(月) 08:39 ID:???
>>97
普通にウザがってる人もいるんで自分のサイトでやるように説得してください。


99 名前:俺様 投稿日:2003/03/03(月) 10:08 ID:gt/b6+qo
煽りでもレスが付かないよりは大歓迎だ!
>>98
需要も少しはあるようだからまあ、多めに見てもいいじゃないか。
WebProg板ってスレ保持数に比べて活性化しているスレ数が非常に少ないから
他のスレがdat落ちして困るとかも無いしな。ウザかったら見なければ(・∀・)イイ!
2chブラウザ使ってこのスレごとあぼーんだ。
0111nobodyさん
垢版 |
03/03/03 23:34ID:???


98 名前:nobodyさん 投稿日:2003/03/03(月) 08:39 ID:???
>>97
普通にウザがってる人もいるんで自分のサイトでやるように説得してください。


99 名前:俺様 投稿日:2003/03/03(月) 10:08 ID:gt/b6+qo
煽りでもレスが付かないよりは大歓迎だ!
>>98
需要も少しはあるようだからまあ、多めに見てもいいじゃないか。
WebProg板ってスレ保持数に比べて活性化しているスレ数が非常に少ないから
他のスレがdat落ちして困るとかも無いしな。ウザかったら見なければ(・∀・)イイ!
2chブラウザ使ってこのスレごとあぼーんだ。


98 名前:nobodyさん 投稿日:2003/03/03(月) 08:39 ID:???
>>97
普通にウザがってる人もいるんで自分のサイトでやるように説得してください。


99 名前:俺様 投稿日:2003/03/03(月) 10:08 ID:gt/b6+qo
煽りでもレスが付かないよりは大歓迎だ!
>>98
需要も少しはあるようだからまあ、多めに見てもいいじゃないか。
WebProg板ってスレ保持数に比べて活性化しているスレ数が非常に少ないから
他のスレがdat落ちして困るとかも無いしな。ウザかったら見なければ(・∀・)イイ!
2chブラウザ使ってこのスレごとあぼーんだ。
                           
0112nobodyさん
垢版 |
03/03/03 23:34ID:???


98 名前:nobodyさん 投稿日:2003/03/03(月) 08:39 ID:???
>>97
普通にウザがってる人もいるんで自分のサイトでやるように説得してください。


99 名前:俺様 投稿日:2003/03/03(月) 10:08 ID:gt/b6+qo
煽りでもレスが付かないよりは大歓迎だ!
>>98
需要も少しはあるようだからまあ、多めに見てもいいじゃないか。
WebProg板ってスレ保持数に比べて活性化しているスレ数が非常に少ないから
他のスレがdat落ちして困るとかも無いしな。ウザかったら見なければ(・∀・)イイ!
2chブラウザ使ってこのスレごとあぼーんだ。


98 名前:nobodyさん 投稿日:2003/03/03(月) 08:39 ID:???
>>97
普通にウザがってる人もいるんで自分のサイトでやるように説得してください。


99 名前:俺様 投稿日:2003/03/03(月) 10:08 ID:gt/b6+qo
煽りでもレスが付かないよりは大歓迎だ!
>>98
需要も少しはあるようだからまあ、多めに見てもいいじゃないか。
WebProg板ってスレ保持数に比べて活性化しているスレ数が非常に少ないから
他のスレがdat落ちして困るとかも無いしな。ウザかったら見なければ(・∀・)イイ!
2chブラウザ使ってこのスレごとあぼーんだ。
 
0113nobodyさん
垢版 |
03/03/04 02:34ID:???
あんまり資源無駄に使ってるとアク禁食らっちゃうよー
0114nobodyさん
垢版 |
03/03/04 05:05ID:???
このスレすごく良いです。頑張ってください。
0115nobodyさん
垢版 |
03/03/04 07:56ID:6TNNfPas
>>113
同意。>>1は反省しる。

>>114
自作自演晒しage
0116俺様
垢版 |
03/03/04 10:17ID:SJwb4sM+
オブジェクト指向に関するレスは0か。
まあ、使わなければならない機能でもないから放って置いてくれ。
今日はそろそろ具体的なHTMLドキュメントの作成方法に入っていこう。

>>113
気をつけます。
>>114
(TдT) アリガトウ
>>115
俺様は朝5時になんか起きれん。
0117俺様
垢版 |
03/03/04 10:29ID:SJwb4sM+
出力方法は何通りかあるので示しておきます。
自分が使いやすい方法を用いればよいだろう。

<?php
$title = "タイトル";
print "<html>";
print "<head>";
print "<title>$title</title>";
print "</head>";
print "<body>";
print "俺様のHTMLドキュメント";
print "</body>";
print "</html>";
?>

前も言ったように、CGI/Perlの場合は
print "Content-type: text/html\n\n";
こんなのが必要だったがmod_phpの場合は要らない。
上のスクリプトを書いてブラウザで開いてみれば
見事、俺様のHTMLドキュメントと出力される。
0118俺様
垢版 |
03/03/04 10:50ID:SJwb4sM+
資源無駄使いって言われたので
混合させてまとめて記述しちゃうか。
<?php
$title = "タイトル";
echo "<html>"; //echoも出力命令の1つ。printと同じようなものと思って良い。
echo("<head>"); //今まで省略してたけど()を付けても構わない。printも同様。

//C言語にあったprintfも使える。%3dなど書式をいろいろ設定できる。
//printやechoと違い、()が必須なので注意。
printf("<title>%s</title>",$title);
printf("</head>");

print <<<EOD //ヒアドキュメント。HTML部分が長くてprintとか書くのが面倒なとき便利
<body>
俺様のHTMLドキュメント
</body>
EOD; //ヒアドキュメント終了
print "</html>";
?>

ヒアドキュメントはPerlでも使っていた人は多いでしょう・
Perlでは↓のように書くが、PHPではセミコロンの位置が変わっているので
間違えないように注意しよう(重要)。
print <<EOD;
...
EOD
0119俺様
垢版 |
03/03/04 11:00ID:SJwb4sM+
因みに、PHPはHTML内に埋め込むことができると言うのを
利点として主張されることも多い。これは以下のように書けるからである。
<?php $title = "タイトル"; ?>
<html>
<head>
<title><?php $title ?></title>
</head>
<body>
俺様のHTMLドキュメント
</body>
</html>
このように必要な部分だけをPHPスクリプトとして認識させることが出来る。

コメントについても書いちゃおう。
Perlでは#のみだったがPHPではJavaなどで使われている以下の形式も可能である。
// コメント。#と意味は同じ。
/* これもコメント。複数行をコメントか出来るのが特徴。
つまりここもコメントになる。   */
0120俺様
垢版 |
03/03/04 11:11ID:hLFJ4wUF
この利点を利用すれば
簡単なカウンタなら
カウント保存用の空ファイルさえアップしておけば
ほんの数行であっという間に出来てしまうのだ。

明日はファイル入出力をやろう。
0122nobodyさん
垢版 |
03/03/04 18:41ID:Nso2bqOx
手っ取りばやくお金もうけしましょう
http://www.h4.dion.ne.jp/~sohotop/
日給2万円も無理じゃない!!!
0126nobodyさん
垢版 |
03/03/04 21:46ID:???
















OOの無いPHPを使う位なら俺はPerlを使う。








0127生徒B
垢版 |
03/03/05 01:20ID:???
>>126
入門なんだから、大目に見てくださいな。
0128俺様
垢版 |
03/03/05 10:25ID:RSVIcXg3
>>126
まあ、まずはOOを使うメリットをよく考えないと。
モジュールでも作るのか?

>>127
OOの入門レベルなら
プログラミング全体で見てもやはり入門であることには違いない。

0130俺様
垢版 |
03/03/05 10:50ID:RSVIcXg3
では、ファイル操作について簡単な説明をしておこう。
ファイルの開き方は、PerlではopenだったがPHPではfopenになる。
読み取りや書き込みなどのモードもPerlとは仕様が変わり
C,Java寄りになっているので注意しよう。
PHP:
$fp = fopen(filename, mode); //ファイルポインタの位置が返る
Perl:
open(FILE, filename); //返り値は正常時が1、失敗だと0

オープンモードの選択方法がPerlだと+>みたいのをファイル名に直接つけていたのが
PHPだと2つ目の引数として別に記述するようになった。
ファイルハンドラは引数に記述するのではなく、
返り値になったのでそこも注意しよう。

具体的な仕様はマニュアルを参照。
http://www.php.net/manual/ja/function.fopen.php
0132俺様
垢版 |
03/03/05 11:07ID:RSVIcXg3
では超簡易カウンタを作ってみよう。
仕様としてはファイルcount.txtの1行目にカウンタ数値を書くだけのものだ。
まず予めcount.txtを作成して0を記述しておくこと。

<?php
$fp = fopen("count.txt","r");
//count.txtを読み出しモードで開く。
//$fpはファイルポインタであり、rの場合ファイルの先頭の位置が返される。
$count = fgets($fp); //改行かファイルの終端まで読みこんで$countへ代入。
fclose($fp); //いったん閉じる
$count++;
$fp = fopen("count.txt","w"); //書き込みモード
fwrite($fp,$count); //書き込み。
fclose($fp);
?>
<html>
<body>
貴方は<?php print $count; ?>人目の俺様の弟子じゃ。
</body>
</html>
0133俺様
垢版 |
03/03/05 11:16ID:RSVIcXg3
>>131
オマエモナー
0134俺様
垢版 |
03/03/05 11:25ID:RSVIcXg3
では明日はいよいよフォームの処理を行おう。
0135俺様
垢版 |
03/03/05 11:27ID:RSVIcXg3
ちなみにレッツPHPにファイルを1回しか開かなくていいバージョンが書かれているな。
http://php.s3.to/counter/
同時アクセスの際の弊害が置きにくくなるからそっちの方がいいだろう。
flockもしておくこと。
0136俺様
垢版 |
03/03/05 11:56ID:5JBlRiko
因みに、PHPはHTML内に埋め込むことができると言うのを
利点として主張されることも多い。これは以下のように書けるからである。
<?php $title = "タイトル"; ?>
<html>
<head>
<title><?php $title ?></title>
</head>
<body>
俺様のHTMLドキュメント
</body>
</html>
このように必要な部分だけをPHPスクリプトとして認識させることが出来る。

コメントについても書いちゃおう。
Perlでは#のみだったがPHPではJavaなどで使われている以下の形式も可能である。
// コメント。#と意味は同じ。
/* これもコメント。複数行をコメントか出来るのが特徴。
つまりここもコメントになる。   */
0137nobodyさん
垢版 |
03/03/05 13:34ID:E53JqQ+I
PHPには「〜?〜:〜」に該当する関数等はありまつか?
下のようなのが沢山あるのでなるべくif文は使いたくないんです。

例1:(Perl)
printf "<a href=\"%s\" target=\"%s\">%s</a>\n",&link($a?$b:$c),$d?"_blank":"_top",$d?"新しいウィンドウで開く":($e?"次のページ":"更新");
0138nobodyさん
垢版 |
03/03/05 13:39ID:???
条件演算子としては、他に "?:" (または trinary) 演算子があります。 この演算子の動作は、Cまたは他の多く言語と同じです。


(式1) ? (式2) : (式3);



この式は、式1 がTRUEの場合に 式2 を、 式1 がFALSEの場合に 式3 を値とします。

と、PHPマニュアルからまんま転載してみる。
0139137
垢版 |
03/03/05 13:44ID:???
>>139
ありがとう。
PHPに乗り換えようかと思います。
0140俺様
垢版 |
03/03/05 14:02ID:5JBlRiko
PHPによるHTTP認証のフックは、Apacheモジュールとして実行した時のみ 有効で、
CGI版では利用できません。Apache モジュールPHPスクリプトにお いて、header()
関数を使用して "Authentication Required" メッセージをクライアントブラウザに送る
ことが可能です。 これにより、クライアントブラウザにユーザー名とパスワードを入力する ウイ

ンドウがポップアップ表示されます。一度、ユーザーがユーザー名と パスワードを
入力すると、PHP スクリプトを含むその URL は、次回以降、 定義済みの変数 PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_TYPEにそれぞれユーザー名
、 パスワード、認証型を入力してコールされます。 定義済みの変数は、配列 $_SE
RVER および $HTTP_SERVER_VARS でアクセス可能です。 "Basic" 認証のみ
がサポートさ
れています。詳細は、 header()を参照下さい。

0141俺様
垢版 |
03/03/05 19:13ID:RSVIcXg3
>>140
俺様の騙りがついに
キタ━(゚∀゚)━( ゚∀)━( ゚)━( )━(゚ )━(∀゚ )━(゚∀゚)━!!!!
0145nobodyさん
垢版 |
03/03/05 22:51ID:???
$a : $b ? $c = 1;

PHPはこれ書ける?
0146俺様
垢版 |
03/03/05 23:06ID:MFbIbSdy
>>143
まあ、1日にいくつも書くの疲れるから。
あせらず明日まで待ってクレイ。

>>144
実際に使うなら、ファイルロックしないと( ゚д゚;)マズーだろうな。
シンプルカウンタは>>135のを使ったほうが良い。

>>145
?と:が逆じゃん?
>>138
0147nobodyさん
垢版 |
03/03/05 23:17ID:5JBlRiko
>>145
三項演算子まともに使えない自作自演俺様晒しage
0148俺様
垢版 |
03/03/05 23:47ID:MFbIbSdy
>>147
ん?>>146で言った逆っての間違ってたか?
そんなことはないと思うが・・・
0150nobodyさん
垢版 |
03/03/06 00:48ID:???
ふふふ。ひっかかったか。

Perlは三項演算子を左辺値として使える。
って全然利用価値はないけど、知ってるか試しただけ。
0151nobodyさん
垢版 |
03/03/06 00:49ID:???
あぁ。$a ? $b : $c だな。・・
0152nobodyさん
垢版 |
03/03/06 01:02ID:uZwldhHh
>>150
ひっかかってた俺様晒しage
0154俺様
垢版 |
03/03/06 01:07ID:ZBXb+hSM
>>150
何が引っかかったのかよくわからん。
>>145は逆だからかエラーでてるし。
0155俺様
垢版 |
03/03/06 01:13ID:ZBXb+hSM
>>150
とりあえず
$a ? $b : $c = 1;
って正しく書いてくれたら面白かったのに。
まあ、またそういうのがあったら引っ掛けてみてクレイ。
0157俺様
垢版 |
03/03/06 01:34ID:ZBXb+hSM
わからない点が出てきた(汗

$a ? $b : $c = 1;
これは$aがまだ初期化されていないため
falseとみなされて$cに1が代入される。
ところが、
$a=true;
$a ? $b : $c = 1;
このようにしても$bには1が代入されていなかった・・・

ちなみにPerlの場合はちゃんと$bに1が代入されてました。
というわけでどうしてPHPだと代入されないのかを考えて見ましょう。
PerlとPHPの違いですね。
0158nobodyさん
垢版 |
03/03/06 01:36ID:???
俺様に、きもいストカー、スレ繁盛。   サラリーマン俳句
0160nobodyさん
垢版 |
03/03/06 01:42ID:???
さっき書いたもので十分。Perlは三項演算子(の2、3番目のやつ)が左辺値になれる。
なんと関数も左辺値にできる(ver 5.6辺り(?)以降から..)

my %hash;
sub hoge : lvalue {
my $key = shift;
return $hash{$key};
}

hoge('test') = 1;
print $hash{test};
0161nobodyさん
垢版 |
03/03/06 01:43ID:???
>>157
あほか?
$a?$b:($c=1);と解釈するからだろ。つーかそれが健全。
0162nobodyさん
垢版 |
03/03/06 01:52ID:???
ごめん。またもや失敗。

return を使ってはいけない。とのこと。

sub hoge : lvalue {
my $key = shift;
$hash{$key};
}
0163nobodyさん
垢版 |
03/03/06 03:27ID:???
C(gcc 2.95.3-6 mingw)はperlと同じ挙動を示した。
こんな書き方があるとは、知らなかった。。
0164nobodyさん
垢版 |
03/03/06 07:56ID:???
わからない点が出てきた(汗

$a ? $b : $c = 1;
これは$aがまだ初期化されていないため
falseとみなされて$cに1が代入される。
ところが、
$a=true;
$a ? $b : $c = 1;
このようにしても$bには1が代入されていなかった・・・

ちなみにPerlの場合はちゃんと$bに1が代入されてました。
というわけでどうしてPHPだと代入されないのかを考えて見ましょう。
PerlとPHPの違いですね。わからない点が出てきた(汗

$a ? $b : $c = 1;
これは$aがまだ初期化されていないため
falseとみなされて$cに1が代入される。
ところが、
$a=true;
$a ? $b : $c = 1;
このようにしても$bには1が代入されていなかった・・・

ちなみにPerlの場合はちゃんと$bに1が代入されてました。
というわけでどうしてPHPだと代入されないのかを考えて見ましょう。
PerlとPHPの違いですね。わからない点が出てきた(汗

$a ? $b : $c = 1;
これは$aがまだ初期化されていないため
0165nobodyさん
垢版 |
03/03/06 07:56ID:???
わからない点が出てきた(汗

$a ? $b : $c = 1;
これは$aがまだ初期化されていないため
falseとみなされて$cに1が代入される。
ところが、
$a=true;
$a ? $b : $c = 1;
このようにしても$bには1が代入されていなかった・・・

ちなみにPerlの場合はちゃんと$bに1が代入されてました。
というわけでどうしてPHPだと代入されないのかを考えて見ましょう。
PerlとPHPの違いですね。わからない点が出てきた(汗

$a ? $b : $c = 1;
これは$aがまだ初期化されていないため
falseとみなされて$cに1が代入される。
ところが、
$a=true;
$a ? $b : $c = 1;
このようにしても$bには1が代入されていなかった・・・

ちなみにPerlの場合はちゃんと$bに1が代入されてました。
というわけでどうしてPHPだと代入されないのかを考えて見ましょう。
PerlとPHPの違いですね。
0166nobodyさん
垢版 |
03/03/06 07:59ID:???
粘着きもいお(○´∞`○)
0167俺様
垢版 |
03/03/06 08:26ID:0wTJZFjp
>>161
http://www.php.net/manual/ja/language.operators.php
演算子の優先順位が
=より:?の方が高いから
$a?$b:$cの方が$c=1より先に評価されるはずじゃない?

でもこうやってみたら$aが真のときに
$bに1が代入されてたからやっぱ>>161のいう通りかな。
$a ? $b = 1: $c;
しかし、いいかげんな仕様だね。
0168nobodyさん
垢版 |
03/03/06 08:29ID:???
>>161
http://www.php.net/manual/ja/language.operators.php
演算子の優先順位が
=より:?の方が高いから
$a?$b:$cの方が$c=1より先に評価されるはずじゃない?

でもこうやってみたら$aが真のときに
$bに1が代入されてたからやっぱ>>161のいう通りかな。
$a ? $b = 1: $c; >>161
http://www.php.net/manual/ja/language.operators.php
演算子の優先順位が
=より:?の方が高いから
$a?$b:$cの方が$c=1より先に評価されるはずじゃない?

でもこうやってみたら$aが真のときに
$bに1が代入されてたからやっぱ>>161のいう通りかな。
$a ? $b = 1: $c; >>161
http://www.php.net/manual/ja/language.operators.php
演算子の優先順位が
=より:?の方が高いから
$a?$b:$cの方が$c=1より先に評価されるはずじゃない?

でもこうやってみたら$aが真のときに
$bに1が代入されてたからやっぱ>>161のいう通りかな。
$a ? $b = 1: $c;
0169イ奄様
垢版 |
03/03/06 09:07ID:???
これで勘弁してくれ
Perl
$a?$b:$c=1;
PHP
$a?$b=1:$c=1;
0170俺様
垢版 |
03/03/06 09:53ID:0wTJZFjp
では今日はフォームの受け渡しを書いておこう。

まずはhtml部分から。

<form action="../cgi-bin/test.cgi" method="POST">
名前: <input type="text" name="name" /><br>
性別: <br>
<input type="radio" value="男" name="sex" checked>男<br>
<input type="radio" value="女" name="sex">女<br>
<input type="submit" name="送信">
</form>


0171俺様
垢版 |
03/03/06 10:10ID:0wTJZFjp
Perlだとこうなる。

#!/perl/bin/perl
print "Content-type: text/html\n\n";
use CGI;
$q = new CGI;
print $q->param('name')."は".$q->param('sex');

まあ、cgi.pmがPerl5で標準に組み込まれるようになったので
かなり楽になっただろう。
cgi.pmを用いないとさらに面倒である。
0172俺様
垢版 |
03/03/06 10:17ID:0wTJZFjp
PHPの場合だとこれでよい。
<?php
print $_POST["name"]."は".$_POST["sex"];
?>

ちなみにGET方式の場合は同様に
$_GETの配列に代入される。

$_REQUESTにはGET,POST関係なく
代入されてくれる。(ただし、安全じゃないという理由で推奨はされない)
0173俺様
垢版 |
03/03/06 10:29ID:0wTJZFjp
http://www.php.net/manual/ja/ref.strings.php
文字列関数を見るとわかるがかなり便利な関数が標準で用意されている。

htmlspecialchars
特殊文字をHTMLエンティティに変換する
例えば、<を'<'に変えてくれるのだ。
タグとみなされずにすむ。

trim
文字列の先頭および末尾にあるホワイトスペースを取り除く
これもフォーム処理の際にはあると便利だろう。

こんなふうにすればフォームから受け取った全ての値に
簡単に処理を適用できる。
$_POST = array_map("htmlspecialchars", $_POST);
$_POST = array_map("trim", $_POST);
0174俺様
垢版 |
03/03/06 10:30ID:0wTJZFjp
これでフォームもバッチリъ( ゚ー^)だろう。
0175nobodyさん
垢版 |
03/03/06 11:23ID:???
a?b:c=1;
本来はエラーにすべきだけど、gccだと通るんだよな・・・三項演算子が左辺になりうる。
まあ-ansi -pedanticをつければエラーにしてくれるけど。
0176175
垢版 |
03/03/06 11:28ID:???
s/左辺/左辺値/
0177nobodyさん
垢版 |
03/03/06 15:41ID:???
いい加減な仕様とか言って・・

演算子の優先順位も、左辺値になるということも、
perlopにちゃんと書いてあるし。ちゃんとした仕様。

仕返しだ。

$a ? $b : $c = $d ? $e : $f = $g ? $h : $i = $j ? $k : $l = $m ? $n : $o;
0178俺様
垢版 |
03/03/06 16:42ID:SMJB497B
>>177
いや、いい加減な仕様ってのは今回に限ってはPHPに対していったのさ。
>>157で言ったようにPerlの場合は予想したとおりになったからね。

俺が言いたかったのはPHPの場合が>>161みたいになっているのが
いい加減だなあってことだ。
0179nobodyさん
垢版 |
03/03/06 17:01ID:???
PHPも、優先度は、=の方が上だから、そのままの結果。ではないのか?
0180俺様
垢版 |
03/03/06 17:04ID:SMJB497B
>>179
>優先度は、=の方が上
ソースキボンヌ。
俺が調べた結果だと=の方が下だった。
0182nobodyさん
垢版 |
03/03/06 17:06ID:???
本来はd=a?b:c;という形で使う者なんだから、=の方が低くて当然。
左辺値になるってのがおかしいんだよ(-_-;)
0183nobodyさん
垢版 |
03/03/06 19:06ID:???
>>180
あぁ。最低から並べたものって書いてあった。うぅ。
0184nobodyさん
垢版 |
03/03/06 21:36ID:???


180 名前:俺様 投稿日:2003/03/06(木) 17:04 ID:SMJB497B
>>179
>優先度は、=の方が上
ソースキボンヌ。
俺が調べた結果だと=の方が下だった。


181 名前:nobodyさん 投稿日:2003/03/06(木) 17:05 ID:G2YpYyeT
◆ようこそ!!ピンクエンジェルです★
http://www.pink-angel.jp/betu/index.html


182 名前:nobodyさん 投稿日:2003/03/06(木) 17:06 ID:???
本来はd=a?b:c;という形で使う者なんだから、=の方が低くて当然。
左辺値になるってのがおかしいんだよ(-_-;)


183 名前:nobodyさん 投稿日:2003/03/06(木) 19:06 ID:???
>>180
あぁ。最低から並べたものって書いてあった。うぅ。

182 名前:nobodyさん 投稿日:2003/03/06(木) 17:06 ID:???
本来はd=a?b:c;という形で使う者なんだから、=の方が低くて当然。
左辺値になるってのがおかしいんだよ(-_-;)


183 名前:nobodyさん 投稿日:2003/03/06(木) 19:06 ID:???
>>180
あぁ。最低から並べたものって書いてあった。うぅ。
0185nobodyさん
垢版 |
03/03/06 23:54ID:aj5F0raF
教えて下さい。
配列@arrayに、'12-34','34-56'...みたいなデータが入ってて、-の右側でソートしたい場合、

@tmp = map { (split /-/)[1] } @array;
@array = @array[ sort { $tmp[$b] <=> $tmp[$a] } 0 .. $#tmp ];

でやってたんですが、同じことをPHPでやるにはどうしたらいいんでしょう?
0186俺様
垢版 |
03/03/07 00:46ID:86BQl/fj
>>185
実はそれに似たようなので、俺様も苦労したんだな〜

1<>32<>43<>2
3<>41<>443<>232
...
ってな感じでデータが入ってて
3列目(上だと43,443)だけでsortしたいなーって。
で、結局よくわからんかったから自己関数作った。

function cmp ($a, $b) {
$tmp1 = explode("<>", $a);
//文字列$a(="1<>32<>43<>2")を<>で区切って配列に代入
//例えば、$tmp1[0]=1,$tmp1[1]=32
$tmp2 = explode("<>", $b);
if($tmp1[2] == $tmp2[2]) return 0;
elseif($tmp1[2] > $tmp2[2]) return -1;
else return 1;
}

usort ($array "cmp");
//ユーザー定義の比較関数により値で配列をソート

まあ、usortの使い方とかはマニュアルで調べてクレイ。
http://www.php.net/manual/ja/ref.array.php

俺様のと若干違うようなので、もっと簡単な方法があるかも知れんが
参考までに。
0187nobodyさん
垢版 |
03/03/07 00:46ID:???
教えて下さい。
配列@arrayに、'12-34','34-56'...みたいなデータが入ってて、-の右側でソートしたい場合、

@tmp = map { (split /-/)[1] } @array;
@array = @array[ sort { $tmp[$b] <=> $tmp[$a] } 0 .. $#tmp ];

でやってたんですが、同じことをPHPでやるにはどうしたらいいんでしょう?教えて下さい。
配列@arrayに、'12-34','34-56'...みたいなデータが入ってて、-の右側でソートしたい場合、

@tmp = map { (split /-/)[1] } @array;
@array = @array[ sort { $tmp[$b] <=> $tmp[$a] } 0 .. $#tmp ];

でやってたんですが、同じことをPHPでやるにはどうしたらいいんでしょう?教えて下さい。
配列@arrayに、'12-34','34-56'...みたいなデータが入ってて、-の右側でソートしたい場合、

@tmp = map { (split /-/)[1] } @array;
@array = @array[ sort { $tmp[$b] <=> $tmp[$a] } 0 .. $#tmp ];

でやってたんですが、同じことをPHPでやるにはどうしたらいいんでしょう?教えて下さい。
配列@arrayに、'12-34','34-56'...みたいなデータが入ってて、-の右側でソートしたい場合、

@tmp = map { (split /-/)[1] } @array;
@array = @array[ sort { $tmp[$b] <=> $tmp[$a] } 0 .. $#tmp ];

でやってたんですが、同じことをPHPでやるにはどうしたらいいんでしょう?
0188nobodyさん
垢版 |
03/03/07 03:08ID:???
配列にしてからソートした方がよくない?
0189nobodyさん
垢版 |
03/03/07 14:44ID:???
>>185
Perlならこれでいいんじゃない?

@array = sort { (split(/-/,$a))[1] <=> (split(/-/,$b))[1] } @array
0190nobodyさん
垢版 |
03/03/07 16:22ID:???
>>185

$i = 0;
for($array[$i]) {
list($first, $second) = explode("-",$array[$i]);
$first[] = $first;
$secondt[] = $second;
$i++;
}

array_multisort($second, $first);

$i++;
while ($first[$i]){
$array[$i] = $first[$i] . "-" . $second[$i];
$i++;
}

PHP初心者スレで書いた奴を改善してみた。
0191nobodyさん
垢版 |
03/03/07 18:15ID:???
>189
ソートの度になにかの処理をするって遅くならん?
0192$n日後
垢版 |
03/03/07 18:53ID:???
現在時刻から$n日後を求めたいいいだけどprelだと以下
($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime(time + $n*24*3600);
PHPだとどうなるんだ?
あのツェラーの公式だっけか?
0193nobodyさん
垢版 |
03/03/07 18:56ID:???
>>192
>$n日後

なら純粋にtime()に86400 * nを足せばいいのでは?
0194nobodyさん
垢版 |
03/03/07 19:23ID:???
$i = 90;

$year = date("Y", time());
$day = date("n", time());
$month = date("j", time());
$hour = date("G", time());
$minute = date("i", time());
$second = date("s", time());

$timestamp = mktime($hour, $minute, $second, $month, $day + $i, $year);

print date("Y/n/j G:i:s", $timestamp);

まぁ別に変数を使う必要も無いわけだが。
0195$n日後
垢版 |
03/03/08 13:58ID:NNyx9+/Y
>>193 >>194
レスサンク!
ツェラーの公式とはまた違うか、・・・・。
PHPではツェラーの公式なんか使わなくても簡単に指定した日の
曜日とかも算出出来ちゃうんだね。
--抜粋--
また、カレンダー等でその日の曜日を知りたい時、「perl」では
Zeller(ツェラー)の公式を使って算出しなければいけませんが、
「php」では「string date (w , [timestamp])」とすると、
「timestamp」で指定した日にちの曜日を数字で返してくれます
(0(日曜)〜6(土曜))。極端な例を2点ほどあげましたが、
他にも便利な関数が数々あります。
--抜粋--
ttp://bin5.info/useful/php/php_02.html
0197$n日後
垢版 |
03/03/08 14:09ID:???
>>196
いやいや、これはこれであれはあれで・・・
失礼すました。
0198nobodyさん
垢版 |
03/03/08 14:32ID:???
Perlの場合、自前で計算したくないなら、Date::Calcを使えばいい。

>>194の回答はアホ過ぎ。timeの戻り値がシリアル値なんだから、
その性質を使わないのは勿体無い。
0200nobodyさん
垢版 |
03/03/08 15:35ID:???
>>199
うるう秒の意味わかってるか?
で、それをどうしたいのか?
0201nobodyさん
垢版 |
03/03/08 15:37ID:???
うるう秒が蓄積されて誤差が1日を超えるような時間は、32bitのtimeでは指定できない。

でいいかな?

うるう秒をちゃんと考えるなら、>>194の方法で・・。
0202nobodyさん
垢版 |
03/03/08 15:53ID:???
list($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime(time() + $n*24*3600);
0203nobodyさん
垢版 |
03/03/08 15:55ID:???
>>198
「アホでも判るように。」が信条なんだが。

で、後学の為にその性質を使ったコードを見せて頂きたい。
0204nobodyさん
垢版 |
03/03/08 15:56ID:???
reloadなしで書くとこうなるわけですね。
>>202
サンクス

吊ってきま。
0206&rlo;ega待期&lro;
垢版 |
03/03/10 17:03ID:EpMeREtC
0208俺様
垢版 |
03/03/10 17:47ID:SvAZl1u/
そろそろネタ切れだ。
以上の知識でもうどんな物でも
Perl→PHPの移行はできるはずだ。

練習として誰かYomiサーチを移植してみよう。
0210nobodyさん
垢版 |
03/03/10 20:36ID:???
俺様、ちょっち待てよ。
Yomiサーチの移植の続きやれよ。(w
0211nobodyさん
垢版 |
03/03/10 20:37ID:???
>>210
出来るわけ無いだろう。このスレ読む限りでは。
0212nobodyさん
垢版 |
03/03/10 21:09ID:???
dbを触るところまでやってほしかったっす。
0213俺様
垢版 |
03/03/10 22:09ID:SvAZl1u/
よっしゃ。じゃあMySQLまでやろう。
というか俺が今その勉強中だから

まあ(・∀・)つ目 オチャデモノンデマテ!
0215俺様
垢版 |
03/03/10 22:26ID:KPB0lsuM
>>214
(´Д⊂
0216nobodyさん
垢版 |
03/03/10 22:32ID:Hr2fHuuO
  ∋8ノノハ.∩
   川o・-・)ノ <先生!こんなのがありました!
__/ /    /   
\(_ノ ̄ ̄ ̄\
||ヽ|| ̄ ̄ ̄ ̄||
 ...|| ̄ ̄ ̄ ̄||
http://saitama.gasuki.com/saitama/
0217nobodyさん
垢版 |
03/03/10 23:02ID:c9OmtJD2
PHPはいいからDelphiおしえれ
0220俺様死ね
垢版 |
03/03/10 23:04ID:???
>>219
もうちょい具体的に。激しく違う。としか言いようがない。
0221俺様
垢版 |
03/03/10 23:17ID:KPB0lsuM
Delphiは板違いなのでプログラム板で。
0222nobodyさん
垢版 |
03/03/10 23:28ID:???
>>221
釣りですか?
真性ならプログラム技術板のPerlスレでも似たようなことを言っちゃうんだろうな。
0224nobodyさん
垢版 |
03/03/11 10:00ID:???
このスレでは、いずれ php.ini の解説もしてくれますか?
俺が Perl → PHP で一番悩んでるのが php.ini (により定まる動作環境?) なんだよね。
こっちのサーバでは動くのにあっちのサーバでは動かない、とかとか。
0225nobodyさん
垢版 |
03/03/11 10:22ID:???
>>224
それって各鯖の鯖管に問い合わせるべきじゃないのか?
知っててもそれじゃ手が出せないだろ。
0226nobodyさん
垢版 |
03/03/11 10:26ID:???
>>225

php.iniの設定ってある程度はコード中で変えられたと記憶。
0227nobodyさん
垢版 |
03/03/11 10:31ID:???
>>225
問題解決のためならその通りですが、
予備知識が無いと、聞きようが無い and 読みようが無いと思ったのさ。

詳しくは本でも買って読め、ということになるのかもしれないけど、
Perlユーザ向けの *入門編レベル* で十分なので、
抑えておくべきポイントを教えてくれると嬉すぃ。
0228nobodyさん
垢版 |
03/03/11 10:36ID:???
>>227
phpinfo呼び出す。

後は値でどういう設定かは見当が付く。
0229nobodyさん
垢版 |
03/03/11 10:42ID:???
もちろん、一番最初に
<?php
phpinfo();
?>
だけ書いたファイルを置く、これはやってます。

ただ、
> 後は値でどういう設定かは見当が付く。
これがね…。
要点だけで良いので、時間余ったらよろしく。>>俺様
0230俺様
垢版 |
03/03/11 11:10ID:+7fowk1S
まあ、入門レベルならそこまで弄る所はないだろうというのが本音だが。
>こっちのサーバでは動くのにあっちのサーバでは動かない
これで困っているなら、なぜ動かないのかを検討する方が先だろうし。

まあ、php.ini自体に英語で最初から説明が書いてあるので
それを見ながら幾つか拾ってみよう。
0231俺様
垢版 |
03/03/11 11:17ID:+7fowk1S
まずここはサーバで違いがあるところが多い。

; Safe Mode
safe_mode = Off(デフォルト時)

セーフモードとは何か?についてはマニュアルに結構書いてある。
http://www.php.net/manual/ja/features.safe-mode.php
http://www.php.net/manual/ja/features.safe-mode.functions.php

見ればわかるとおり、Onにすると使えなくなる関数とかがいくつか出てくるが
共用鯖ではOnにしている所がかなり多いので
On上での動作確認をした方がいいだろう。

0232俺様死ね
垢版 |
03/03/11 11:19ID:???
>>231
お前、全部説明する気か?大変すぎだぞ。それ。
0234俺様
垢版 |
03/03/11 11:28ID:+7fowk1S
>>232
まあ、重要な部分だけあといくつか。
あとはその日本語訳をよんでクレイってことで。

これも確かめたほうがいいな。
register_globals = Off

Onにすると変数がグローバル変数となってしまう(だったっけ?)
俺はOnにしたことないからよく知らんが。
4.1.0以降でデフォルトがOnからOffに変わったので注意すべき。
Onのサイトのみで動いていたものをOffのサイトで動かすには
結構スクリプトの書き換えが必要。
0235俺様死ね
垢版 |
03/03/11 11:31ID:???
>>234
違うぞ。

フォームからの情報がそのまま変数として展開されるか、$_GET $_POSTなどの連想配列?の要素として格納されるかの違いだ。
0236俺様
垢版 |
03/03/11 11:37ID:+7fowk1S
; UNIX: "/パス1:/パス2"
;include_path = ".:/php/includes"
;
; Windows: "\パス1;\パス2"
;include_path = ".;c:\php\includes"

必要なら先頭の『;』は外しておこう。

例えば、DBで便利なPearを使うなら
include_path = ".;c:\php\includes;c:\php\pear;"
ってな感じにディレクトリを加えたほうが良い。
PearはPHPインストール時にデフォルトで付いてくるのだが
サーバー上でincludeできる設定になっていない場合、
自分で使いたかったらPear自体を自分のディレクトリに
アップロードしないとならないかも。
0237俺様
垢版 |
03/03/11 11:47ID:+7fowk1S
>>235
フォローサンクス。

あと、
; cgi.force_redirect = 1
はこのように変えたほうがいい。
cgi.force_redirect = 0

ただ、PHP4.3.0はこの挙動がおかしくなるバグがあるらしいので注意。
0239俺様
垢版 |
03/03/11 11:51ID:+7fowk1S
後はこれだ。

extension_dir = ""

きちんとextensionsディレクトリをさすようにしておこう。
extension_dir = "C:/php/extensions"

0240俺様死ね
垢版 |
03/03/11 11:51ID:???
>>239
じゃないとexpatとかmbstringが使えないからな。重要だ。
02412
垢版 |
03/03/11 11:56ID:138sEgV0
何気に息が合ってそうなのが面白い。
がんがれ。
0242俺様
垢版 |
03/03/11 12:03ID:+7fowk1S
ああ、あとそのディレクトリをきちんと設定しても
一部のDLLは使えるようになっていない。
Windows使いなら

;Windows Extensions
;Note that MySQL and ODBC support is now built in, so no dll is needed for it.
;
;extension=php_bz2.dll
;extension=php_cpdf.dll
・・・

使いたいdllの先頭の;を外す必要がある。

具体的に各鯖でどうなってるかはphpinfo()読めば大体わかるでしょう。
0243俺様
垢版 |
03/03/11 12:05ID:+7fowk1S
まあ、重要な設定はこんなもんか?
後は上の日本語訳や
マニュアルにもけっこう説明がしてあるはずだから
それを読んでクレイ。
0244nobodyさん
垢版 |
03/03/11 12:32ID:???
register_globals対策。

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

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

$hoge = $_POST["hoge"];

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

>>233
ググりかたが甘かったみたい。サンクスコ。
がんがってみます。
0248俺様
垢版 |
03/03/11 13:21ID:Aj/riikG
レッツPHPより引用

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

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

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

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

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

対応DB
Interbase
Mini-SQL
Microsoft SQL Server
MySQL
Oracle 8 (OCI)
ODBC
PostgreSQL
Sybase

0252俺様
垢版 |
03/03/13 11:59ID:???
まず準備としてphp.iniの設定が必要だ。

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

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

extension=php_pgsql.dll
ってする必要がある。
0253俺様
垢版 |
03/03/13 12:09ID:???
MySQLのみインストール方法も書いておこう。

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

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

[mysqld]
default-character-set=sjis

以上で完了だ。

PostgreSQLはcygwinを入れたりアカウント作ったりと面倒なので各自で調べてくれ。
何とかインストールできたけど数時間掛かった(汗
0254俺様
垢版 |
03/03/13 12:11ID:???
ああ、後winmysqladmin.exeってのも
一度実行してユーザー名とパスを決めるように。
外部に公開しない場合はキャンセルでも良いでしょう。
0255俺様
垢版 |
03/03/13 12:17ID:???
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>

こんなふうになったら成功だ。
0256俺様
垢版 |
03/03/13 12:24ID:???
Pearはここを参考。
http://pear.php.net/manual/ja/

調べたところによるとWindows用PHP4.3以降では
標準で付かなくなってしまったらしいので
上を参考に落としておきましょう。

0257俺様
垢版 |
03/03/13 12:25ID:???
もちろん4.2以前から使ってた人は
最初からPearも使用できます。
0258俺様
垢版 |
03/03/13 12:30ID:???
というか調べてるうちに(・∀・)イイ!サイト見つけたな。
これ見れば俺様の説明なんぞ用なしかも。
http://tsuttayo.sytes.net/mysql/index.html

これ見てphpMyAdminとかも入れておくと良い。
ブラウザからアクセスできるのでレンタル鯖などでも手軽に使えるのが特徴。
0261nobodyさん
垢版 |
03/03/15 22:18ID:???
MySQL入れました。
最初、エラーが出て焦りました。
mysqladminいいかも。
0263俺様
垢版 |
03/03/19 23:51ID:???
>>262
何の話題がいい?
語るべきことは大体語っちゃったから
もう全てのPerlスクリプトを移植できるはずだ。
0264nobodyさん
垢版 |
03/03/20 01:11ID:???
実践編が欲しいな。

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

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

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

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

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

$fh = @foepn($file, "w");
if(!$fh){
 die("しぼんぬ");
}
0274nobodyさん
垢版 |
03/03/21 01:11ID:???
>>268
exitはexit()
__END__や__DATA__はないんじゃないかな
0276nobodyさん
垢版 |
03/03/25 14:18ID:CVcoKJbJ
メモ。

$a = $b || $c;

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

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

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

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

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

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

ところで tr/ab/cd/ って PHP ではどーやんの?
0292nobodyさん
垢版 |
03/03/28 04:03ID:???
俺様ありがd

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

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

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

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

$r =
 ($foo < $bar) ? "LESS" :
 ($foo > $bar) ? "GREATER" :
 "EQUAL";
0296nobodyさん
垢版 |
03/03/28 18:49ID:56FSUIhD
>> 282
php -l script.php

-w は、error_reporting(E_ALL); に相当?(かな?)
Taint モードについては、私も前に探したことあるけどPHPには見つけられなかった。
汚染チェックは、自主的にそういう習慣を身につけるしかないのかな。
0297nobodyさん
垢版 |
03/03/28 19:00ID:???
@sortdata = sort { (split(/\,/,$a))[2] <=> (split(/\,/,$b))[2] } @hogehoge;
Perlでいう↑みたいなことはPHPではどうやればできますか?
0299nobodyさん
垢版 |
03/03/28 20:35ID:/IEo7+Sn


      ∧_∧          _ _     .'  , .. .  ∧_∧
     ( ´_ゝ`)   _ .- ― .= ̄  ̄`:, .∴ '     ( >>297
    /     '' ̄      __――=', ・,‘ r⌒> _/ /
   / /\   / ̄\-―  ̄ ̄   ̄"'" .   ’ | y'⌒  ⌒i
 _| ̄ ̄ \ /  ヽ \_              |  /  ノ |
 \ ̄ ̄ ̄ ̄ ̄ ̄ \__)              , ー'  /´ヾ_ノ
  ||\            \          / ,  ノ
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄          / / /
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||          / / ,'
  ||  ||              ||        /  /|  |
                       !、_/ /   〉
                           |_/

0300nobodyさん
垢版 |
03/03/29 13:38ID:CQcFf7wk
>>294
回答ありがとう。
0301nobodyさん
垢版 |
03/03/29 18:28ID:???
%hash = map { $_ => 1 } @list;
とか、
@hash{@list} = (1) x @list;
Perlでいう↑みたいなことはPHPではどうやればできますか?
0302phpformperl
垢版 |
03/03/29 20:26ID:kc16+nkl
手本になるようなきれいなPHPコードどれかしってまっか?
やっぱxoopsでっか?
0303nobodyさん
垢版 |
03/03/29 22:26ID:???
>>302
XOOPSを積極的に弄っている身としては残念なことだが、
決してきれいなコードではないし、流れを追うのも面倒。
過去のしがらみとかあるので大きく変えられないことや、
複数人で作っているが、細かい部分で明確な規定がある訳ではないので
コア、標準モジュール、果ては標準外の勝手モジュールまで入れると
コードの統一はされていないと思っていい。
フレームワークとしては非常に緩いのでモジュールのコードまで
含めるのは本来フェアではないのだが。

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

 return sub {
  $num += shift if @_ == 1;
  return $num;
 }
}
Perlでいう↑みたいなことはPHPではどうやればできますか?
0306nobodyさん
垢版 |
03/03/31 00:21ID:???
>297,301,305
PHPでFP(関数プログラミング)でもやりたいのかな?

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

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

例えば >305 だと、

function test(){
 $num=0;
return create_function('$x','global $num;$num+=$x;return $num;');
}

$num がグローバルに置かれるので、これでは要件を満たせていない。
カプセル化したいのなら、クラスを作る。

class Test{
 var $num;
 function Test(){ $this->num = 0; }
 function add($n){ $this->num += $n; }
 function getNum(){ return $this->num; }
}
0307nobodyさん
垢版 |
03/03/31 00:21ID:D273gBu9
# 突っ込まれるかもしれないので、一応補足。
現行のバージョンのPHPでは、すべてpublicメンバになるので、
$numへ直接アクセスすることが可能。(Perlのオブジェクトでも同様だよね)
現状(PHP4)では、完全に隠蔽することは出来ない。…はず。(PHP暦浅いので自信なし。フォロー求)

# http://www.php.net/ZEND_CHANGES.txt を読んだところ、
# zend2 engine/PHP5? では private が使えるらしい。
0308名無しさん@Emacs
垢版 |
03/03/31 17:22ID:mhlggPCn
perldoc モジュール名、perldoc -f 関数名に該当する PHP のやり方って
なんでしょうか?
0310nobodyさん
垢版 |
03/04/01 02:03ID:???
ブラウザのアドレス欄に
php.net/関数名
pear.php.net/モジュール名
0312nobodyさん
垢版 |
03/04/01 19:21ID:???
ぷりぃず、晒さないでw
訂正 s/イ/言/
0313nobodyさん <>
垢版 |
03/04/01 20:18ID:iGZ3zwAc
>310

ローカルには作れんもんでしょうか?
ADSL でも結果が出るまでの "待ち" が気になるの。
0314生徒1
垢版 |
03/04/01 23:58ID:2arYjAuZ
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;
$value =~ s/\r/<br>/g;
$value =~ s/\n/<br>/g;
$in{$name} = $value;
}

こんなのはどうやってますか?
0316nobodyさん
垢版 |
03/04/03 16:31ID:???
> 倫理値w
右か左を返すんだよ
0317nobodyさん
垢版 |
03/04/08 14:23ID:???
PHPってx演算子ないの?
print "-" x 10;
みたいな
0319nobodyさん
垢版 |
03/04/08 22:26ID:???
perl にあって PHP にないもの。
PHP にあって perl にないもの。

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

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

一方Perlは、ブラウザに文字を表示させるためには
表示する処理の前に、何行かのおまじないを書かな
ければいけません。
そのおまじないを理解しようとすると、初心者では到底
理解できないので「難しい」ということになるかもしれません。

PHPの本は初心者用がたくさん売られていますよ。
大丈夫です。
0324nobodyさん
垢版 |
03/04/12 06:02ID:???
Perlの方が幾分ややこしい気はするね。
Perl->PHPは入りやすいらしいけど逆は結構厳しい。
ちなみに、私は後者です…。
0325320
垢版 |
03/04/12 22:12ID:3Lo6Ghrc
>>323
Thanksです。
PHPだと入門書でいきなりECサイトまで行ってしまうのですが,
(チャット作成までなんとかついていっている程度)
Perlだと入門書で息切れするような。。。(とてもECサイトまでナンテ
行きませんよね?)
ただ,やはりデザなので自分一人でECサイトまではやりません。
外に頼むまでもない事を自分でやれるようにするという感じです。
(極めるという表現が不適切でした。)
データバのソートとか,Webの自動更新とか。
そのあたりでPerlとPHPはどうかな?と思ったわけです。
0326nobodyさん
垢版 |
03/04/13 00:12ID:???
@array = ($query =~ /([0-9a-fA-F]{4})/g);

これをPHPで表現するとどうなるんですか?
0327nobodyさん
垢版 |
03/04/13 00:12ID:???
>>323
おまじないってなんだ?CGIとして使ったときのヘッダーのことか?
0330nobodyさん
垢版 |
03/04/13 01:12ID:???
おまじないって言ったら1;が浮かぶ
0331nobodyさん
垢版 |
03/04/13 03:24ID:Ba9KZRzY
PHPって配列厄介だなぁ。
0332nobodyさん
垢版 |
03/04/13 03:55ID:???
>>331
PHPの配列の何が厄介なん??? ほれいってみ。教えてあげるよ。
0333nobodyさん
垢版 |
03/04/14 01:24ID:???
>>331
僕PHPはじめて1週間だけど配列はだいたい分かったので
配列ですが僕はすぐ理解できたので
331さんの厄介とこが分かれば教えてあげますよ
0338nobodyさん
垢版 |
03/04/15 16:55ID:JlWa+G1C
phpでperlでいうところのpackageの作り方教えてください。
0339nobodyさん
垢版 |
03/04/15 18:07ID:???
331は、ハッシュと配列が一緒なのが気に入らないらしい。あと、
いちいちarray_*系の関数を使わないといけないのも面倒らしい。
0340nobodyさん
垢版 |
03/04/15 19:26ID:1VLAH3RO
>>338
phpは名前空間を定義できない。
0343山崎渉
垢版 |
03/04/20 06:02ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0344
垢版 |
03/04/27 10:50ID:7vWz7FBG
EUCの配列、文字列をSJISにするのはどういう風にやるの?
0345nobodyさん
垢版 |
03/04/27 10:56ID:???
やっぱりpackageはC++でいう名前空間にあたるの?
0347( ´Д`)/< 先生!!こんなのが有りますた。
垢版 |
03/04/27 12:27ID:???
http://www.yamazaki.90.kg/hankaku/hankaku07.html
http://yamazaki.90.kg/zenkaku/index.html
http://www.yamazaki.90.kg/hankaku/hankaku08.html
http://yamazaki.90.kg/hankaku/hankaku10.html
http://www.yamazaki.90.kg/hankaku/hankaku01.html
http://yamazaki.90.kg/hankaku/hankaku03.html
http://www.yamazaki.90.kg/hankaku/hankaku02.html
http://yamazaki.90.kg/hankaku/hankaku09.html
http://www.yamazaki.90.kg/hankaku/hankaku06.html
http://yamazaki.90.kg/hankaku/hankaku04.html
http://www.yamazaki.90.kg/zenkaku/index.html
http://www.yamazaki.90.kg/hankaku/hankaku05.htm
0350nobodyさん
垢版 |
03/04/28 22:57ID:3GKx/vUL
イスラエルとか言われると萎える
0351nobodyさん
垢版 |
03/05/05 22:17ID:LIOD5Ueh
mb_convert_encodingが使えないサーバの場合は?
0353nobodyさん
垢版 |
03/05/19 23:33ID:cX3VPQ/6
教えてください。
perlで言うところのwarnなんですが、
print error_log($test);
見たいな形でerrorログに$testの値を出そうと思ったのですがうまくいきませんでした。。
どなたかperlでいうところのwarn関数のPHP版を教えてください。
0356nobodyさん
垢版 |
03/05/20 02:27ID:???
まぁ、胸張れるような場所でもないしな。
0357nobodyさん
垢版 |
03/05/20 07:45ID:???
その発言しているサイトがある
インターネット全体からどれだけの犯罪者を出しているんだろうね…

2chから情報を得ておきながら悪口言う人間もいることだし
放置しても平気でしょ
0358nobodyさん
垢版 |
03/05/20 10:19ID:???
日本人だって
殺人とかの罪犯す奴いるじゃないか

そしたら外国人は
日本人はみんな犯罪者だと思うのか?
0359山崎渉
垢版 |
03/05/22 01:59ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
0360nobodyさん
垢版 |
03/05/22 12:59ID:???
open( LOCK, ">./lock/count.lock" );# ロック用のファイルを作る(※1)
flock( LOCK, 2 );# ファイルをロックする
open( COUNT, "./log/count.log" );# カウンターの値が入ったファイルを開く
$count = <COUNT>;# カウンター値を読み出す
close( COUNT );# カウンターファイルを閉じる
$count++;# カウンターを+1する
open( CTEMP, ">./log/count2.log" );# 更新したカウンタの値を別のファイルに一時的に書き出す(※2)
print CTEMP $count;
$ezcount = "";#カウントファイルの数字を絵文字に変換
for ($i = length($count) - 1; $i >= 0; $i --) {
$n = int(substr($count, $i, 1));
if ($n == 0) {
$ezcount = "<img localsrc=\"325\">" . $ezcount;
} else {
$ezcount = "<img localsrc=\"".(179+$n)."\">".$ezcount;
}
}
close( CTEMP );# 一時的に書き出したファイルを閉じる(書き込み完了)
rename( "./log/count2.log", "./log/count.log" );# 一時的に書き出したファイルを本来のファイル名にリネーム
unlink( "./lock/count.lock" );
flock( LOCK, 8 );
close( LOCK );
これをPHPにしたいのですが…だれかお願いします!
0361nobodyさん
垢版 |
03/05/22 13:52ID:???
>>360
マルチおよび自分でやろうともしない。放置
0362nobodyさん
垢版 |
03/05/25 01:54ID:YbAXJXvg
formから$_POST["name"]で値を受け取ったのですが、
値中の「"」と「'」がエスケープされてしまって、「\」がついています。
これは自分で取り除くしかないのでしょうか?
0363nobodyさん
垢版 |
03/05/25 02:04ID:???
>>362
php.iniのmagic_なんちゃらを、off 詳細は誰かおながい
0365362
垢版 |
03/05/25 02:32ID:???
>>363
ローカルで出来なかったので、レンタル鯖にスクリプト設置して実験したら
やっぱり同じ現象がおこりました。・゚・(ノД`)・゚・。
自分で取り除いてみます…お騒がせしました
0367山崎渉
垢版 |
03/05/28 17:06ID:???
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0368
垢版 |
03/05/30 22:54ID:Ey+u4zPh
ヒアドキュメントを使うと
print <<<EOF
<タグ>$a<タグ2>
EOF;
の<タグ2>が表示されないのって、どうすりゃいいの???
0369イ奄様
垢版 |
03/06/02 11:34ID:EOTygtgq
>>368
print <<<EOF
<タグ>${a}<タグ2>
EOF;
0370
垢版 |
03/06/02 23:18ID:9zPzvWqa
THANK!!!
0371nobodyさん
垢版 |
03/06/04 00:53ID:1Jdo0O1g
jcode.phpでEUC半角カタカナをSJIS全角カタカナにしていのだが。
0373age
垢版 |
03/06/08 17:42ID:cXeOp+rQ
age
0375 
垢版 |
03/06/08 18:09ID:eRunpr9i
過去ログからのコピーです。http://natto.2ch.net/mass/kako/974/974478132.html

489 名前: 文責:名無しさん 投稿日: 2001/04/11(水) 17:25
 一般人なのに盗聴される、じゃなくて、「一般人だから盗聴される」んじゃないのかな?
 基本的にネタ集めのためにやってんなら、有名人のネタを盗むと、有名人は告発できるし、
そんなことされても当たり前だと思われるので告発しても信じてもらえる。
 そうでない人は、ここの途中の書き込みにもあったように「電波」扱いされるだけ。

 ただで、ネタを仕入れるんなら、一般人に限るでしょう。
 マスコミは自分らの無能さを恥じてほしいです。

 ちなみに私が盗聴されはじめたのは、芸能人にストーカーされ始めてからでした。
 そこからマスコミに広がって行った。
 だから余計「妄想」とか思われそう。
 友人に話したら完全に病気扱いされた。ストーカーって言葉がない時代だったしね。
 書いておいておいた小説のネタが、他人の原作でドラマ化されたときにはきれまくっ
たなあ。(一度や二度のことじゃないけど)
0376age
垢版 |
03/06/13 23:55ID:nW6iX8p9
a
0380nobodyさん
垢版 |
03/06/19 03:00ID:yyOItGJy
0381nobodyさん
垢版 |
03/06/19 19:42ID:???
HTMLとPHPコードを分離したいんだけど、
何か方法ありますか?perlでいうとこの
HTML::Template みたいなのとか。
0384nobodyさん
垢版 |
03/07/03 21:53ID:???
perlのdefinedみたいな奴
変数の定義がされているかどうかの
チェックはどうやったらいいですか?

0385384
垢版 |
03/07/05 12:49ID:???
同名関数ありますた。スマソ
0386nobodyさん
垢版 |
03/07/05 13:00ID:???
でも定数のみですた。
もうだめぽ ..
0388山崎 渉
垢版 |
03/07/15 11:11ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0389nobodyさん
垢版 |
03/07/23 10:22ID:A887jOLI
PerlからPHPに入るとPHPで簡単にできることを
Perlっぽく遠回りに書いてしまうことってないですか?
逆も然り
そーゆー注意点とか教えて下さい。
0390nobodyさん
垢版 |
03/07/23 13:26ID:???
Perl癖を取るためにもPHPに限らず
他の言語に興味を持つといいと思います。
0391nobodyさん
垢版 |
03/07/24 01:46ID:???
もうそろそろPHPにも手を出してみるかと思ってたが、
このスレ見たらやる気なくした。やっぱC/C++にするわ。

まず第一に<?〜?>にコード書くなんて本当にキモいよ。
(JSPやASPも同じようなもんだがな)

PHPってCGI/Perlの速度に我慢できなくなった奴が、C/C++はできないから
しょうがなく使ってるんだろ?
プロはJavaとかASP使うし、素人はPerlで十分(環境も整ってる)。
速度ががまんならないならC/C++、もしくはモジュール資産を活かして
mod-perlだな。

PHPの選択はまずありえないね。
0392nobodyさん
垢版 |
03/07/24 10:31ID:???
ASP使ってる時点でOutだと思うがね。
とりあえず海外見てきたら?
0393nobodyさん
垢版 |
03/07/25 12:40ID:???
範囲演算子".."がないのが激しくムカツクんだが。
0395nobodyさん
垢版 |
03/07/25 13:21ID:???
http://www.adultshoping.com/addclickport.cgi?pid=1058922748
●無料でパソコンだけで月に10万円↑稼げます!
登録完全無料!お小遣いが沢山稼げちゃいます。
月に平均10万円ほど稼げます。頑張ればもっと!
夏休みを有効に利用しましょう!
無料だから登録しないと損します〜。
0396nobodyさん
垢版 |
03/07/25 13:31ID:???
>>391
珍獣みっけ。
何のためのプログラムしてるのか知りたい。
0397nobodyさん
垢版 |
03/07/25 14:02ID:???
↑趣味に効率は全く必要ないそうです
0399nobodyさん
垢版 |
03/07/26 02:18ID:???
改行コードCRLFで保存したファイルを
配列で1行づつ配列で取り出して保存したいんですが、
何故かPHPだと改行コード(CRCR...LF)と増え続けます。
改行コードの仕様の問題なんっすかねぇ?

# Perl
open( IN , "hoge.dat" );
@lines = <IN>;
close( IN );
#何か処理
open( OUT , ">hoge.dat" );
print OUT @lines;
close( OUT );

// PHP
$lines = file( "hoge.dat" );
// 何か処理
$fp = fopen( "hoge.dat" , "w" );
foreach( $lines as $line ){
 fputs( $fp, $line );
}
fclose( $fp );
0401nobodyさん
垢版 |
03/07/26 03:36ID:???
>>400
バイナリモードで開く"wb"(WINのみ)
$fp = fopen( "hoge.dat" , "wb" );
とすると一応解決しますね。サンクスです。
根本的な解決になってるのかどうか微妙っす。
0402nobodyさん
垢版 |
03/07/26 04:30ID:???
>>401
テキストモードで開くと
fputs などの出力処理中に \n が見つかった際に
内部で \r\n に置き換えるという小さな親切を行ってくれます

バイナリモードならそれをやらないので解決だと思われまする
0403402
垢版 |
03/07/26 04:33ID:???
うーん、でも読み込む際も CRLF⇒LF 変換やってくれたような?
まあいいや。たぶん大丈夫。
0404nobodyさん
垢版 |
03/07/26 16:31ID:???
>内部で \r\n に置き換えるという小さな親切を行ってくれます
なるほそ。小さな親切ですね・・・
0405nobodyさん
垢版 |
03/07/28 20:34ID:MPvwsvte
perlで、書き込み処理を終えたあとに他のページに飛ばすとき、
print "Location:./santa.cgi?$no\n\n";
exit;
などとしていましたが、phpでこれと同等なのはどういうコマンドでしょうか?
コマンド名だけでも良いので助言お願いします。
0407nobodyさん
垢版 |
03/07/29 00:10ID:???
header("location: ./santa.php?no");
でどうでしょう。
0408nobodyさん
垢版 |
03/07/29 00:53ID:???
locationは絶対パスで指定しなよ…
0409nobodyさん
垢版 |
03/07/29 01:11ID:???
どっちでも同じでしょ。
相対だと不都合でるブラウザってあるの?
0415nobodyさん
垢版 |
03/07/31 09:22ID:???
○ index.html
× ./index.html
ってのが前あった。
0416山崎 渉
垢版 |
03/08/02 02:23ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0417ぼるじょあ ◆ySd1dMH5Gk
垢版 |
03/08/02 04:51ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
0418nobodyさん
垢版 |
03/08/03 03:36ID:e6CW3yAE
良スレ
あげとく
0419nobodyさん
垢版 |
03/08/15 21:51ID:/UWm9DVh
PHPユーザーのためのPerl入門だれか立ってってくれ!
0420山崎 渉
垢版 |
03/08/15 22:25ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0421nobodyさん
垢版 |
03/08/28 08:28ID:aKTRoIJT
PHPでOOPでもと思い、

Perl
use lib './lib/';
use Hoge;

PHP
define( 'LIB_DIR', './lib/' );
include( LIB_DIR . 'Hoge.class.php' );

とやってるんだけど、もうちっと短く書きたいなぁ。
0422nobodyさん
垢版 |
03/08/30 22:41ID:AS3I0NRv
Perlやってた奴が、PHPを勉強するのにいい本って何?
PerlでいうところのプログラミングPerlみたいな
大御所のこれさえ買っとけばたいてい載ってるって本きぼん。
0424nobodyさん
垢版 |
03/08/31 13:22ID:AiCjBA+L
>>422
赤マンモス
0425nobodyさん
垢版 |
03/09/07 01:36ID:???
HTML::Template, DBI に替わるものがPHP覚える気になるんだけど。
プログラム中にHTML書いてあったら落ち着かない
0426nobodyさん
垢版 |
03/09/07 01:56ID:1pDZ49hH
0427nobodyさん
垢版 |
03/09/10 00:04ID:EKqTJkq7
検索について教えて下さい。
perlで検索で、$find_lineの中に、$f_a_wordが含まれているかを
if (index($find_line,$f_a_word) >= 0) {
 含まれている
} else {
 含まれていない
}
このようにしていたのですが、phpだとどのようになりますか?
0428427
垢版 |
03/09/10 00:42ID:???
427です。eregというので出来そうです。
失礼しました。
0429nobodyさん
垢版 |
03/09/10 01:08ID:???
>>425
これじゃだめかな?
やってみてくりくり


<?php

$find_line = "これはテソトです。";
$f_a_word = "テソト";

if(strstr($find_line,$f_a_word)){
echo '$find_lineの中に$f_a_wordは含まれています!';
}
else{
echo '$find_lineの中に$f_a_wordは含まれていません!';
}

?>
0430429です
垢版 |
03/09/10 01:20ID:z4dT6uSf
番号ずれてますたスマソ。
427-428宛のレスです。

OpenJaneって番号ズレるのね。。。
0431 
垢版 |
03/09/10 04:03ID:???
strstr();ってi18n対応?
0432nobodyさん
垢版 |
03/09/10 10:21ID:???
mb_strpos()とかじゃだめかい?
0433nobodyさん
垢版 |
03/09/11 23:16ID:???
>>421
> PHPでOOPでもと思い、

インクルードパスの設定とOOPには何の関係もない。
‥‥‥というのはともかく、auto_prepend でググれ。
0434nobodyさん
垢版 |
03/09/20 14:31ID:???
ここ、一昨日初めて来たんだけど良スレだね。
おかげで分からなかった事も分かりました。ありがd
0435nobodyさん
垢版 |
03/09/20 22:34ID:VeIFc9WR
あるディレクトリの一覧をファイル名順でソートしたいと思います。
ただし、.や..や.htaccessといった、「.」で始まるファイルは対象外にしたいのです。

Perlで
---
opendir(DIR, $path);
@list = sort grep(!/^?./, readdir(DIR));
closedir(DIR);

と書くところを、phpではどのように表現すればよいのでしょうか?
0437とおりすがり
垢版 |
03/09/21 03:57ID:???
>>435
自信ないが
$dh = opendir($path);
while ($tmp = readdir($dh)) $filename[] = $tmp;
$filename = preg_grep("/^[^\.]/", $filename);
sort($filename);
closedir($dh);
0439nobodyさん
垢版 |
03/09/22 04:27ID:PmE0lLf0
>>437-438
なるほど。このコード実行してないんであれですが、
preg_grep する前に $filename[] = $tmp しちゃうと、
配列$filename内には「.」や「..」が残りそうな雰囲気が…違ったらごめん。
こんな感じにしてみました。
---
if( false !== ($handle = opendir($query_path)) ){ //ディレクトリが開けるなら
while( $file = readdir($handle) ){
if( preg_match ("/^?./", $file) ){
$files[] = $file;
}
}
closedir($handle);
if( count($files) >= 1 ){
sort($files);
}else{
print "このディレクトリ内に読めるファイルはありません?n";
}
}


つーかnatsortって便利ですな。
http://search.net-newbie.com/php/function.natsort.html
0440 
垢版 |
03/09/22 05:52ID:???
>437のでOKでは。>439は正規表現が意味不明になってるよ。

正規表現が分からない時はこんなのもアリかな。

while ( $entry = readdir($dh ) {
  if ( substr($entry, 0, 1) != '.' )
    $files[] = $entry;
}

http://jp.php.net/substr
0441 
垢版 |
03/09/22 06:08ID:???
ああ全角か。スマソ。
0442nobodyさん
垢版 |
03/09/22 11:22ID:???
全角でもオレには意味不明なんだが・・・
0443nobodyさん
垢版 |
03/09/22 16:10ID:???
分からなかったら聞きましょうね♪
0445nobodyさん
垢版 |
03/09/25 23:55ID:???
perlのflock関数だったらさんざん使ったことあるんですが、
perlの場合のflock関数と比較して、
phpのflock関数を使うときの注意点って、特になんか、ありますか?

(ウェブサーバは、Apacheという前提です)
0446445
垢版 |
03/09/28 00:48ID:lxnHIT50
どなたかお答えくださいませ
0447nobodyさん
垢版 |
03/09/28 02:01ID:???
lockはlock専用スレがありまっせ。
0448nobodyさん
垢版 |
03/09/28 02:26ID:???
>>445
にたようなもんじゃないのかな?
たしか、PHPマニュアルにもflock関数は全ての環境で使えるもんじゃ
ないみたいなこと書いてあったし、
ネットワークファイルシステムに対応してないけりゃ、無理だろうし。
ちなみに、うぇぶさばは関係ないですぞ。
0449445
垢版 |
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分からんですが)
0451445
垢版 |
03/09/28 22:34ID:jyRnC+If
>>450
あれ、なんかとぼけたこと自分言ってました?

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

マルチスレッド型を利用している場合、別々に動作している
phpは同一プロセス(の、別スレッド)で動作している事になるので
プロセス単位で排他をかけるflock()は排他の目的には使えない
ということで、HTTPdとphpの組み合わせによる、というのは正しいかも
0454nobodyさん
垢版 |
03/10/07 23:44ID:???
$str =~ s/◆/◇/g;
みたいなマルチバイト文字列の置換をPHPでやるにはどうしたらいいんでしょうか。
mb_ereg_replaceはまだ実験段階らしいのであまり乗り気ではなく。
0455nobodyさん
垢版 |
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を
ちゃんと設定していないと駄目。
0456454
垢版 |
03/10/08 00:30ID:???
>>455
詳細なレスありがとうございます。
試しにpreg_replaceを使った時えらく文字化けしたのでなんでだろと疑問だったんですがこれで解決しました。
一応マルチバイト文字列関数用にphp.iniの設定は書き変えてあるので、
mb_ereg_replaceを使っても将来的に問題ないということならこれでいこうかなと思います。
0457nobodyさん
垢版 |
03/10/18 23:15ID:???
配列をpackする時ってどうすんの?
他にも$a,$b,@c,$d,…と並べて@cの内容が展開されるようにしたい時とか.
0458nobodyさん
垢版 |
03/10/27 17:51ID:???
既出かもしれませんが、
http://www.din.or.jp/~ohzaki/perl.htm
をPHPにコーディングしなおしたサイトを誰かしりません?
無いかなー。
0459nobodyさん
垢版 |
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()で正規表現が使えないようなのですが
何か良い方法はないですか。
0460nobodyさん
垢版 |
03/10/29 23:14ID:dIX7j6Ca
perlだと、csvファイルに対してSQL文を投げられる、SQL.pmっていうのがあるんですが、
phpでそういうモジュールってないでしょうか?
(いやぁ、ほんとはDB使いたいんですけどね。。。わけあってつかえず)
0461nobodyさん
垢版 |
03/11/01 14:03ID:5TPcc+Om
連休中にphp勉強したいぞーage
0462nobodyさん
垢版 |
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でいけるよね
0463nobodyさん
垢版 |
03/11/03 00:41ID:4CVQMxAy
perlでいうところの、

print qq|
 $hoge
<hr>
<a href="http://www.yahoo.com"></a>
|;

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

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

なんか無駄がないか?
0466nobodyさん
垢版 |
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...なら可能なのですが…
0467nobodyさん
垢版 |
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;
}
0470463
垢版 |
03/11/12 04:51ID:FrBzA+Qu
>>465
ありがとうございます。

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

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

ただ、print qq|ほげー|;の手軽さが、なれてしまって、ラクなんですけどね。。。
ともかく、ありがとうございました。

0471nobodyさん
垢版 |
03/11/12 05:09ID:???
my $xやvar xみたいな変数の宣言をする方法はないのでしょうか?
0472nobodyさん
垢版 |
03/11/12 06:00ID:???
>>471

↓このへんわかりやすいんちゃう?
http://itbtech.itboost.co.jp/php/php_01.php

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

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

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

# PHP的には、先にデフォルトを設定するものだと思ってた。
# PHPのエロイ人plz。
0477473
垢版 |
03/11/12 22:08ID:???
> isset($a) || ($a = "default a");
これなら問題なく実行できました。この書き方が一番スマートそうですね。
0478nobodyさん
垢版 |
03/11/12 22:08ID:???
GETのパラメータ区切りに&じゃなく;を使うにはどうしたらよいのでしょうか?
0480nobodyさん
垢版 |
03/11/26 02:30ID:???
俺様帰ってこないかな
別に用は無いんだけど
0481俺様
垢版 |
03/12/05 23:06ID:???
>>480
この板はしばしば見ているぞ。
最近はperl2phpのコンテンツを立ち上げてがんばっているところだ。
0482nobodyさん
垢版 |
03/12/12 00:39ID:???
>>481
perl2php期待してます。
php勉強してるので…
0484nobodyさん
垢版 |
03/12/14 00:06ID:???
ソケット通信をする際、相手方のIPアドレスがわかっている場合、
fsockopenの第一引数にIPアドレスを入れれば、
内部的に名前の解決をしなくて済むのでしょうか?
0485nobodyさん
垢版 |
03/12/14 21:20ID:???
>>484 ttp://jp.php.net/fsockopen
IP address がすでにわかってるのに名前の解決?
Ip address => name なら、そもそも必要ない。

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

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

perlだと
if(($_ =~ tr/a-zA-Z0-9//c) {
die 'リストに含まれない文字が検出されたYO!';
}
な感じでそれをPHPでやりたいです。
0491nobodyさん
垢版 |
03/12/18 16:46ID:???
>487
どうせろくでもないベンチスクリプトだろ

>488
既出

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

多分"[^[:alnum:]]"でも。
0493nobodyさん
垢版 |
03/12/18 20:37ID:???
そういうことじゃないと思う。
0494nobodyさん
垢版 |
03/12/21 18:56ID:16zntf/g
>492

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

-zA-Z0-9にマッチでエラー表示
じゃないでつ。文字列中に例えば
記号が入ってたらエラーにする処理でつ。

0495nobodyさん
垢版 |
03/12/21 20:52ID:???
ネタ?
491のでええやん。elseでもいいし。
0496492
垢版 |
03/12/21 21:11ID:???
>>494
a-zA-Z0-9 *以外* の文字にマッチしたらdieしますが、違うのですか?
0499nobodyさん
垢版 |
03/12/23 11:09ID:hM9+gLxR
>496

ぉぉやってみたら確かにマッチした。さんくすこ。
PHPだと’^’って反転する意味なのですか・・・?
なんか小さな幸せを発見したw

0500nobodyさん
垢版 |
03/12/23 11:15ID:hM9+gLxR

ぁぁぼけてすまそ。。。
文字クラスの反転記号ですね。記憶から全く遠のいていますた。
(PHPの独自拡張なのかとさえ思ってしまったw)

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

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

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

test.php内で
idとpassの値を受け取るには、$id=param[id]でしたっけ?
0504nobodyさん
垢版 |
04/01/23 00:24ID:Zt/PsL2C
extract($_GET);

$_GET["id"];
$_GET["pass"];
0506nobodyさん
垢版 |
04/01/23 01:03ID:Zt/PsL2C
>>505

ここ読みました。
http://php.s3.to/off.txt

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

Warning: REG_EBRACK in
eregi関数で文字比較するとき、全角の「ー」の2バイト目が半角では“[”になるのが原因らしい・・
簡単な解決方法ありますでしょうか?

0507俺様
垢版 |
04/01/23 01:17ID:???
>>501-502
いや、俺もツール考えてみたんだわ。
PHPなら文法定義しているの発見したんだけど
Perlは見つからないんだよね。。。

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

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

list()でログファイル(5MB程度)を参照して検索などを作るとき、

fopen()
flock()
Fclose()
しなくてもログファイルの破損などは起こらないでしょうか?
書き込み中はロックしてますが、list()中はロックしないとします。
0512nobodyさん
垢版 |
04/01/24 18:46ID:???
>>511
listでファイルは参照できないはずだが????
0513アノニマス
垢版 |
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);

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

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

出したかった問題は、こうでした。
$result = preg_grep("/[0-9]{10,10}/",$str);
まぁ、間違ってんだから訂正は要らないんだけどね・・・。


0517nobodyさん
垢版 |
04/02/16 21:57ID:???
それは perl でも同じ結果だろうなと。
perlとPHPで結果が違うのかと思ったよw
0518nobodyさん
垢版 |
04/03/05 15:09ID:???
質問してもいいですか?
Perlの「undef」に相当するPHPの関数は何ですか?
マニュアル検索しても見つけられなかったのです。
スレ違いでしたらスルーでお願いします。
0520nobodyさん
垢版 |
04/03/08 22:21ID:???
Perlだと文字列の置換をしたときに置換されたものが$1などの変数に代入されますよね。
PHPでも同じことは出来るのでしょうか?
0521nobodyさん
垢版 |
04/03/08 23:07ID:???
>>520
自己レスです。
preg_match_allで出来ました・・・
他にいい方法があれば知りたいです。
0522nobodyさん
垢版 |
04/04/06 09:54ID:Rt5G2mKK
自作関数に渡した引数は、Perlでは$_[0],$_[1]...に、
JavaScriptではarguments[0]...に、入るじゃないですか。
PHPでは何に入るのでしょうか?
もしかして必ず function x($a,$b,$c) の様にする必要があるのでしょうか?
何とかして引数を配列として扱いたいのです。
0523nobody
垢版 |
04/04/06 11:33ID:???
>>522
function ほらよ ($配列) { print_r($配列); }
ほらよ(array('a', 'b', 'c'));
0524nobodyさん
垢版 |
04/04/06 14:51ID:???
>>523
有難う御座ります。
PHPって関数名や変数名に日本語使えたんですね 驚きました。
0532nobodyさん
垢版 |
04/04/21 21:28ID:???
>>530
Shift_JISでスクリプトを書いてはいけない理由、
どうしてもShift_JISで書きたい場合はどのPHPをインストールすべきとか
mb_string周りのPHP.iniの設定の仕方、設定のオーバーライドの方法を解説して欲しい。

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

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

# 真珠批判やってるサイトって他にもあるもんだねー。
0535532
垢版 |
04/04/27 05:54ID:???
マジレスした自分に鬱。
0536nobodyさん
垢版 |
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;
0538nobodyさん
垢版 |
04/05/01 07:23ID:???
>>530
あまり真面目に見ていないけど、もっと説得力ある文章になるくらい
たくさんプログラムを作ってみた方が良いんじゃないかな。
今の状態だと言語の違い以前に本当にプログラムを作った事が
あるんだろうかと疑いたくなるよ。

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

http://f13.aaacafe.ne.jp/~mugen/perlvsphp/page7.htm
↑を MVC と呼ばれては碇浸透

コンテンツとデザインの分離スレにちょっと鯉 >>350
0541nobodyさん
垢版 |
04/05/15 03:52ID:???
>>540
そいつはマジメに運営してないからほっといていいよ。
0542nobodyさん
垢版 |
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に乗り遅れまいと必死だが…。(^^;)


0543nobodyさん
垢版 |
04/05/20 16:11ID:???
↑もう5回くらい見たんだが。しかも全部IDが同じだ・・・見間違いだよな?
0544nobodyさん
垢版 |
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]}];
.......
}
0545nobodyさん
垢版 |
05/03/03 01:29:07ID:eDjoFwC+
Perlのlast関数にあたるものはPHPのbreak関数かと思いますが、
next関数にあたるものは何になるのでしょうか?

ご教示いただけますと幸いです。
0547nobodyさん
垢版 |
05/03/03 09:43:42ID:???
>>545
関数じゃないよ。制御構造と呼んでくれくれたこら
0548nobodyさん
垢版 |
05/03/03 14:56:14ID:???
>>544
おれがPHP使い始めたころと同じこと考えとるな
きっと次は$がいらないんじゃないかとか
printした時に自動で配列表示して欲しいとか
正規表現や無名関数使いずれーとか
便利な関数がイパーイあってええねとか
クラスがPerlよりはおしゃれだとか
0549nobodyさん
垢版 |
05/03/08 04:57:03ID:???
日本語を変数名に使えるようにすんなよとか
リファレンス変数とか可変変数で戸惑うとか
多重継承できないってなんだよとか
DBはいいなとか
0550nobodyさん
垢版 |
05/03/08 07:20:38ID:???
0.0.1のバージョンアップでコアに新機能を加えたあげくにエンバグって何よとか
デフォルトでハッシュな配列はステキですねとか
array_map_recursive()きぼんとか
0551nobodyさん
垢版 |
2005/11/06(日) 12:54:25ID:szZvbyxN
perl使いがPHP使いに成ってもスキル低いのには変わらないけどな。
PHP覚える時間と暇があれば、JavaとかCが使えるようにスキル磨け。
0553nobodyさん
垢版 |
2006/01/20(金) 19:20:58ID:???
Cはもう、使う職場が限られている気がするが
0558557
垢版 |
2006/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でできんか?
0561560
垢版 |
2006/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入門スレになりつつあるな
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つに出来るっていう話
0585581=583
垢版 |
2008/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が一番いいと思いつかっています。
0594nobodyさん
垢版 |
2015/01/25(日) 20:46:07.91ID:???
同じだから移行して何の意味があるのかわからん
0595東京女子医科大学病院プロポフォール大量投与
垢版 |
2015/05/24(日) 21:12:24.33ID:bUoj/9l7
【話題】なぜ日本人は世界中でモテモテなのか!?日本人の魅力について外国人100人に聞いてみた【最強】

https://www.youtube.com/watch?v=P4UD7b6h2KM
0596東京女子医科大学病院プロポフォール大量投与
垢版 |
2015/05/24(日) 21:12:24.77ID:bUoj/9l7
【話題】なぜ日本人は世界中でモテモテなのか!?日本人の魅力について外国人100人に聞いてみた【最強】

https://www.youtube.com/watch?v=P4UD7b6h2KM
0597nobodyさん
垢版 |
2015/07/24(金) 22:11:58.78ID:Ba8qs0sO
ぜんしろうは、せんずろうと言われるが、この歳になればみんなせんずろうだ。
0598nobodyさん
垢版 |
2017/12/30(土) 13:02:48.84ID:YhlYw6jg
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

UT147M7AKH
0599nobodyさん
垢版 |
2018/02/20(火) 04:52:23.92ID:???
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
0600nobodyさん
垢版 |
2018/06/20(水) 23:01:27.83ID:UnZq46Ab
プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。

J4K21
0601nobodyさん
垢版 |
2023/03/09(木) 22:40:19.07ID:???
オラオラ (  ̄Д ̄)y-*);゚皿゚)ノ アチチチッ!!!
レスを投稿する


ニューススポーツなんでも実況