arrays
|
string matching operations
|
| Perl arrays | Php arrays |
|---|---|
@a = (); # empty
@a = ( 'xx', 11, 33.5, );
@a = 12..33;
$a[2] = 'something';
$len = scalar(@a);
# or
$len = @a;
@a3 = ('xx', @a1, @a2);
($x, $y) = @a;
push
pop
shift
unshift
splice
foreach $i (@a) { .. }
|
$a = array(); # empty
$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;
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))
{ .. }
# %h is automatically "reset"
# for another iteration
$a = keys(%h);
$b = values(%h);
delete $h{'x'};
|
$h = array();
$h = array( 'x' => 'y',
'z' => 'w',
);
$h['x'] = 7;
while (list($key,$value) = each($h))
{ .. }
# must reset before reusing $h
reset($h);
$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[1]->[2] # == 35
$mix[1][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[1][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 = 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 = rtrim($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();
|
#form/hyperlink parameters: # s : single-valued # m[] : multi-valued # (such as multi-selections # and checkbox groups) $PARAM = array_merge( $HTTP_GET_VARS, $HTTP_POST_VARS ); $s = $PARAM[s]; # a scalar $m = $PARAM[m]; # an array $param_names = array_keys($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:host',$usr,$pwd
);
$dbh->do( $sql_op )
$query = $dbh->prepare( $sql_op );
$query->execute();
while(@record = $query->fetchrow())
{ .. }
$dbh->quote($val);
|
$dbh = mysql_connect(
'host', $usr, $pwd
);
mysql_select_db('test', $dbh)
mysql_query( $sql_op );
$results = mysql_query( $sql_op );
while($record =
mysql_fetch_row($results))
{ .. }
mysql_quote($val)
#--------------------------- using:
function mysql_quote( $val )
{
return
"'" .
preg_replace( "/'/", "\'",
preg_replace( '/\\\\/', '\\\\',
$val
)
)
. "'";
}
|