PHP fopen() º¯Êý
¶¨ÒåºÍÓ÷¨
fopen() º¯Êý´ò¿ªÎļþ»òÕß URL¡£
Èç¹û´ò¿ªÊ§°Ü£¬±¾º¯Êý·µ»Ø FALSE¡£
Óï·¨
fopen(filename,mode,include_path,context)
²ÎÊý | ÃèÊö |
---|---|
filename | ±ØÐè¡£¹æ¶¨Òª´ò¿ªµÄÎļþ»ò URL¡£ |
mode | ±ØÐè¡£¹æ¶¨ÒªÇ󵽸ÃÎļþ/Á÷µÄ·ÃÎÊÀàÐÍ¡£¿ÉÄܵÄÖµ¼ûÏÂ±í¡£ |
include_path | ¿ÉÑ¡¡£Èç¹ûÒ²ÐèÒªÔÚ include_path ÖмìË÷ÎļþµÄ»°£¬¿ÉÒÔ½«¸Ã²ÎÊýÉèΪ 1 »ò TRUE¡£ |
context | ¿ÉÑ¡¡£¹æ¶¨Îļþ¾ä±úµÄ»·¾³¡£Context ÊÇ¿ÉÒÔÐÞ¸ÄÁ÷µÄÐÐΪµÄÒ»Ì×Ñ¡Ïî¡£ |
mode ²ÎÊýµÄ¿ÉÄܵÄÖµ
mode | ˵Ã÷ |
---|---|
"r" | Ö»¶Á·½Ê½´ò¿ª£¬½«ÎļþÖ¸ÕëÖ¸ÏòÎļþÍ·¡£ |
"r+" | ¶Áд·½Ê½´ò¿ª£¬½«ÎļþÖ¸ÕëÖ¸ÏòÎļþÍ·¡£ |
"w" | дÈ뷽ʽ´ò¿ª£¬½«ÎļþÖ¸ÕëÖ¸ÏòÎļþÍ·²¢½«Îļþ´óС½ØÎªÁã¡£Èç¹ûÎļþ²»´æÔÚÔò³¢ÊÔ´´½¨Ö®¡£ |
"w+" | ¶Áд·½Ê½´ò¿ª£¬½«ÎļþÖ¸ÕëÖ¸ÏòÎļþÍ·²¢½«Îļþ´óС½ØÎªÁã¡£Èç¹ûÎļþ²»´æÔÚÔò³¢ÊÔ´´½¨Ö®¡£ |
"a" | дÈ뷽ʽ´ò¿ª£¬½«ÎļþÖ¸ÕëÖ¸ÏòÎļþĩβ¡£Èç¹ûÎļþ²»´æÔÚÔò³¢ÊÔ´´½¨Ö®¡£ |
"a+" | ¶Áд·½Ê½´ò¿ª£¬½«ÎļþÖ¸ÕëÖ¸ÏòÎļþĩβ¡£Èç¹ûÎļþ²»´æÔÚÔò³¢ÊÔ´´½¨Ö®¡£ |
"x" |
´´½¨²¢ÒÔдÈ뷽ʽ´ò¿ª£¬½«ÎļþÖ¸ÕëÖ¸ÏòÎļþÍ·¡£Èç¹ûÎļþÒÑ´æÔÚ£¬Ôò fopen() µ÷ÓÃʧ°Ü²¢·µ»Ø FALSE£¬²¢Éú³ÉÒ»Ìõ E_WARNING ¼¶±ðµÄ´íÎóÐÅÏ¢¡£Èç¹ûÎļþ²»´æÔÚÔò³¢ÊÔ´´½¨Ö®¡£ ÕâºÍ¸øµ×²ãµÄ open(2) ϵͳµ÷ÓÃÖ¸¶¨ O_EXCL|O_CREAT ±ê¼ÇÊǵȼ۵ġ£ ´ËÑ¡Ïî±» PHP 4.3.2 ÒÔ¼°ÒÔºóµÄ°æ±¾ËùÖ§³Ö£¬½öÄÜÓÃÓÚ±¾µØÎļþ¡£ |
"x+" |
´´½¨²¢ÒÔ¶Áд·½Ê½´ò¿ª£¬½«ÎļþÖ¸ÕëÖ¸ÏòÎļþÍ·¡£Èç¹ûÎļþÒÑ´æÔÚ£¬Ôò fopen() µ÷ÓÃʧ°Ü²¢·µ»Ø FALSE£¬²¢Éú³ÉÒ»Ìõ E_WARNING ¼¶±ðµÄ´íÎóÐÅÏ¢¡£Èç¹ûÎļþ²»´æÔÚÔò³¢ÊÔ´´½¨Ö®¡£ ÕâºÍ¸øµ×²ãµÄ open(2) ϵͳµ÷ÓÃÖ¸¶¨ O_EXCL|O_CREAT ±ê¼ÇÊǵȼ۵ġ£ ´ËÑ¡Ïî±» PHP 4.3.2 ÒÔ¼°ÒÔºóµÄ°æ±¾ËùÖ§³Ö£¬½öÄÜÓÃÓÚ±¾µØÎļþ¡£ |
˵Ã÷
fopen() ½« filename Ö¸¶¨µÄÃû×Ö×ÊÔ´°ó¶¨µ½Ò»¸öÁ÷ÉÏ¡£Èç¹û filename ÊÇ "scheme://..." µÄ¸ñʽ£¬Ôò±»µ±³ÉÒ»¸ö URL£¬PHP ½«ËÑË÷ÐÒé´¦ÀíÆ÷£¨Ò²±»³ÆÎª·â×°ÐÒ飩À´´¦Àí´Ëģʽ¡£Èç¹û¸ÃÐÒéÉÐδע²á·â×°ÐÒ飬PHP ½«·¢³öÒ»ÌõÏûÏ¢À´°ïÖú¼ì²é½Å±¾ÖÐDZÔÚµÄÎÊÌâ²¢½« filename µ±³ÉÒ»¸öÆÕͨµÄÎļþÃû¼ÌÐøÖ´ÐÐÏÂÈ¥¡£
Èç¹û PHP ÈÏΪ filename Ö¸¶¨µÄÊÇÒ»¸ö±¾µØÎļþ£¬½«³¢ÊÔÔÚ¸ÃÎļþÉÏ´ò¿ªÒ»¸öÁ÷¡£¸ÃÎļþ±ØÐëÊÇ PHP ¿ÉÒÔ·ÃÎʵģ¬Òò´ËÐèҪȷÈÏÎļþ·ÃÎÊȨÏÞÔÊÐí¸Ã·ÃÎÊ¡£Èç¹û¼¤»îÁ˰²È«Ä£Ê½»òÕß open_basedir Ôò»áÓ¦ÓýøÒ»²½µÄÏÞÖÆ¡£
Èç¹û PHP ÈÏΪ filename Ö¸¶¨µÄÊÇÒ»¸öÒÑ×¢²áµÄÐÒ飬¶ø¸ÃÐÒé±»×¢²áΪһ¸öÍøÂç URL£¬PHP ½«¼ì²é²¢È·ÈÏ allow_url_fopen Òѱ»¼¤»î¡£Èç¹û¹Ø±ÕÁË£¬PHP ½«·¢³öÒ»¸ö¾¯¸æ£¬¶ø fopen µÄµ÷ÓÃÔòʧ°Ü¡£
¶Ô context µÄÖ§³ÖÊÇ PHP 5.0.0 Ìí¼ÓµÄ¡£
ÌáʾºÍ×¢ÊÍ
×¢ÊÍ£º²»Í¬µÄ²Ù×÷ϵͳ¼Ò×å¾ßÓв»Í¬µÄÐнáÊøÏ°¹ß¡£µ±Ð´ÈëÒ»¸öÎı¾Îļþ²¢Ïë²åÈëÒ»¸öÐÂÐÐʱ£¬ÐèҪʹÓ÷ûºÏ²Ù×÷ϵͳµÄÐнáÊø·ûºÅ¡£»ùÓÚ Unix µÄϵͳʹÓà \n ×÷ΪÐнáÊø×Ö·û£¬»ùÓÚ Windows µÄϵͳʹÓà \r\n ×÷ΪÐнáÊø×Ö·û£¬»ùÓÚ Macintosh µÄϵͳʹÓà \r ×÷ΪÐнáÊø×Ö·û¡£ Èç¹ûдÈëÎļþʱʹÓÃÁË´íÎóµÄÐнáÊø·ûºÅ£¬ÔòÆäËüÓ¦ÓóÌÐò´ò¿ªÕâЩÎļþʱ¿ÉÄÜ»á±íÏֵúܹÖÒì¡£
Windows ÏÂÌṩÁËÒ»¸öÎı¾×ª»»±ê¼Ç£¨"t"£©¿ÉÒÔ͸Ã÷µØ½« \n ת»»Îª \r\n¡£Óë´Ë¶ÔÓ¦»¹¿ÉÒÔʹÓà "b" À´Ç¿ÖÆÊ¹Óöþ½øÖÆÄ£Ê½£¬ÕâÑù¾Í²»»áת»»Êý¾Ý¡£ÒªÊ¹ÓÃÕâЩ±ê¼Ç£¬ÒªÃ´Óà "b" »òÕßÓà "t" ×÷Ϊ mode ²ÎÊýµÄ×îºóÒ»¸ö×Ö·û¡£
ĬÈϵÄת»»Ä£Ê½ÒÀÀµÓÚ SAPI ºÍËùʹÓÃµÄ PHP °æ±¾£¬Òò´ËΪÁ˱ãÓÚÒÆÖ²¹ÄÀø×ÜÊÇÖ¸¶¨Ç¡µ±µÄ±ê¼Ç¡£Èç¹ûÊDzÙ×÷´¿Îı¾Îļþ²¢Ôڽű¾ÖÐʹÓÃÁË \n ×÷ΪÐнáÊø·û£¬µ«»¹ÒªÆÚÍûÕâЩÎļþ¿ÉÒÔ±»ÆäËüÓ¦ÓóÌÐòÀýÈç Notepad ¶ÁÈ¡£¬ÔòÔÚ mode ÖÐʹÓà "t"¡£ÔÚËùÓÐÆäËüÇé¿öÏÂʹÓà "b"¡£
ÔÚ²Ù×÷¶þ½øÖÆÎļþʱÈç¹ûûÓÐÖ¸¶¨ "b" ±ê¼Ç£¬¿ÉÄÜ»áÅöµ½Ò»Ð©Ææ¹ÖµÄÎÊÌ⣬°üÀ¨»µµôµÄͼƬÎļþÒÔ¼°¹ØÓÚ \r\n ×Ö·ûµÄÆæ¹ÖÎÊÌâ¡£
×¢ÊÍ£ºÎªÒÆÖ²ÐÔ¿¼ÂÇ£¬Ç¿ÁÒ½¨ÒéÔÚÓà fopen() ´ò¿ªÎļþʱ×ÜÊÇʹÓà "b" ±ê¼Ç¡£
×¢ÊÍ£ºÔÙÒ»´Î£¬ÎªÒÆÖ²ÐÔ¿¼ÂÇ£¬Ç¿ÁÒ½¨ÒéÄãÖØÐ´ÄÇЩÒÀÀµÓÚ "t" ģʽµÄ´úÂëʹÆäʹÓÃÕýÈ·µÄÐнáÊø·û²¢¸Ä³É "b" ģʽ¡£
Àý×Ó
<?php $file = fopen("test.txt","r"); $file = fopen("/home/test/test.txt","r"); $file = fopen("/home/test/test.gif","wb"); $file = fopen("http://www.example.com/","r"); $file = fopen("ftp://user:password@example.com/test.txt","w"); ?>