1. ã¯ããã«ïŒPHPãšã¯ïŒ
æåã«ããã®èšäºã§è§£èª¬ããèšèªã§ããPHPã«ã€ããŠç°¡åã«èª¬æããŸããPHPã¯ããHypertext Preprocessorãã®ç¥ã§ãWebãµãŒãäžã§åäœãããªãŒãã³ãœãŒã¹ã®ã¹ã¯ãªããèšèªã§ããããšããšã¯ãå人çãªããŒã ããŒãžãäœæããããã«éçºãããŸãããããããçŸåšã§ã¯åçšãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®éçºã«åºã䜿çšãããäžæ¹ãç¹ã«ãµãŒããŒãµã€ãã§åäœãããŠã§ãã¢ããªã±ãŒã·ã§ã³ã®éçºã«ãããŠåºãå©çšãããŠããŸãã
1.1 PHPã®åœ¹å²ãšç¹åŸŽ
ãªãPHPãWebã¢ããªã±ãŒã·ã§ã³éçºã«å¥œãã§äœ¿çšãããã®ã§ãããããPHPã®æ倧ã®ç¹åŸŽã¯ãHTMLã«çŽæ¥åã蟌ãã§äœ¿çšã§ããç¹ã«ãããŸããããã«ãããHTMLã®äžã«ããã°ã©ã ãåã蟌ãããšã§ãåçãªãŠã§ãããŒãžãçæããããšãå¯èœã«ãªããŸãã
ãŸããPHPã¯ãåçãªãŠã§ãã¢ããªã±ãŒã·ã§ã³ã容æã«äœæã§ãããããå€ãã®çµã¿èŸŒã¿æ©èœãæäŸããŠããŸããããã«ã¯ããã©ãŒã ããŒã¿ã®åŠçãããŒã¿ããŒã¹æäœãã»ãã·ã§ã³ç®¡çãã¡ãŒã«éä¿¡ãªã©ãå«ãŸããŸãã
ããã«PHPã¯ãã¢ããªã±ãŒã·ã§ã³ã®éçºãã¹ã ãŒãºã«è¡ãããã®å€ãã®ãã¬ãŒã ã¯ãŒã¯ïŒæ¢ã«çšæãããŠããéšåã®ãããªãã®ïŒãæäŸããŠããããããéçºè ã«ãšã£ãŠå€§ããªã¡ãªãããšãªã£ãŠããŸãã
1.2 PHPã®çšéïŒäœã«äœ¿ãããã®ïŒ
PHPã¯äž»ã«ãŠã§ãã¢ããªã±ãŒã·ã§ã³éçºã®ããã«äœ¿çšãããŸãããŠã§ãã¢ããªã±ãŒã·ã§ã³ãšã¯ãWebãµã€ãã®é²èŠ§è ãæ å ±ãåç §ã ãã§ãªããå ¥åããããšãå¯èœãªã察話çãªWebãµã€ãã®ããšãæããŸããäŸãšããŠã¯ããªã³ã©ã€ã³ã·ã§ããã³ã°ãµã€ããããã°ãSNSãªã©ããããŸãã
ãã®ä»ã«ãPHPã¯ãã³ãŒãã®èªã¿ããããéçºè éã§ã®å ±éç解ã容æã«ããããã®ãªããžã§ã¯ãæåã®æ©èœãæäŸããŠãããé·æçã«ã¡ã³ããã³ã¹ããããããªå€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ãèšèšãããªã©ãå¹ åºãçšéã§å©çšãããŠããŸãã
以äžãPHPãäœã§ãããããã®åœ¹å²ãšç¹åŸŽããããŠã©ãããå Žé¢ã§äœ¿ãããã®ãã«ã€ããŠè§£èª¬ããŸããã次ã®ã»ã¯ã·ã§ã³ã§ã¯ãPHPã®ã€ã³ã¹ããŒã«ãšèšå®æ¹æ³ã«ã€ããŠè§£èª¬ããŸãã
2. PHPã®ã€ã³ã¹ããŒã«ãšèšå®
PHPã䜿ãå§ããåã«ããŸãPHPã®ã€ã³ã¹ããŒã«ãšèšå®ãå¿ èŠã§ããPHPãæ£åžžã«åäœãããããã«ã¯ãé©åãªãµãŒãã®ç°å¢èšå®ãéèŠã«ãªããŸãã
2.1 ãµãŒãç°å¢ã®æºå
ãŸãã¯ãµãŒãç°å¢ã®æºåãè¡ããŸããPHPãåäœãããã«ã¯ããWebãµãŒãããããŒã¿ããŒã¹ãµãŒãããPHPãã®3ã€ãå¿ èŠã§ããããããäžã€ãã€ã€ã³ã¹ããŒã«ããŠèšå®ããã®ã¯æéãããããŸãã®ã§ãããããäžæ¬ã§ã€ã³ã¹ããŒã«ã§ãããXAMPPãã䜿çšããããšãããããããŸããWindows以å€ã«ãMacãLinuxã«ã察å¿ããŠãããåå¿è ã§ãç°¡åã«ã€ã³ã¹ããŒã«ããããšãå¯èœã§ãã
2.2 PHPã®ã€ã³ã¹ããŒã«
XAMPPã®ã€ã³ã¹ããŒã«ãå®äºãããã次ã«PHPã®ã€ã³ã¹ããŒã«ãè¡ããŸããXAMPPã®ã³ã³ãããŒã«ããã«ããApacheãšMySQLãã¹ã¿ãŒããããŸããããã§PHPã䜿ãæºåãæŽããŸããããªãPHPãæ£ããã€ã³ã¹ããŒã«ã§æ®åãããŠãããã確èªããããã«ã¯ãXAMPPã§å ¬éãããŠããããŒã«ã«ã®WebãµãŒãã«ãphpinfo();ããšèšè¿°ããPHPãã¡ã€ã«ãèšçœ®ãããã©ãŠã¶ã§ã¢ã¯ã»ã¹ããããšã§ç¢ºèªã§ããŸãã
2.3 PHP.iniã®èšå®
PHPãå©çšããããã§éèŠãªã®ããphp.iniãšããèšå®ãã¡ã€ã«ã§ããããã§ã¯ããšã©ãŒè¡šç€ºã®æç¡ãæ¥æ¬æéã®èšå®ãªã©ãåºæ¬çãªèšå®æ¹æ³ã解説ããŸãã
ãŸããšã©ãŒè¡šç€ºã®èšå®ãè¡ããŸããéçºäžã¯ãšã©ãŒã®æ å ±ã詳现ã«è¡šç€ºãããã®ãæãŸããã®ã§ããdisplay_errors = Onãã«èšå®ããŸãã次ã«ãæ¥æ¬æéã«èšå®ããããã«ããdate.timezone = “Asia/Tokyo”ãã«èšå®ããŸãããããã®èšå®ãçµãã£ãããXAMPPã®ã³ã³ãããŒã«ããã«ããApacheãäžåºŠåæ¢ããå床ã¹ã¿ãŒããããããšã§èšå®ãåæ ãããŸãã
以äžãPHPã®åºæ¬çãªã€ã³ã¹ããŒã«ãšèšå®ã®æé ãšãªããŸãã次ã®ã¹ãããã§ã¯ãPHPã®åºæ¬çãªèšè¿°æ¹æ³ã«ã€ããŠåŠãã§ãããŸãããã
3. PHPã®åºç€æ§æ
次ã«ãPHPã®åºç€æ§æã«é²ã¿ãŸããããããã§ã¯ãPHPã®éå§ã»çµäºã¿ã°ãã³ã¡ã³ãã®æžãæ¹ãå€æ°ãšããŒã¿åãæŒç®åããããŠå¶åŸ¡æ§æã«ã€ããŠèŠãŠãããŸãã
3.1 éå§ãšçµäºã¿ã°
PHPã®ããã°ã©ã ã¯éå§ã¿ã° <?php ãšçµäºã¿ã° ?> ã«ãã£ãŠå²ãŸããŸãããã®éå§ã¿ã°ãšçµäºã¿ã°ã®éã«PHPã®ã³ãŒããæžãããšã§ããã©ãŠã¶ã¯ãã®éšåãPHPã³ãŒããšããŠè§£éããŸãã以äžã«åºæ¬çãªåœ¢ã瀺ããŸãã
<?php // PHPã³ãŒã ?>
3.2 ã³ã¡ã³ãã®æžãæ¹
ã³ãŒãå ã«ã³ã¡ã³ããæžãããšã¯éåžžã«éèŠã§ããèªåã ãã§ãªãä»äººãã³ãŒããç解ããããããããã«ããç®çã圹å²ãæ確ã«èšè¿°ããŠããã¹ãã§ããPHPã§ã¯1è¡ã³ã¡ã³ã㯠// ãŸã㯠# ããè€æ°è¡ã¯ /* ãš */ ã䜿ã£ãŠè¡šçŸããŸãã
<?php //ããã¯1è¡ã³ã¡ã³ãã§ã #ããã1è¡ã³ã¡ã³ãã§ã /* ãã㯠è€æ°è¡ã® ã³ã¡ã³ãã§ã */ ?>
3.3 å€æ°ãšããŒã¿å
PHPã§ã¯å€æ°ã¯ãã«èšå·$ã®åŸã«å€æ°åãæžããçå·=ã䜿ã£ãŠå€ãä»£å ¥ããŸãããŸããPHPã¯åçåä»ãèšèªãªã®ã§ãããŒã¿åãæ瀺çã«å®£èšããå¿ èŠã¯ãããŸããã
PHPã®äž»ãªããŒã¿åã«ã¯ãæŽæ°åïŒintegerïŒãæµ®åå°æ°ç¹åïŒfloatïŒãæåååïŒstringïŒãããŒã«åïŒbooleanïŒãé ååïŒarrayïŒããªããžã§ã¯ãåïŒobjectïŒãNULLåïŒnullïŒãªã©ããããŸãã
<?php $int = 10; // integer $float = 12.5; // float $str = "PHP tutorial"; // string $bool = true; // boolean $arr = array(1, 2, 3); // array $obj = new MyClass(); // object $n = null; // NULL ?>
3.4 æŒç®å
PHPã§ã¯ç®è¡ãæ¯èŒãè«çãä»£å ¥ãªã©ãå€ãã®çš®é¡ã®æŒç®åãååšããŸããããããã®è©³ãã䜿çšæ¹æ³ãåªå é äœã«ã€ããŠã¯ãå ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ãåç §ããããšããå§ãããŸãã
3.5 å¶åŸ¡æ§æ
å¶åŸ¡æ§æã¯ããã°ã©ã ã®æµããå¶åŸ¡ããçºã®éèŠãªèŠçŽ ã§ããæ¡ä»¶åå²ãã«ãŒããªã©ãå¶åŸ¡ããããã«ãifãelseãwhileãforãªã©ã®æ§æã䜿ãããŸãã以äžã«ãåå¶åŸ¡æ§æã®åºæ¬çãªäœ¿çšæ¹æ³ã瀺ããŸãã
<?php // ifæ§æ if ($a > $b) { echo "a is greater than b"; } // elseæ§æ if ($a > $b) { echo "a is greater than b"; } else { echo "b is greater than a"; } // whileã«ãŒã while ($i < 5) { echo $i; $i++; } // forã«ãŒã for ($i = 0; $i < 5; $i++) { echo $i; } ?>
PHPã®åºç€æ§æã¯ä»¥äžã§ã次ã«é¢æ°ã®å©çšæ¹æ³ãèŠãŠãããŸãããã
4. PHPã§ã®é¢æ°ã®æŽ»çš
ãã®ç« ã§ã¯ãç¹ã«é¢æ°ã®æŽ»çšã«çŠç¹ãåœãŠãPHPããã°ã©ãã³ã°ãããã«ç解ããããé²ããŠãããŸãããã
4.1 é¢æ°ãšã¯
é¢æ°ãšã¯ãäžé£ã®åŠçãã²ãšãŸãšãã«ãããã®ã§ãããã©ã¡ãŒã¿ïŒåŒæ°ïŒãæž¡ãããã®çµæãè¿ãããšãã§ããŸããé¢æ°ã¯ã³ãŒãã®åå©çšãšæŽçãå©ããå šäœã®ã³ãŒããèŠéããããããŸãã
äŸãã°ã以äžã®ãããªé¢æ°ããããŸãã function greet($name){ echo "Hello, " . $name; } greet('PHP Learner'); // åºåïŒHello, PHP Learner
ããã§ã¯ãgreetãšããååã®é¢æ°ãäœæããããã«$nameãšãããã©ã¡ãŒã¿ãæž¡ããŠããŸããããã«ãã,”Hello, “ãšããæååã«$nameã®å€ãçµåããåºåããŠããŸãã
4.2 çµã¿èŸŒã¿é¢æ°
PHPã«ã¯æ§ã ãªçµã¿èŸŒã¿é¢æ°ããããç¹å®ã®åŠçãå©ããããã®ãã®ãããããŒã¿ã®åŠçããã©ãŒãããã®å€æŽãªã©æ§ã ãªæ©èœãæäŸããŸãããããã®é¢æ°ã¯PHPèªäœã«å èµãããŠãããã€ã³ã¹ããŒã«æãã䜿ãããšãã§ããŸããããã€ãã®äŸãèŠãŠãããŸãããã
echo strlen("Hello, PHP Learner"); // åºå: 18 echo str_replace("PHP", "Java", "Hello, PHP Learner"); // åºå: Hello, Java Learner
äžã®äŸã§ã¯ãstrlené¢æ°ã¯æååã®é·ããè¿ããstr_replaceé¢æ°ã¯æååå ã®ç¹å®ã®æåãå¥ã®æåã«çœ®ãæããŸãã
4.3 èªäœé¢æ°
çµã¿èŸŒã¿é¢æ°ã®ä»ã«ãç¹å®ã®ç®çã«åãããŠèªåã§é¢æ°ãäœæããããšãå¯èœã§ãããããèªäœé¢æ°ãšãããŸããèªäœé¢æ°ã¯ããªããå¿ èŠãšããåŠçãäœåºŠãæžãã®ãé¿ããããã®åŒ·åãªããŒã«ã§ãã
function add($num1, $num2){ return $num1 + $num2; } echo add(3, 4); // åºåïŒ7
äžèšã®äŸã§ã¯ãaddãšããèªäœé¢æ°ãçšããŠ2ã€ã®æ°å€ã足ãåŠçãè¡ã£ãŠããŸããããã¯PHPã®çµã¿èŸŒã¿é¢æ°ã«ã¯ååšãããèªåã§äœæããªããã°ãªããªãåŠçã§ãã
以äžããPHPã§ã®é¢æ°ã®æŽ»çšæ¹æ³ã§ããé¢æ°ã¯ã³ãŒããæŽçããèŠéããè¯ãããããå¿ èŠãªåŠçãåå©çšããã®ã«éåžžã«äŸ¿å©ãªããŒã«ã§ãããã®ç¥èãçµã¿èŸŒãããšã§ãããå¹ççãªPHPããã°ã©ãã³ã°ãããããšãã§ããŸãã
5. PHPãšããŒã¿ããŒã¹ã®é£æº
ããŒã¿ããŒã¹ãšã¯ã倧éã®æ å ±ãå¹ççã«ç®¡çããããã®ã·ã¹ãã ã®äžã€ã§ãç¹ã«å€§èŠæš¡ãªãŠã§ãã¢ããªã±ãŒã·ã§ã³ãã·ã¹ãã ã«ãããŠããã®éèŠæ§ã¯éåžžã«é«ãã§ãã
5.1 ããŒã¿ããŒã¹ãšã¯
ãŸãã¯ãããŒã¿ããŒã¹ãäœã§ãããã«ã€ããŠããããããŠã¿ãŸããããããŒã¿ããŒã¹ãšã¯ãèšå€§ãªéã®ããŒã¿ãæŽçããŠä¿åãæœåºãæäœã§ããããã«ãããã®ã§ããäžè¬çã«ã¯ããŒã¿ããŒã¹ãããŒãžã¡ã³ãã·ã¹ãã ïŒDBMSïŒãšãããœãããŠã§ã¢ãéããŠããŒã¿ããŒã¹ãæäœããŸãããªããPHPãçšããŠããŒã¿ããŒã¹ãæäœããéã«ã¯ãMySQLãªã©ã®ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãããçšããããŸãã
5.2 SQLåºç€
ããŒã¿ããŒã¹ãæäœããããã«ã¯SQLïŒStructured Query LanguageïŒæ§é åã¯ãšãªèšèªïŒãšããèšèªãçšããŸããSQLã«ã¯ãããŒã¿ã®æ€çŽ¢ãååŸãæŽæ°ãåé€ãªã©ãè¡ãããã®æ§ã ãªåœä»€ãçšæãããŠããŸãããSELECT * FROM ããŒãã«åãã§ããŒãã«ã®å šãŠã®ããŒã¿ãååŸããããINSERT INTO ããŒãã«å (ãã£ãŒã«ãå) VALUES (å€)ãã§æ°èŠããŒã¿ã®æ¿å ¥ãè¡ãçãã³ãã³ããçµã¿åãããŠå©çšããŸãããã®SQLã®ç¥èã¯ãPHPã§ããŒã¿ããŒã¹ãå¹çããæäœããããã«ã¯å¿ èŠäžå¯æ¬ ã§ãã
5.3 PHPã§ã®DBæ¥ç¶ãšæäœ
ããã§ã¯æ¬¡ã«ãPHPããå®éã«ããŒã¿ããŒã¹ã«æ¥ç¶ããŠã¿ãŸããããPHPã§ããŒã¿ããŒã¹ã«æ¥ç¶ããæ¹æ³ã¯æ§ã ãããŸãããããã§ã¯PDOïŒPHP Data ObjectsïŒãå©çšããæ¹æ³ã玹ä»ããŸããã$pdo = new PDO(‘mysql:host=localhost; dbname=test; charset=utf8’, ‘root’, ‘password’);ãã®ããã«ããŠããŒã¿ããŒã¹ã«æ¥ç¶ããŸãããããŠãã$stmt = $pdo->prepare(QUERY);ãã§ã¯ãšãªãæºåããã$stmt->execute();ãã§ã¯ãšãªãå®è¡ããŸãã
ãããã®åºæ¬æäœãç解ããPHPãšããŒã¿ããŒã¹ãé£æºããã¢ããªã±ãŒã·ã§ã³ãäœãåã¯ããŠã§ãéçºè ãšããŠã®åŒ·åãªæŠåšãšãªãã§ãããã
6. PHPãšãã©ãŒã ã®å©çš
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãPHPãšãã©ãŒã ã®é£æºã«ã€ããŠè§£èª¬ããŸããå ·äœçã«ã¯ãHTTPã¡ãœããã®POSTãšGETã®éãããã©ãŒã ããã®ããŒã¿åãåãæ¹æ³ããããŠäžå¯æ¬ ãªã»ãã¥ãªãã£å¯Ÿçã«ã€ããŠèŠãŠãããŸãããã
6.1 POSTãšGETã®éã
POSTãšGETã¯HTTPãããã³ã«ã§å®çŸ©ãããŠããã¡ãœããã®äžéšã§ãããããããã圹å²ãšçšéãæã£ãŠããŸãã
ãŸãGETã¡ãœããã¯ãURLã«ãã©ã¡ãŒã¿ãŒãå«ããŠéä¿¡ããŸããæ¢ããŠããæ å ±ãå ã«æå®ããŠããããããåãã«è¡ãã€ã¡ãŒãžã§ãããã©ãŠã¶ã®URLæ¬ã«è¡šç€ºããããããååŸãããæ å ±ãURLäžã«çŽæ¥è¡šç€ºãããŸããGETã¯äž»ã«ããŒã¿ã®ååŸã«äœ¿ãããŸããããã©ã¡ãŒã¿ãŒãURLã«è¡šç€ºãããããããã¹ã¯ãŒããªã©ã®æ©å¯æ å ±ãå«ãå Žåã«ã¯é©ããŠããŸããã
äžæ¹ãPOSTã¡ãœããã¯ãHTTPã®ããã£ã«ãã©ã¡ãŒã¿ãŒãå«ããŠæ å ±ãéä¿¡ããŸããéãæ å ±ãå°çã«å ¥ããŠéããããªã€ã¡ãŒãžã§ãã®ã§ãæ å ±ãURLäžã«ã¯è¡šç€ºãããŸããã倧éã®ããŒã¿ãããã¡ã€ã«ãæ©å¯æ å ±ãéä¿¡ããå Žåã«ã¯POSTãé©ããŠããŸãã
6.2 ãã©ãŒã ããã®ããŒã¿åãåã
PHPã§ã¯ããã©ãŒã ããããŒã¿ãåãåãã®ã«$_POSTã$_GETãšãã£ãã¹ãŒããŒã°ããŒãã«å€æ°ãçšããããŸãããããã¯ãããããPOSTãšGETã¡ãœããããéãããŠããããŒã¿ãã²ãã£ãŠåŠçããŸãã
äŸãã°ãHTMLã®äžã§ãã©ãŒã ãäœæãããŠãŒã¶ãŒã«ååãšã¡ãŒã«ã¢ãã¬ã¹ãå ¥åããŠããããšããŸãããããPHPã§åãåãã«ã¯ä»¥äžã®ããã«ããŸãã
<form method="post"> åå: <input type="text" name="name"> ã¡ãŒã«: <input type="text" name="email"> <input type="submit" value="éä¿¡"> </form>
$name = $_POST['name']; $email = $_POST['email'];
6.3 ã»ãã¥ãªãã£å¯Ÿç
PHPã§ãã©ãŒã ããã®æ å ±ãåãæ±ãéã«ã¯ãæ§ã ãªã»ãã¥ãªãã£å¯Ÿçãæ±ããããŸãã代衚çãªãã®ã«ã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã°(XSS)ãã¯ãã¹ãµã€ããªã¯ãšã¹ããã©ãŒãžã§ãªïŒCSRFïŒãªã©ããããŸãã
XSS察çãšããŠã¯ããŠãŒã¶ãŒããåãåã£ãããŒã¿ããã®ãŸãŸåºåãããäŸãã°htmlspecialcharsé¢æ°ã䜿ã£ãŠãšã¹ã±ãŒãããããšãéèŠã§ãã
CSRF察çãšããŠã¯ããã©ãŒã ã«äžæçãªããŒã¯ã³ãåã蟌ãã§ããããæ¯èŒã»æ€èšŒããæ¹æ³ãäžè¬çã§ããPHPã§ã¯ãäŸãã°sessioné¢æ°ãšãšãã«äœ¿ãããšã§ããã©ãŒã ãžã®äžæ£ãªã¢ã¯ã»ã¹ãé²ãããšãã§ããŸãã
以äžã®ããã«ãPHPãšãã©ãŒã ã䜿ãäžã§éèŠãªç¥èãšå¯Ÿçãç解ã»å®è¡ããããšã§ãå®å šãªãŠã§ãã¢ããªã±ãŒã·ã§ã³ãäœæã§ããããã«ãªãã§ãããã
7. PHPã®ãšã©ãŒãã³ããªã³ã°
ããã§ã¯ãããã°ã©ãã³ã°ã®äžçã§é¿ããŠã¯éããªãé åãããšã©ãŒãã³ããªã³ã°ãã«ã€ããŠåŠã¶æéã§ãããšã©ãŒãçºçããéã«ãããäœã§ããããç解ããé©åãªå¯ŸåŠãããããã®ç¥èã身ã«ã€ããŸãããã
7.1 PHPã§ã®ãšã©ãŒã¿ã€ã
ãŸãæåã«ãPHPã§çºçãããšã©ãŒã®çš®é¡ã«ã€ããŠç解ããŸããããäž»èŠãªãšã©ãŒã¿ã€ãã¯æ¬¡ã®ãããªãã®ã§ãã
ã»Parse error: ææ³ãšã©ãŒãPHPã®ææ³ã«åŸã£ãŠããªãå Žåã«çºçããŸãã ã»Fatal error: èŽåœçãªãšã©ãŒãããã°ã©ã ãå®è¡ã§ããªãç¶æ ã瀺ããŸãããã®ãããªãšã©ãŒãçºçãããšãã¹ã¯ãªããã®å®è¡ãåæ¢ããŸãã ã»Warning error: èŠåãšã©ãŒãã¹ã¯ãªããã¯ãšã©ãŒçºçåŸãå®è¡ãç¶ããŸãããäœããããŸãåäœããŠããªãããšã瀺ããŸãã ã»Notice error: ããã°ã©ã ã«æœãå¯èœæ§ã®ããåé¡ã瀺ãäžéšã®ãšã©ãŒã
ãããã®ãšã©ãŒãåãåºããšã©ãŒã¡ãã»ãŒãžã«ã¯ããšã©ãŒãçºçããå Žæãšããã®å 容ã詳现ã«èšèŒãããŠããŸãããããã®æ å ±ã掻çšããããšã§ãåé¡ãç¹å®ã察åŠããããšãå¯èœãšãªããŸãã
7.2 ãšã©ãŒãã³ããªã³ã°ã®åºæ¬
ã§ã¯ããšã©ãŒãçºçããéã«ãã®åå ãç¹å®ããé©åãªå¯ŸåŠãè¡ãããã«ã¯ã©ã®ããã«ãã¹ãã§ãããããPHPã«ã¯ãšã©ãŒãã³ããªã³ã°ã®ããã®ããã€ãã®é¢æ°ãšæ§æããããããããå©çšããããšã§å¯ŸåŠãå¯èœã§ãã
error_reporting()é¢æ°ãå©çšãããšããšã©ãŒã¬ããŒãã®ã¬ãã«ãèšå®ããããšãã§ããŸããéçºæ®µéã§ã¯ãã¹ãŠã®ãšã©ãŒãå ±åã¬ãã«ã«ããããšãäžè¬çã§ãã
<?php error_reporting(E_ALL); ini_set('display_errors', '1'); ?>
ããã«ãããå šãŠã®ãšã©ãŒã衚瀺ãããããã«ãªããŸãããŸããset_error_handler()é¢æ°ã䜿çšããŠããŠãŒã¶å®çŸ©ã®ãšã©ãŒãã³ãã©é¢æ°ãèšå®ããããšãå¯èœã§ãã
<?php function customError($errno, $errstr) { echo "<b>Error:</b> [$errno] $errstr"; } set_error_handler("customError"); ?>
äžèšã®ã³ãŒãã¯ããšã©ãŒã¡ãã»ãŒãžãå«ãã«ã¹ã¿ã ãšã©ãŒãã³ãã©ãèšå®ããŠããŸãã
以äžããPHPã§ã®ãšã©ãŒãã³ããªã³ã°ã®åºæ¬çãªæŠå¿µã§ãããšã©ãŒã¡ãã»ãŒãžããšã©ãŒãã³ããªã³ã°é¢æ°ãç解ã掻çšããããšã§ãããå ç¢ãªã³ãŒããæžãããšãã§ããŸãããããã®ç¥èãæã€ããšã§ãããªãã®PHPã³ãŒãã£ã³ã°ã¹ãã«ã¯äžæ®µãšäžããã§ãããã
8. PHPã§ã»ãã·ã§ã³ãšã¯ãããŒãå©çšãã
ãŠã§ãã¢ããªã±ãŒã·ã§ã³ãäœæããéãããŒã¿ã®äžæçãªä¿åãªã©ã«å¿ èŠãªã»ãã·ã§ã³ãšã¯ãããŒã«ã€ããŠè§£èª¬ããŸãããããã¯PHPãã¯ãããšãããµãŒããŒãµã€ãã®ããã°ã©ãã³ã°ã§æ¬ ãããªãèŠçŽ ã§ãã
8.1 ã»ãã·ã§ã³ãšã¯
ã»ãã·ã§ã³ãšã¯ããäžé£ã®é¢é£ãã察話ãéä¿¡ã®äžéšãšããŠèªèãããã²ãšã€ã®ã€ãã³ãããæããŸãããŠã§ããµã€ãã«ãããã»ãã·ã§ã³ã¯ãäžäººã®ãŠãŒã¶ãŒããµã€ãã蚪ããïŒãã°ã€ã³ããïŒããšããéå ŽããïŒãã°ã¢ãŠãããïŒãŸã§ã®äžé£ã®æäœããŸãšããŠç®¡çããããã®æ©èœã§ãã
PHPã®ã»ãã·ã§ã³ç®¡çã§ã¯ããŠãŒã¶ãŒããšã«ãŠããŒã¯ãªIDãçºè¡ãããŸãããã®IDã䜿ã£ãŠããŠãŒã¶ãŒã®æ å ±ããµãŒããŒå éšã«ä¿åããŸãã
8.2 ã»ãã·ã§ã³ã®å©çšæ¹æ³
PHPã§ã¯ã$_SESSIONããšããã¹ãŒããŒã°ããŒãã«å€æ°ã䜿ã£ãŠã»ãã·ã§ã³ãæ±ããŸããã»ãã·ã§ã³ãéå§ããã«ã¯ãŸãsession_start()é¢æ°ã䜿çšããŸãã
<?php // ã»ãã·ã§ã³éå§ session_start(); // ã»ãã·ã§ã³å€æ°ã«å€ãã»ãã $_SESSION['username'] = "John"; ?>
äžèšã®äŸã§ã¯ãusernameãšããã»ãã·ã§ã³ãèšå®ã”John”ãšããå€ãæ ŒçŽããŸãããã»ãã·ã§ã³ãéå§ããããšããã®æ å ±ã¯ãã£ãšä¿åãããã®ã§ãä»ã®ããŒãžããã§ãåç §ããããšãã§ããŸãã
8.3 ã¯ãããŒãšã¯
ã¯ãããŒãã»ãã·ã§ã³ãšåãããWebã¢ããªã±ãŒã·ã§ã³ã§ãŠãŒã¶ãŒæ å ±ãäžæä¿åããããã®ã¡ã«ããºã ã§ããããããã»ãã·ã§ã³ããµãŒããŒãµã€ãã«ããŒã¿ãä¿åããã®ã«å¯Ÿããã¯ãããŒã¯ã¯ã©ã€ã¢ã³ããµã€ããã€ãŸããŠãŒã¶ãŒã®ãã©ãŠã¶äžã«ããŒã¿ãä¿åããŸãã
ã¯ãããŒã¯ããµã€ãã蚪åè ã®ãã©ãŠã¶ãèªèãã蚪åè ã®èšå®ããŠãŒã¶æ å ±ãä¿åããã®ã«ãã䜿ãããŸãã
8.4 ã¯ãããŒã®äœ¿çšæ¹æ³
ã¯ãããŒã®èšå®ãŸãã¯ååŸã«ã¯ãPHPã®setcookie()é¢æ°ã䜿çšããŸããã¯ãããŒãèšå®ããéã«ã¯ãã¯ãããŒã®ååãå€ãæå¹æéãªã©ãæå®ã§ããŸãã
<?php // ã¯ãããŒã®èšå® setcookie("username", "John", time() + (86400 * 30), "/"); // 86400 = 1 day ?>
äžèšã®äŸã§ã¯”username”ãšããååã®ã¯ãããŒãèšå®ããå€ãšã㊔John”ãèšå®ããŠããŸãããŸãæåŸã®ãã©ã¡ãŒã¿ã§ãã”time() + (86400 * 30)”ã¯ã¯ãããŒãæå¹ã§ããæéãç§åäœã§æå®ããŠããŸãããã®äŸã§ã¯1æ¥ã®ç§æ°ã§ãã86400ç§ã«30ãæããå€ãã€ãŸã30æ¥éãæå®ãããŠããŸãã
以äžãã»ãã·ã§ã³ãšã¯ãããŒã®åºæ¬çãªä»çµã¿ãšPhpã§ã®äœ¿çšæ¹æ³ã«ã€ããŠè§£èª¬ããŸãããããããç解ã掻çšããããšã§ãããè€éãªWebã¢ããªã±ãŒã·ã§ã³ã®éçºãå¯èœãšãªããŸãã
9. PHPã§ãªããžã§ã¯ãæåããã°ã©ãã³ã°
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãä»ãŸã§ã«åŠãã ããã°ã©ãã³ã°ã«å ããŠãPHPã§ã®ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã«ã€ããŠè§£èª¬ããŸãã
9.1 ãªããžã§ã¯ãæåãšã¯
ãªããžã§ã¯ãæåãšã¯ãçŸå®äžçã®ç©äºãã³ã³ãã¥ãŒã¿äžã«åçŸããããã°ã©ã ã®åå©çšæ§ãæ¡åŒµæ§ãé«ããããã®ããã°ã©ãã³ã°ã®ææ³ã®ããšãæããŸããå ·äœçãªãªããžã§ã¯ãæåã®ç¹åŸŽãšããŠããã¯ã©ã¹ããšããªããžã§ã¯ããããã¡ãœããããšãããããã£ãã®æŠå¿µããããŸãã
9.2 ã¯ã©ã¹ãšãªããžã§ã¯ã
ã¯ã©ã¹ãšã¯ãããç¹å®ã®ãªããžã§ã¯ãã®èšèšå³ã®ãããªãã®ã§ãå€æ°ãé¢æ°ããŸãšãããããã®ã§ããã¯ã©ã¹ã«ã¯ããããã£ïŒå€æ°ïŒãšã¡ãœããïŒé¢æ°ïŒãå«ãŸããããããå©çšããããšã§ãªããžã§ã¯ããããå ·äœçãªåœ¢ã§è¡šãããšãã§ããŸãã
ãªããžã§ã¯ããšã¯ãå ·äœçãªå€ãåŠçãæã€ããšãã§ããç¬ç«ããå®äœã§ãã¯ã©ã¹ãã掟çãããŸããã¯ã©ã¹ãåºã«ãããããã®ãªããžã§ã¯ããçæãããæäœããããšã§ãããã°ã©ã ãå®è¡ããŠãããŸãã
9.3 PHPã§ã®ãªããžã§ã¯ãæåããã°ã©ãã³ã°
PHPã§ã®ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã¯éåžžã«åŒ·åã§ãããŒã¿æŽçãã³ãŒãã®åå©çšãã³ãŒãã®ç解ã容æã«ããŸãã以äžã«ã¯ã©ã¹ãšãªããžã§ã¯ãã®åºæ¬çãªçææ¹æ³ã瀺ããŸãã
class Car { function Car() { $this->model = "VW"; } } // ãªããžã§ã¯ãã®çæ $herbie = new Car(); // ããããã£ãžã®ã¢ã¯ã»ã¹ echo $herbie->model;
以äžã®ããã«ãPHPã§ã®ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã¯ãã³ãŒãã®æ§é ãšç解ãå€§å¹ ã«åäžãããŸãã
ãã®ç¯ã§ã¯ããªããžã§ã¯ãæåã®åºæ¬çãªæŠå¿µãšãPHPã§ã®ãªããžã§ã¯ãæåã®æŽ»çšæ¹æ³ã«ã€ããŠçŽ¹ä»ããŸããããããã«è©³ããåŠã³ããæ¹ã¯ãå ¬åŒããã¥ã¡ã³ããå°éæžãåç §ããããšãããããããŸãã
10. ãŸãšããšæ¬¡ã®ã¹ããã
PHPã®åŠç¿ãéããŠãå€ãã®ããšãåŠã³ãç解ããŸããã
10.1 PHPåŠç¿ã®ãŸãšã
PHPãšã¯äœããåºæ¬çãªããŒã¿åãå¶åŸ¡æ§æãçµã¿èŸŒã¿é¢æ°ãäœããèªäœé¢æ°ã®äœãæ¹ããããŠããŒã¿ããŒã¹ãšã®é£æºæ¹æ³ãªã©ãå€ãã®éèŠãªæŠå¿µãã«ããŒããŸããããŸãããšã©ãŒãã³ããªã³ã°ããã»ãã·ã§ã³ãšã¯ãããŒã®æŽ»çšæ¹æ³ããªããžã§ã¯ãæåããã°ã©ãã³ã°ãªã©ãããé²ãã åŠç¿ãäžç·ã«è¡ãããšãã§ããŸããã
ãã®åŠç¿ã®éçšã§ãå€ãã®èªè ãå¿ èŠãªç¥èãšã¹ãã«ãç²åŸããããšãé¡ã£ãŠããŸããããããåŠã³ããäºå®ã¯ãŸã ãããããããŸãã ç¹ã«ãWebéçºã®åéã¯æ¥é²ææ©ã§é²åããŠããŸãã
10.2 ä»åŸã®åŠç¿ã®æ¹åæ§
ãã®ã¬ã€ããéããŠãPHPã®åºæ¬çãªåŽé¢ã«ã€ããŠç解ããåŸã¯ãããå ·äœçãªãããžã§ã¯ãããã¯ãããžãŒã«çŠç¹ãåœãŠãPHPã®å®æŠçãªç¥èãæ·±ããŠããããšãããããããŸããäŸãã°ãå ·äœçãªãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®éçºã人æ°ã®ãã¬ãŒã ã¯ãŒã¯ãäŸãã°LaravelãSymfonyã䜿çšãããããžã§ã¯ããè©ŠããŠã¿ãŠãã ããããŸããã»ãã¥ãªãã£ã®ãã¹ããã©ã¯ãã£ã¹ãããã©ãŒãã³ã¹æé©åãªã©ã®ããé«åºŠãªãããã¯ãç 究ããããšããããããããŸãã
ããã«ãPHPã ãã§ãªããHTMLãCSSãJavaScriptãªã©ã®ããã³ããšã³ãã®æè¡ã«ã觊ããããšã§ããã«ã¹ã¿ãã¯ã®éçºè ãšããŠã¹ãã«ãåºããããšãã§ããŸãã
ãããã®ã¹ãã«ã身ã«ã€ããããšã§ãPHPã䜿ã£ãããŸããŸãªWebãããžã§ã¯ããå¹æçã«éçºããããã€ã管çããèœåã身ã«ã€ããããšãã§ããŸãããããæ°ããã¹ãããã«èžã¿åºããŸãããã