PHP 与 Perl 对照表

来源:互联网 发布:python lambda x > 编辑:程序博客网 时间:2024/04/28 08:53
— 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 pushpopshiftunshiftsplice 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_pusharray_poparray_shiftarray_unshiftarray_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 $s2
strcmp($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", onclick=>"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";<a href="<?php echo $ref?>">yy</a> <input type=text name=yy size=5> <input type=password name=yy size=5> <textarea name=yy cols=5 rows=2></textarea> <input type="submit" value=yy> <input type="button" name="xx" value="yy" onclick="submit()">   <select name="xx" size="4"><?php$labels = array(0=>'a',1=>'q',2=>'x');foreach (range(0,2) as $_) echo "<option value='$_'>", $labels[$_];?></select> $a = array('xx','yy','zz');foreach ($a as $_) echo "<input type=radio name=nn value='$_'>$_<br>";    $labels = array('xx'=>'L1','yy'=>'L2');foreach (array_keys($labels) as $_) echo "<input type=checkbox name=nn value='$_'>", $labels[$_];   <table><tr><td>a</td><td>b</td></tr><tr><td>x</td><td>y</td></tr></table>

— Perl URL encode —— Php URL encode
use URI::Escape; uri_escape($val)uri_unescape($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) . "'"

原创粉丝点击