Perl与php相似,Perl VS PHP常用代码比较

Perl/Php Translationarrays

hashes

data structures

array split/join

case conversion

string comparisons

functionsstring matching operations

basename/dirname

environment variables

POST/GET parameters

HTML elements

URL encode

MySQL database access— Perl arrays—— Php arrays—

@a = ();

@a = ( 'xx', 11, 33.5, );

@a = 12..33;

$a[2] = 'something';

$len = scalar(@a);

# or

$len = @a;

@a3 = ('xx', @a1, @a2);

($x, $y) = @a;

$a[@a] = 'new'; # push

push

pop

shift

unshift

splice

foreach $i (@a) { .. }$a = array();

$a = array( 'xx', 11, 33.5, );

$a = range(12,33);

$a[2] = 'something';

$len = count($a);

$a3 = array_merge('xx', $a1, $a2);

list($x, $y) = $a;

$a[] = 'new'; # push

array_push

array_pop

array_shift

array_unshift

array_splice

foreach ($a as $i) { .. }— Perl hashes—— Php hashes—

%h = ();

%h = ( 'x' => 'y',

'z' => 'w',

);

$h{'x'} = 7;

while (($key,$value) = each(%h))

{ .. }

$a = keys(%h);

$b = values(%h);

delete $h{'x'};$h = array();

$h = array( 'x' => 'y',

'z' => 'w',

);

$h['x'] = 7;

foreach ($h as $key => $value)

{ .. }

$a = array_keys($h);

$b = array_values($h);

unset( $h['x'] );— Perl data structures—— Php data structures—

%h = ('a'=>13, 'b'=>25);

@x = ('hi', 'there', 'all',);

@mix = ( %h, @x,

[33..39],

{ x=>15, yy=>23, },

);

$mix[0]->{'b'} # == 25

$mix[0]{'b'} # == 25

$mix[2]->[2] # = 35

$mix[2][2] # == 35$h = array('a'=>13, 'b'=>25);

$x = array('hi', 'there', 'all',);

$mix = array($h, $x,

range(33,39),

array('x'=>15, 'yy'=>23),

);

$mix[0]['b'] # == 25

$mix[2][2] # == 35— Perl array split/join—— Php array split/join—

@a = split( '|', $s );

@a = split( 's+', $s );

$s = join( '|', @a );$a = preg_split( '/|/', $s,

-1, PREG_SPLIT_NO_EMPTY );

$a = preg_split( '/s+/', $s,

-1, PREG_SPLIT_NO_EMPTY );

$s = join( '|', $a );— Perl case conversion—— Php case conversion—

$s = lc($s);

$s = uc($s);

$s =~ tr/a-z/A-Z/;$s = strtolower($s);

$s = strtoupper($s);— Perl string comparisons—— Php string comparisons—

$s1 eq $s2

$s1 lt $s2strcmp($s1,$s2) == 0

# or

$s1 === $s2

strcmp($s1,$s2) < 0— Perl functions—— Php functions—

sub foo {

my @args = @_;

}

sub foo {

$x = 5;

}

foo2( @a, %h );function foo() {

$args = func_get_args();

}

function foo() {

global $x;

$x = 5;

}

function foo2($x, $y) {

}

foo2( $a, $h );— Perl string matching operations—— Php string matching operations—

$s =~ m/(w+)/;

$substr = $1;

@all = ($s =~ m/(w+)/g);

$s =~ s/s+/X/;

$s =~ s/s+/X/g;

$s =~ s/^s+|s+$//g;preg_match( "/(w+)/", $s, $match );

$substr = $match[1];

preg_match_all( "/(w+)/", $s, $match );

$all = $match[0];

$s = preg_replace( "/s+/", 'X', $s, 1 );

$s = preg_replace( "/s+/", 'X', $s );

$s = trim($s);— Perl basename/dirname—— Php basename/dirname—

use File::Basename;

$b = basename($path);

$d = dirname($path);$b = basename($path);

$d = dirname($path);— Perl environment variables—— Php environment variables—

%ENV

$ENV{REQUEST_METHOD}

$ARGV[$i]

$0$_SERVER

$_SERVER[REQUEST_METHOD]

$argv[$i+1]

$argv[0] # Php/CGI only— Perl POST/GET parameters—— Php POST/GET parameters—

#form/hyperlink parameters:

# s : single-valued

# m : multi-valued

use CGI (:standard);

$s = param('s');

@m = param('m');

@param_names = param();

$num_params = param();#form/hyperlink parameters:

# s : single-valued

# m[] : multi-valued

# (such as multi-selections

# and checkbox groups)

$PARAM

= array_merge($_GET, $_POST);

$s = $PARAM['s']; # a scalar

$m = $PARAM['m']; # an array

$param_names = array_keys($PARAM);

$num_params = count($PARAM);— Perl HTML elements—— Php HTML elements—

use CGI (:standard);

$ref = "x.cgi";

a({href=>$ref}, "yy")

textfield({name=>"yy", size=>5})

password({name=>"yy", size=>5})

textarea({name=>"yy",

cols=>5, rows=>2})

submit({value=>"yy"})

button( {name=>"xx",

value=>"yy",

οnclick=>"submit()",

}

)

%labels = (0=>'a',1=>'q',2=>'x');

popup_menu( { name=>"xx",

values=>[0..2],

labels=>%labels,

size=>4,

}

)

@a = ('xx','yy','zz');

radio_group( { name=>'nn',

values=> @a,

default=>'_',

linebreak=>1,

}

)

%labels = ('xx'=>'L1','yy'=>'L2');

@a = keys( %labels );

checkbox_group( { name=>'nn',

values=> @a,

labels=> %labels,

}

)

table(

Tr(

[

td(['a','b']),

td(['x','y']),

]

)

)# The Perl/CGI functions have the

# additional property of "stability"

# when used in reentrant forms.

# The values of the HTML elements are

# set according to the incoming

# parameter values for those elements.

# The versions below are not stable.

$ref = "x.php";

yy

name="xx" value="yy"

οnclick="submit()">

$labels = array(0=>'a',1=>'q',2=>'x');

foreach (range(0,2) as $_)

echo "",

$labels[$_];

?>

$a = array('xx','yy','zz');

foreach ($a as $_)

echo "

name=nn value='$_'>$_
";

$labels = array('xx'=>'L1','yy'=>'L2');

foreach (array_keys($labels) as $_)

echo "

name=nn value='$_'>",

$labels[$_];

ab
xy
— Perl URL encode—— Php URL encode—

use URI::Escape;

uri_escape($val)

uri_($val)urlencode($val)

urldecode($val)— Perl MySQL database access—— Php MySQL database access—

use DBI;

$dbh = DBI->connect(

'DBI:mysql:test:localhost',

$usr,$pwd

);

$dbh->do( $sql_op )

$query = $dbh->prepare( $sql_op );

$query->execute();

while(

@record = $query->fetchrow() )

{ .. }

$dbh->quote($val)$dbh = mysql_connect(

'localhost', $usr, $pwd

);

mysql_query('USE test')

mysql_query( $sql_op );

$results = mysql_query( $sql_op );

while($record =

mysql_fetch_row($results))

{ .. }

"'" . addslashes($val) . "'"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值