Á°¤ÎÆü / ¼¡¤ÎÆü / ºÇ¿· / 2006-03

¤Æ¤¯¤á¤â@coop / 2006-03-29

2006-03
SMTWTFS
1234
567891011
12131415161718
19202122232425
262728293031

2006-03-29 Wed

* tips - ÈÆÍÑ¥¤¥ó¥¯¥ë¡¼¥ÉÍÑ¥Õ¥¡¥¤¥ë¤Ç¤Î include, require ¤Ç¤Ï dirname(__FILE__) ¤ò»È¤¦[PHP]


¾½êÍͤΥ³¡¼¥É¤ò¸«¤Æ¤¤¤ë¤È¡¢

require '../include/conf.php';

¤Ê¤É¤È¤¤¤¦¤è¤¦¤Ë(./ ¤ä ../ ¤ò´Þ¤à)ÁêÂХѥ¹»ØÄꤷ¤Æ¤¤¤ë¤Î¤ò¸«³Ý¤±¤ë¤Î¤Ç¤¹¤¬¡¢¤³¤ì¤Ë¤ÏÍî¤È¤··ê¤¬¤¢¤ê¤Þ¤¹¡£
¤¿¤È¤¨¤Ð¾å¤Î¥³¡¼¥É¤¬½ñ¤¤¤Æ¤¢¤ë¥Õ¥¡¥¤¥ë¤¬ script/foo.php ¤À¤È¤·¤Þ¤¹¡£
Ê̤Υǥ£¥ì¥¯¥È¥ê¤«¤é foo.php ¤ò include ¤·¤¿¤¤¤È»×¤¤¡¢
public_html/main.php ¤Ç

> require '../script/foo.php';

¤È¤¹¤ë¤È¡¢

Fatal error:main(../include/conf.php)[function.main]: failed to open sream: No such file or directory at ...

¤Î¤è¤¦¤Ê¥¨¥é¡¼¤¬½Ð¤ÆÀµ¾ï¤Ëưºî¤·¤Ê¤¤¡¢¤È¤¤¤¦·ë²Ì¤Ë¤Ê¤ê¤Þ¤¹¡£
 
¤³¤ì¤Ï PHP ¤Ç¤Ï¡¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤¬¡¢¾ï¤Ë¼Â¹Ô¤·¤¿¥Õ¥¡¥¤¥ë(Web¤«¤é¥¢¥¯¥»¥¹¤·¤¿¥Õ¥¡¥¤¥ë)¤Î¤¢¤ë¥Õ¥©¥ë¥À¤Ë¤Ê¤ë¤¿¤á¡¢ÁêÂХѥ¹¤Îɽ¤¹¾ì½ê¤¬ include ¸µ¤Ë¤è¤Ã¤ÆÊѤï¤Ã¤Æ¤·¤Þ¤¦¤¿¤á¤Ç¤¹¡£¤³¤ì¤ò²óÈò¤¹¤ë¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¡¢¾ï¤Ë¡¢¸½ºß¤Î¥Õ¥¡¥¤¥ë¤Î¥Õ¥ë¥Ñ¥¹¤òɽ¤¹Äê¿ôʸ»úÎó(__FILE__ )¤È¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ñ¥¹¤òµá¤á¤ë´Ø¿ô(dirname())¤ò»È¤¤¡¢¾ï¤ËƱ¤¸¾ì½ê¤òɽ¤¹¤è¤¦¤ËÌÀ¼¨Åª¤ËÀäÂХѥ¹¤ËÊÑ´¹¤·¤Æ»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤¿¤È¤¨¤ÐºÇ½é¤Î require ¤Ï¼¡¤Î¤è¤¦¤Ë¤ª¤­¤«¤¨¤é¤ì¤Þ¤¹¡£

require dirname(__FILE__).'/../include/foo.php';
// dirname() ¤ÎËöÈø¤Ï¥Ç¥£¥ì¥¯¥È¥ê¶èÀÚ¤êʸ»ú('/') ¤¬ÉÕ¤«¤Ê¤¤»ö¤ËÃí°Õ

¤³¤ì¤Ç¡¢Ê̥ǥ£¥ì¥¯¥È¥ê¤«¤é¤Ç¤âÌäÂê¤Ê¤¯¥¤¥ó¥¯¥ë¡¼¥É¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
ÆÃ¤Ë¥é¥¤¥Ö¥é¥ê¤äÀßÄê¥Õ¥¡¥¤¥ë¤Ê¤É¡¢¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ë¤Î¤¬ÌÜŪ¤Î¥¯¥é¥¹¤Ç¤Ï¡¢¤ª¤Þ¤¸¤Ê¤¤¤Î¤Ä¤â¤ê¤ÇÁêÂХѥ¹¤Ë dirname(__FILE__) ¤ò½ñ¤¯½¬´·¤ò¤Ä¤±¤ë¤È¹¬¤»¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
 
¤¿¤À¤·Îã³°¤È¤·¤Æ¡¢'./' ¤ä '../' ¤ò´Þ¤Þ¤Ê¤¤ÁêÂХѥ¹¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤³¤ÎÌäÂê¤ÏȯÀ¸¤·¤Þ¤»¤ó(»²¹Í:include())¡£

ÆÉ¤ß¹þ¤à¥Õ¥¡¥¤¥ë¤Ï¤Þ¤º¥«¥ì¥ó¥È¤Î¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤·¤Æinclude_path ¤Çõ¤µ¤ì¡¢¤½¤ì¤«¤é¡¢¥«¥ì¥ó¥È¤Î¥¹¥¯¥ê¥×¥È¤Î¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤·¤Æinclude_path ¤Çõ¤µ¤ì¤Þ¤¹¡£ Î㤨¤Ð¡¢include_path¤¬ .¤Ç¡¢¥«¥ì¥ó¥È¤Î ¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤¬ /www/ ¤Î ¾ì¹ç¡¢include/a.php ¤òÆÉ¤ß¹þ¤ó¤Ç¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ë include "b.php" ¤È½ñ¤¤¤Æ¤¢¤Ã¤¿¤È¤¹¤ë¤È¡¢ b.php ¤¬¤Þ¤º /www/¤Çõ¤µ¤ì¡¢¤½¤Î¸å¡¢ /www/include/¤Çõ¤µ¤ì¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë̾¤¬ ./ ¤¢¤ë¤¤¤Ï ../ ¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ ¥«¥ì¥ó¥È¤Î¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤·¤Æinclude_path ¤Çõ¤µ¤ì¤ë¤Î¤ß¤È¤Ê¤ê¤Þ¤¹¡£(°úÍѸµ: PHP¥Þ¥Ë¥å¥¢¥ë - include())

 
Äɵ­:
- 2006-05-23 - ../, ./ ¤ò´Þ¤Þ¤Ê¤¤¾ì¹ç¤Ë¤Ä¤¤¤ÆÀâÌÀÄɲá£



* PHP5 ¤Ç PEAR ¤ÎÆâÉô¤Ç Non-Static method ¥¨¥é¡¼¤¬½Ð¤ë[PHP]
PHP5 ¤Ç set_error_handler() ¤òÍøÍѤ·¤Æ¤¤¤ë¤È¡¢PEAR ¤Î¥é¥¤¥Ö¥é¥ê¤Î³Æ½ê(PEAR::isError, DB::connect ¤Ê¤É)¤Ç E_STRICT(=2048) ¤¬È¯À¸¤·¤Þ¤¹¡£
set_error_handler ¤Î¸Æ¤Ó½Ð¤·¤ò¼¡¤Î¤è¤¦¤ËÊѹ¹¤¹¤ë¤È²óÈò²Äǽ¤Ç¤¹¡£

Êѹ¹Á°:
    set_error_handler('handler');
Êѹ¹¸å:
 define('PHP5', version_compare( phpversion(), "5.0.0", ">=" ));
 if(PHP5){
     $old_error_handler = set_error_handler('handler', E_ALL);
 }else{
     $old_error_handler = set_error_handler('handler');
 }

¥Ð¡¼¥¸¥ç¥ó¤Ë±þ¤¸¤ÆÂèÆó°ú¿ô¤òÍ¿¤¨¤Æ¤¤¤ë¤Î¤¬¥ß¥½¤Ç¤¹¡£¤â¤Á¤í¤ó¡¢PHP5¤À¤±¤ËÂбþ¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢Ã±½ã¤Ë´û¸¤Î¤â¤Î¤ËÂèÆó°ú¿ô¤òÍ¿¤¨¤ì¤Ð¤¤¤¤¤À¤±¤Ç¤¹¡£
 
PHP5 (5.0.5 ¤Ç³Îǧ)¤Ç¤Ï static ¥á¥½¥Ã¥É¤Îǧ¼±¤¬Èù̯¤Ç¤¹¤Í¡£
 
»²¹Í:
- #1491(Make code work on both PHP4 and PHP5) (LiveSupport - Trac)

2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12

ºÇ½ª¹¹¿·»þ´Ö: 2009-01-07 06:15