Perl | PHP |
Массивы | |
@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) { .. } |
Ассоциативные массивы (хэши) | |
%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'] ); |
Структуры данных | |
%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 |
Массивы 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 ); |
Перевод строки в нижний/верхний регистр | |
$s = lc($s); $s = uc($s); $s =~ tr/a-z/A-Z/; | $s = strtolower($s); $s = strtoupper($s); |
Сравнение строк | |
$s1 eq $s2 $s1 lt $s2 | strcmp($s1,$s2) == 0 # or $s1 === $s2 strcmp($s1,$s2) < 0 |
Функции | |
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 ); |
Операции с регулярными выражениями | |
$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); |
basename/dirname | |
use File::Basename; $b = basename($path); $d = dirname($path); | $b = basename($path); $d = dirname($path); |
Переменные окружения | |
%ENV $ENV{REQUEST_METHOD} $ARGV[$i] $0 | $_SERVER $_SERVER[REQUEST_METHOD] $argv[$i+1] $argv[0] # только CGI |
Параметры POST/GET | |
#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); |
Элементы HTML | |
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> |
urlencode | |
use URI::Escape; uri_escape($val) uri_unescape($val) | urlencode($val) urldecode($val) |
Работа с MySQL | |
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) . "'" |
Ярлыки
.htaccess
(4)
тестирование
(8)
шаблоны проектирования
(3)
css
(5)
Debian
(6)
docker
(2)
Doctrine2
(6)
Git
(6)
html
(4)
java
(6)
javascript
(13)
jquery
(11)
LFS
(3)
linux
(23)
mac os
(4)
mod_rewrite
(2)
MSSQL
(4)
MySQL
(18)
ORM Doctrine
(17)
patterns
(3)
PDO
(3)
perl
(7)
PHP
(64)
PHPUnit
(8)
Python
(15)
SEO
(2)
Silex
(1)
SimpleXML
(1)
SQL
(14)
ssh
(4)
Ubuntu
(24)
Yii1
(1)
Zend Framework
(19)
ZendFramework2
(8)
суббота, 16 октября 2010 г.
Perl - PHP разговорник. Соответствие синтаксических конструкций.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий