рд╕рд░рд▓ рд╕реНрд╡рдЪрд╛рд▓рди: рдлреЛрдЯреЛ рдПрд▓реНрдмрдо

рдХреНрдпреЛрдВ рдФрд░ рдХреНрдпреЛрдВ


рдЗрд╕ рд▓реЗрдЦ рдиреЗ рдореБрдЭреЗ рдПрдХ рд╣реИрдмреНрд░реЛрдЬрд╝реЛрд╡реЗрд▓ рдХреА рдПрдХ рдирд╛рд░рд╛рдЬ рд╕рдореАрдХреНрд╖рд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛, рдЬрд┐рд╕рдиреЗ рдШреЛрд╖рдгрд╛ рдХреА рдХрд┐, рд░реВрд╕реА рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ: "рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦреЗрдВ, рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд▓рд┐рдЦреЗрдВред"

рдЗрд╕реЗ рдирд░рдХ рдореЗрдВ рднреЗрдЬрдирд╛ рдФрд░ рдереЛрдбрд╝рд╛ рд╕реЛрдЪрдХрд░, рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рд╡рд╣ рд╕рд╣реА рдерд╛, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдореИрдВ рдХрдИ рд╕рд╛рд▓реЛрдВ рд╕реЗ рдХреЛрдИ рднреА рдХреЛрдб рд▓рд┐рдЦ рд░рд╣рд╛ рдерд╛ рдФрд░ рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдерд╛ - рдЕрдЧрд░ рдХреЛрдИ рдХрд╛рдо рдЖрдпрд╛ред рдкреАрдЫреЗ рдореБрдбрд╝рдХрд░, рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдХрд┐рд╕реА рддрд░рд╣ рдПрдХ рдлреЛрдЯреЛ рдПрд▓рдмрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рдо рдерд╛ред рддреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛?



рдХреНрдпреЛрдВ рдФрд░ рдХреНрдпреЛрдВ - реи


рдореИрдВ рдЦрд╝реБрдж рдлрд╝реЛрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдВрдЧ рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рд╣реВрдВ, рдФрд░ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдЕрдкрдиреА рд░рдЪрдирд╛рдУрдВ рдХреЛ рд▓реЛрдЧреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдЗрдВрдЯрд░рдиреЗрдЯ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдЬрдЧрд╣ рд╣реИред рдЙрд╕ рд╕рдордп рдЬреЛ рдкрд╣рд▓реА рдмрд╛рдд рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрдИ рд╡рд╣ рдереА рдкрд┐рдХрд╛рд╕рд╛ ред рд▓реЗрдХрд┐рди рдХреБрдЫ рдРрд╕реЗ рдкрд▓ рдереЗ рдЬреЛ рдореБрдЭреЗ рдЬреНрдпрд╛рджрд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдереЗред рдпрд╣ рд╣реИ



рдореБрдЭреЗ рдЬреЛ рдкрд╕рдВрдж рдЖрдпрд╛ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдкрд┐рдХрд╛рд╕реЛрдлрд╝рд┐рдпрди рд╕реЙрдлреНрдЯрд┐рдВрдХрд╛ рдиреЗ рдЖрдкрдХреЛ рдлрд╝реЛрдЯреЛ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдПрдХ рдПрд▓реНрдмрдо рдПрди рдорд╕реНрд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдФрд░ рдпрд╣ рддрдм рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЬрдм рдмрд╣реБрдд рд╕рд╛рд░реА рдлрд╝реЛрдЯреЛ рд╣реЛрдВред

рд╕рдмрдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдЪрдорддреНрдХрд╛рд░ рд╣реБрдЖ - рдореБрдЭреЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдорд┐рд▓рд╛ред рддрджрдиреБрд╕рд╛рд░, рдореИрдВ рд╕рднреА рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдШрд░ рдкрд░ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдкрд┐рдХрд╛рд╕рд╛ рд╕реНрдерд╛рдиреАрдп рдлреЛрдЯреЛ рдПрд▓рдмрдо рднреА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ - рдмрд╕ рдЖрд╡рд╢реНрдпрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗрдЯ рдХрд░реЗрдВ - рдФрд░ рд╕рд╣реА рд╕рдордп рдкрд░ рд╕рд╣реА рдмрдЯрди рджрдмрд╛рдПрдВред рдЕрдм рддрдХ рд╕рдм рдХреБрдЫ рдореЗрд░реЗ рдЕрдиреБрдХреВрд▓ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рддрдирд╛рд╡ рдкреИрджрд╛ рдХрд░рдиреЗ рд▓рдЧрд╛ рдХрд┐ рдмрдбрд╝реЗ рд╕реБрдВрджрд░ рдЪрд┐рддреНрд░ рдФрд░ рд▓рд┐рдирдХреНрд╕ рд╕рд░реНрд╡рд░ рдПрдХ рд╕рд╛рде рдирд╣реАрдВ рджрд┐рдЦрддреЗред рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдареАрдХ рд╣реИ, рдЕрдВрдЬреАрд░ рдЙрд╕рдХреЗ рд╕рд╛рде рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди ...

рдлрд┐рд░ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛, рддрджрдиреБрд╕рд╛рд░, рд╡рд┐рдВрдбреЛрдЬ рдкрд┐рдХ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдирд╛рд╡рдкреВрд░реНрдг рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рдПрдХ рдирдпрд╛ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХрд╛ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рддрд░реНрдХ рдерд╛ред рдРрд╕рд╛ рд╕рдорд╛рдзрд╛рди рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдерд╛ рдЬреЛ рдЖрдкрдХреЛ рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рдПрдХ рдлреЛрдЯреЛ рдПрд▓реНрдмрдо рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рдерд╛, рдХрдВрд╕реЛрд▓ рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред

рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ


рддреЛ рдореИрдВ рдХреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛:



рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ


рдЪреВрдВрдХрд┐ рд╣рдореЗрдВ рдХрдВрд╕реЛрд▓ рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд┐рдХрд▓реНрдк рддреБрд░рдВрдд рдкрд░реНрд▓ рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ - рдпрд╣ рд╕рд░рд▓, рддреЗрдЬ рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реИред

рдореИрдВрдиреЗ рд╕рднреА рдЗрдореЗрдЬ рдСрдкрд░реЗрд╢рди ImageMagick рдХреЛ рд╕реМрдВрдкреЗред рдлрд┐рд░ рдореИрдВ рднрд╛рдЧ рдЧрдпрд╛ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдЪрд┐рддреНрд░ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдпрд╛ рдХреНрд╖реИрддрд┐рдЬ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдЕрдХреНрд╖ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдирд╛ рд╣реИред рдпрд╣рд╛рдБ рд╢рд╛рдпрдж рдХрдИ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдиреБрд╕реНрдЦрд╛ рдПрдХ рд╣рдм рдкрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛: "рдкрд╣рдЪрд╛рди" рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ рдЪрд┐рддреНрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдорд┐рд▓рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдмрдбрд╝рд╛ рд╣реИ - рдкрд╣рд▓рд╛ рдЖрдХрд╛рд░ рдпрд╛ рджреВрд╕рд░рд╛ред рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╡рд╛рдВрдЫрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдЪрд┐рддреНрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓рд╛ Sizer
sub getSize { my $fname = shift; my $cmd = escapeShell ("identify '$fname'"); my $info = `$cmd`; my $fname_len = length($fname); $info =~ s/^.{$fname_len}(.*)$/$1/; my $type; my $size; ($type, $size, undef) = split (' ', $info); my ($width, $height) = split ('x', $size); return ($width, $height); } 


рдпрд╣рд╛рдВ рдореБрдЭреЗ рдПрдХ рдмрд┐рдВрджреБ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рд╕реНрдерд╛рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ "рдкрд╣рдЪрд╛рди" рдХрдорд╛рдВрдб рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ, рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдирд░реНрддрдХреА рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдирд╛рдЪ - рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЖрдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ
 sub resize { my $size = shift; my $fname_in = shift; my $fname_out = shift; my ($w, $h) = getSize ($fname_in); print "W: $w, H: $h\n"; my $cmd; if ($w > $h) { $cmd = "convert '$fname_in' -resize $size -auto-orient '$fname_out'"; } else { $cmd = "convert '$fname_in' -resize x$size -auto-orient '$fname_out'"; } print "CMD: $cmd\n"; $cmd = escapeShell($cmd); `$cmd`; } 



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдкрд┐рдХрд╛рд╕рд╛ рдиреЗ рдердВрдмрдиреЗрд▓ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХреЗ рд▓рд┐рдП рдЫрд╛рдпрд╛ рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рдерд╛ред рдПрдХ рдЗрдВрдЯрд░рдиреЗрдЯ рднреАрдбрд╝, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд ImageMagick рдХреА рдорджрдж рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдиреБрд╕реНрдЦрд╛ рдпрд╣рд╛рдБ рд╕реЗ рд▓рд┐рдпрд╛ред

рдЫрд╛рдпрд╛ рдмрдирд╛рдУ
 sub shadow { my $fname_in = escapeShell(shift); my $fname_out = escapeShell(shift); my $cmd = "convert -page +3+3 '$fname_in' -matte " . "\\( +clone -background black -shadow 70x2+2+2 \\) " . " +swap -background '#9AB6D7' -mosaic '$fname_out'"; `$cmd`; } 



рдЫрд╛рдпрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЖрдк рд╡реЙрдЯрд░рдорд╛рд░реНрдХ рдХреЛ рддрд╕реНрд╡реАрд░реЛрдВ рдХреЗ рд╕рд╛рде рднреА рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпреЛрдВ рдирд╣реАрдВ? рд╣рдо рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рддрд╕реНрд╡реАрд░ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕реА ImageMagick рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд┐рддреНрд░ рдкрд░ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдиреБрд╕реНрдЦрд╛ ред

рдХреЙрдкреАрд░рд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╕реНрд╡реАрд░ рдбрд╛рд▓реЗрдВ
 sub signImg { my $sign = shift; my $fname_in = shift; my $fname_out = shift; my $cmd = "convert $sign -fill grey50 -colorize 40 miff:- | " . " composite -dissolve 30 -gravity south - '$fname_in' " . " '$fname_out'"; $cmd = escapeShell($cmd); `$cmd`; } 



рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдкрд╕рдВрдж рдХреА рдХреЛрдИ рднреА рдЪреАрдЬрд╝ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ , рд╣рд░ рдХреЛрдИ рдЙрдиреНрд╣реЗрдВ рдкрд╕рдВрдж рдХрд░реЗрдЧрд╛ред

Html рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдереАред рдЖрдорддреМрд░ рдкрд░, рдмрдбрд╝реА рд╕рд╛рдЗрдЯреЛрдВ рдкрд░, рдЬрд╛рдирдХрд╛рд░реА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣реЛрддреА рд╣реИ рдФрд░ URL рдореЗрдВ рдЪрд┐рддреНрд░ рдХреА рдЖрдИрдбреА рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рдФрд░ рд╕реБрдВрджрд░ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЖрдзрд╛рд░ рдирд╣реАрдВ рдерд╛ - рдпрд╣ рд╕рд┐рд░реНрдл рд╡рд╣рд╛рдБ рдлрд┐рдЯ рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рд░реНрд╡рд░ рдПрдХ doped рд░реВрдЯрд░ рдерд╛

рдореИрдВ рдЧреЛрдкрдиреАрдпрддрд╛ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд╡рд╣рд╛рдБ рдПрдХ рд░рд╛рд╕реНрддрд╛ рдерд╛ - рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ html рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред рдпрд╣ рд╕реБрдВрджрд░ рднреА рдирд╣реАрдВ рд╣реИред

рд▓рд┐рдирдХреНрд╕ рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рд╡рд┐рдЪрд╛рд░ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрдпрд╛ рдерд╛ - рдПрдХ рд╣реА рдЯреАрдо рдореЗрдВ рдХрдИ рд╕рд┐рдореНрд▓рд┐рдВрдХреНрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рд┐рдорд▓рд┐рдВрдХ рдХреЗ рдирд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рдЙрдЪрд┐рдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддрд╛ рд╣реИред рддреЛ, рд╕рдорд╛рдзрд╛рди: рд╣рдо рдЪрд┐рддреНрд░ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдПрдХ рд╕рд░рдгреА рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╣реЛрддреЗ рд╣реИрдВ - рдпрд╣ рдХрд╛рдлреА рдзрд░реНрдордирд┐рд░рдкреЗрдХреНрд╖ рд╣реИ, рдФрд░ рд╕рд╣рд╛рдиреБрднреВрддрд┐ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕рд┐рдореНрдХрд▓рд┐рди рдирд╛рдо рдЪрд┐рддреНрд░ рд╕рд░рдгреА рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ - рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ, рдПрдХ рдШреБрдЯрдиреЗ рдкрд░ рдЗрдХрдЯреНрдард╛ рдПрдХ рдЖрдзрд╛рд░ рд╣реИред рдФрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕реЗ рд╣рдо рд╕рд░рдгреА рдореЗрдВ рдЪрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВред

рд╣рдо рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП PHP-shki рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ
 sub genPhpFiles { # Check if index exists already my $new_index = undef; if (-f "$dir_in/photo_index.inc") { `cp $dir_in/photo_index.inc $dir_out_html/photo_index.inc`; } else { $new_index = 1; open F, ">$dir_out_html/photo_index.inc"; print F '<? $desc = array ('; print F "\n"; } # Gen index and symlinks opendir(my $dh, $dir_out_img) || die "Can't read dir `$dir_in': $!\n"; my $idx = 0; my @files = readdir $dh; @files = sort @files; foreach (@files) { next if ($_ =~ m/^\./ || $_ =~ m/\.inc$/); if ($new_index) { print F "array ('name' =>'$_', 'desc' => '$_: '),\n"; } `ln -s template.php $dir_out_html/$idx.php`; $idx++; } closedir $dh; if ($new_index) { print F "\n); ?>"; close F; } } 



рдФрд░ рдЗрд╕рд▓рд┐рдП, PHP рдХреЗ рдЕрдВрджрд░, рд╣рдо рд╕рд┐рдореНрд▓рд┐рдВрдХ рдХреЗ рдирд╛рдо рд╕реЗ рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
 <?php // Extract number from file name and use it as ID $file = $_SERVER["SCRIPT_NAME"]; $id = preg_replace('/.*\/(\d+)\.php$/', '$1', $file); ?> 



рдареАрдХ рд╣реИ, рдпрд╣ рд╕рдм, рд╕рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдореНрдо, рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рднреА рдЕрдзрд┐рдХ рдирд┐рдХрд▓рд╛ ...

рдореИрдВ рдЕрдм рдХрдИ рдорд╣реАрдиреЛрдВ рд╕реЗ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рдмрджрд▓реЗ рдмрд┐рдирд╛, рдФрд░ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рд╣реВрдВ - рд╡рд╣ рд╡рд╣ рд╕рдм рдХреБрдЫ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА - рдХрдорд╛рдВрдб рдХреЗ рдПрдХ рд╣реА рд░рди рдХреЗ рд╕рд╛рде, рд╡рд╣ рдЪрд┐рддреНрд░ рдФрд░ рдПрдЪрдЯреАрдПрдордПрд▓ рджреЛрдиреЛрдВ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рд╕рд░реНрд╡рд░ рдкрд░ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдмрд╛рдХреА рд╣реИред

рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЙрддреНрдкрдиреНрди рдкрд░рд┐рдгрд╛рдо рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

рдлреЛрдЯреЛ рд╕реВрдЪрдХрд╛рдВрдХ



рд╕рд┐рдВрдЧрд▓ рдлреЛрдЯреЛ



рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдЬрд░реВрд░рдд рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред

рдкреНрд░рд╛рдердорд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:


Kanetsред рдмрд┐рдВрджреБред

Source: https://habr.com/ru/post/In147964/


All Articles