Floating point precision
It is typical that simple decimal fractions like 0.1
or
0.7
cannot be converted into their internal binary
counterparts without a small loss of precision. This can lead to
confusing
results: for example, floor((0.1+0.7)*10)
will usually
return 7
instead of the expected 8
,
since the internal representation will be something like
7.9
.
This is due to the fact that it is impossible to express some
fractions in decimal notation with a finite number of digits. For
instance,
1/3
in decimal form becomes
0.3
.
So never trust floating number results to the last digit, and never
compare
floating point numbers for equality. If higher precision is
necessary,
the arbitrary
precision math functions
and
gmp
functions are available.
......
<?php
/*
»ñÈ¡Ô¶³ÌͼƬº¯Êý
*/
function GrabImage($url,$filename=""){
//ÈôurlΪ¿Õ·µ»Øfalse£¬ÎÞµØÖ·
if($url=="") return false;
//Èô$filenameΪ¿Õ
if($filename=="") {
$ext=strrchr($url,"."); //»ñÈ¡"."¼Óºó׺
if($ext!=".gif"&&$ext!=".jpg"&&$ext!=".png") return false;
$filename=date("YmdHis").$ext;
}
ob_start();
readfile($url);
$img = ob_get_contents();
ob_end_clean();
$size = strlen($img);
$fp2=@fopen($filename,"a");
fwrite($fp2,$img);
fclose($fp2);
return $filename;
}
$img=GrabImage("http://www.google.com/intl/en_ALL/images/logo.gif","logo.gif");
if($img){
echo '<img src="'.$img.'" mce_src="'.$img.'">';
}else{
echo "false";
}
?>
......
¶ÔÓڽű¾°²È«Õâ¸ö»°ÌâºÃÏñÓÀԶûÍêûÁË£¬Èç¹ûÄã¾³£µ½¹úÍâµÄ¸÷ÖÖ¸÷ÑùµÄbugtraqÉÏ£¬Äã»á·¢ÏÖÓÐÒ»°ëÒÔÉ϶¼ºÍ½Å±¾Ïà¹Ø£¬ÖîÈçSQL
injection£¬XSS£¬Path Disclosure£¬Remote commands
executionÕâÑùµÄ×ÖÑ۱ȱȽÔÊÇ£¬ÎÒÃÇ¿´ÁËÖ®ºóµÄÓÃ;ÄѵÀ½ö½öÊÇ×¥È⼦?¶ÔÓÚÎÒÃÇÏë×öweb°²È«µÄÈËÀ´Ëµ£¬×îºÃ¾ÍÊÇÄÃÀ´Ñ§Ï°£¬¿ÉÊÇÍòÎï×¥¸ùÔ´£¬ÎÒÃÇ
ÒªµÄ²»ÊÇÓã¶øÊÇÓæ¡£ÔÚ¹úÄÚ£¬¸÷ÖÖ¸÷ÑùµÄphp
³ÌÐò1.0°æ£¬2.0°æÏñÓêºó´ºËñÒ»ÑùµÄð³öÀ´£¬
¿ÉÊÇ£¬´ó¼Ò¹Ø×¢µÄ¶¼ÊÇһЩÖøÃûµÄcms£¬ÂÛ̳
£¬blog³ÌÐò£¬ºÜÉÙµÄÈËÔÚ¶ÔÄÇЩ²»³öÃûµÄ³ÌÐò×ö°²
È«¼ì²â£¬¶ÔÓÚÔ½À´Ô½¶àµÄphp³ÌÐòÔ±
ºÍÕ¾³¤À´Ëµ£¬³ýÁËÒÀ¿¿·þÎñÆ÷
µÄ±¤ÀÝÉèÖÃÍ⣬php³ÌÐò±¾ÉíµÄ°²È«¶àÉÙÄã×ܵö®
µã°É¡£
¡¡¡¡ÓÐÈË˵ÄãÃÇ×öphp°²È«Î޷ǾÍÊǸã¸ã×¢ÈëºÍ¿çվʲôʲôµÄ£¬´ó´íÌØ´í£¬Èç¹ûÕâÑùµÄ»°£¬Ò»¸ömagic_quotes_gpc»òÕß·þÎñÆ÷ÀïµÄһЩ°²È«Éè
ÖþÍÈÃÎÒÃÇȫû»î·ÁË£º(¡£ÎÒ½ñÌìҪ˵µÄ²»ÊÇ×¢È룬²»ÊÇ¿çÕ¾£¬¶øÊÇ´æÔÚÓÚphp³ÌÐòÖеÄһЩ°²È«Ï¸½ÚÎÊÌâ¡£OK!ÇÐÈëÕýÌâ¡£
¡¡¡¡×¢ÒâһЩº¯ÊýµÄ¹ýÂËÓÐЩº¯ÊýÔÚ³ÌÐòÖÐÊǾ³£Ê¹Óõģ¬Ïñ
include()£¬require()£¬fopen()£¬fwrite()£¬readfile()£¬unlink()£¬eval()ÒÔ¼°ËüÃǵıäÌ庯Êý
µÈµÈ¡£ÕâЩº¯Êý¶¼ºÜʵÓã¬ÊµÓò ......
1
£®
Çë¶Ô
POSIX
·ç¸ñºÍ¼æÈÝ
Perl
·ç¸ñÁ½ÖÖÕýÔò
±í´ïʽµÄÖ÷Òªº¯Êý½øÐÐÀà±È˵Ã÷
ereg
preg_match
ereg_replace
preg_replace
2
£®
Çë˵Ã÷ÔÚ
php
.ini
ÖÐ
safe_mode
¿ªÆôÖ®ºó¶ÔÓÚ
PHP
ϵͳ
º¯ÊýµÄÓ°Ïì
3
£®
PHP5
ÖÐħÊõ
·½·¨
º¯ÊýÓÐÄļ¸¸ö£¬Çë¾ÙÀý˵Ã÷¸÷×ÔµÄÓ÷¨
__sleep
__wakeup
__toString
__set_state
__construct,
__destruct
__call,
__get,
__set,
__isset,
__unset
__sleep,
__wakeup,
__toString,
__set_state,
__clone
__autoload
4
£®
Çëд³öÈ㬲¢ËµÃ÷ÈçºÎÔÚÃüÁîÐÐÏÂÔËÐÐ
PHP
½Å±¾£¨Ð´³öÁ½ÖÖ·½Ê½£©Í¬Ê±Ïò
PHP
½Å±¾´«µÝ²ÎÊý£¿
1.
Php filename.php $agr1 $agr2
2.
php –r “<?php code?>”
5
£®
PHP
µÄÀ¬»øÊÕ¼¯»úÖÆÊÇÔõÑùµÄ
6
£®Ê¹¶ÔÏó¿ÉÒÔÏñÊý×éÒ»Ñù½øÐÐ
foreach
Ñ»·£¬ÒªÇóÊôÐÔ±ØÐëÊÇ˽ÓС£
(Iterator
ģʽµÄ
PHP5
ʵÏÖ£¬Ð´Ò»ÀàʵÏÖ
Iterator
½Ó¿Ú
)
7
£®Çëдһ¶Î
PHP
´úÂë
£¬È·±£¶à¸ö½ø³ÌͬʱдÈëͬһ¸öÎļ ......
ÔÚĬÈÏÇé¿öÏ£¬phpµÄÏîÄ¿ÐèÒª½¨ÔÚApache Group\Apache\htdocsĿ¼Ï²ſÉÒÔÕý³£·ÃÎÊ¡£µ±ÎÒÃÇÐèÒª×Ô¼º½¨Á¢Ò»¸ö²»ÔÚApache Group\Apache\htdocsĿ¼ÏµĹ¤×÷Çø¼äʱ£¬¾ÍÐèÒª¸Ä±äApacheµÄ·ÃÎÊÖ¸¶¨Â·¾¶¡£°²×°ºÃApache ºó£¬ÔÚApache Group\Apache\conf ÏÂÓÐÒ»¸öÎļþhttpd.conf£¬ËüÀïÃæ°üº¬×ÅÐí¶àÅäÖÃÐÅÏ¢¡£ÕÒµ½DocumentRoot °ÑËüºóÃæµÄÖµ¸Ä³ÉÄãµÄPHPÏîÄ¿µÄ¹¤×÷Çø¼ä¾Í¿ÉÒÔÁË¡£È磺DocumentRoot "D:\AF05\PHP_Project"¡£ÕâÑù£¬Apache¾Í»áÈÏΪD:\AF05\PHP_ProjectÊÇËüÒª·ÃÎʵÄĿ¼ÁË¡£OK¡£ ......
PHP ÖеÄÑ»·Óï¾äÓÃÓÚÖ´ÐÐÏàͬµÄ´úÂë¿éÖ¸¶¨µÄ´ÎÊý¡£
Ñ»·
ÔÚÄú±àд´úÂëʱ£¬Äú¾³£ÐèÒªÈÃÏàͬµÄ´úÂë¿éÔËÐкܶà´Î¡£Äú¿ÉÒÔÔÚ´úÂëÖÐʹÓÃÑ»·Óï¾äÀ´Íê³ÉÕâ¸öÈÎÎñ¡£
ÔÚ PHP ÖУ¬ÎÒÃÇ¿ÉÒÔʹÓÃÏÂÁÐÑ»·Óï¾ä£º
while Ö»ÒªÖ¸¶¨µÄÌõ¼þ³ÉÁ¢£¬ÔòÑ»·Ö´ÐдúÂë¿é do...while Ê×ÏÈÖ´ÐÐÒ»´Î´úÂë¿é£¬È»ºóÔÚÖ¸¶¨µÄÌõ¼þ³ÉÁ¢Ê±Öظ´Õâ¸öÑ»· for Ñ»·Ö´ÐдúÂë¿éÖ¸¶¨µÄ´ÎÊý foreach ¸ù¾ÝÊý×éÖÐÿ¸öÔªËØÀ´Ñ»·´úÂë¿é
while Óï¾ä
Ö»ÒªÖ¸¶¨µÄÌõ¼þ³ÉÁ¢£¬while Óï¾ä½«Öظ´Ö´ÐдúÂë¿é¡£
Óï·¨
while (condition)
code to be executed;
Àý×Ó
ÏÂÃæµÄÀý×Óʾ·¶ÁËÒ»¸öÑ»·£¬Ö»Òª±äÁ¿ i СÓÚ»òµÈÓÚ 5£¬´úÂë¾Í»áһֱѻ·Ö´ÐÐÏÂÈ¥¡£Ñ»·Ã¿Ñ»·Ò»´Î£¬±äÁ¿¾Í»áµÝÔö 1£º
<html>
<body>
<?php
$i=1;
while($i<=5)
{
echo "The number is " . $i . "<br />";
$i++;
}
?>
</body>
</html>
do...while Óï¾ä
do...while Óï¾ä»áÖÁÉÙÖ´ÐÐÒ»´Î´úÂë - È»ºó£¬Ö»ÒªÌõ¼þ³ÉÁ¢£¬¾Í»áÖظ´½øÐÐÑ»·¡£
Óï·¨
do
{
code to be executed;
}
while (condition);
Àý×Ó
ÏÂÃæµÄÀý×Ó½«¶Ô i µÄÖµ½øÐÐÒ»´ÎÀÛ¼Ó£¬È»ºó£¬Ö»Òª i СÓÚ 5 µÄÌõ¼þ³ÉÁ¢£¬¾Í»á¼ÌÐøÀÛ ......