๋ฃจ์  ์†Œํ”„ํŠธ ๋กœ๊ณ 

216.73.216.80 TODAY : 146

PHP ๊ฐ•์˜

 > 

PHP - ์ดˆ๊ธ‰

๐Ÿ“š PHP ์ดˆ๊ธ‰ - 3์ฃผ์ฐจ - 03 ์˜ค๋ฅ˜ ์ œ์–ด ์—ฐ์‚ฐ์ž (@): ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ์ˆจ๊ธฐ๊ธฐ

๐Ÿ“š PHP ์ดˆ๊ธ‰ - 3์ฃผ์ฐจ - 03 ์˜ค๋ฅ˜ ์ œ์–ด ์—ฐ์‚ฐ์ž (@): ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ์ˆจ๊ธฐ๊ธฐ
ํ‰์  10.0 ๋ผ์ด์„ผ์Šค free
์‚ฌ์šฉ์žํ‰์  10.0 ์šด์˜์ฒด์ œ
๋‹ค์šด๋กœ๋“œ 1 ํŒŒ์ผํฌ๊ธฐ 0
์ œ์ž‘์‚ฌ LUZENSOFT ๋“ฑ๋ก์ผ 2025-06-27 02:43:57
์กฐํšŒ์ˆ˜ 19
- ์„ค๋ช…

๐Ÿ“š PHP ์ดˆ๊ธ‰ - 3์ฃผ์ฐจ - 03 ์˜ค๋ฅ˜ ์ œ์–ด ์—ฐ์‚ฐ์ž (@): ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ์ˆจ๊ธฐ๊ธฐ


PHP ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋‹ค ๋ณด๋ฉด ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ #์˜ค๋ฅ˜ (Error)๋‚˜ #๊ฒฝ๊ณ  (Warning) ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฉ”์‹œ์ง€๋Š” ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ฌธ์ œ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•˜์ง€๋งŒ, ๋•Œ๋กœ๋Š” ํŠน์ • ์ƒํ™ฉ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ถˆํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์˜ˆ์ƒ๋œ #์˜ค๋ฅ˜_๋ฉ”์‹œ์ง€ ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๊ณ  ์‹ถ์ง€ ์•Š์„ ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ **#์˜ค๋ฅ˜_์ œ์–ด_์—ฐ์‚ฐ์ž (@)**์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” PHP์˜ #์˜ค๋ฅ˜_์ œ์–ด_์—ฐ์‚ฐ์ž @์˜ ์‚ฌ์šฉ๋ฒ•๊ณผ ์ฃผ์˜์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.



1. #์˜ค๋ฅ˜_์ œ์–ด_์—ฐ์‚ฐ์ž (@) ๋ž€?

uploadImage


#์˜ค๋ฅ˜_์ œ์–ด_์—ฐ์‚ฐ์ž @๋Š” PHP์—์„œ ํŠน์ • #ํ‘œํ˜„์‹ ์•ž์—์„œ ์‚ฌ์šฉ๋˜์–ด, ํ•ด๋‹น #ํ‘œํ˜„์‹ ์—์„œ ๋ฐœ์ƒํ•˜๋Š” #์˜ค๋ฅ˜_๋ฉ”์‹œ์ง€ ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์–ต์ œํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ•ด๋‹น ์ฝ”๋“œ์—์„œ #์˜ค๋ฅ˜ ๋‚˜ #๊ฒฝ๊ณ  ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ํ˜•ํƒœ:

@ํ‘œํ˜„์‹;

์˜ˆ์‹œ:

PHP

<?php
// ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํŒŒ์ผ์— ์ ‘๊ทผํ•˜์—ฌ ๊ฒฝ๊ณ  ๋ฐœ์ƒ
$file_content = file_get_contents("non_existent_file.txt");
echo "ํŒŒ์ผ ๋‚ด์šฉ: " . $file_content . "<br>"; // ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ ํ›„ ํŒŒ์ผ ๋‚ด์šฉ: ์ถœ๋ ฅ

// ์˜ค๋ฅ˜ ์ œ์–ด ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ
$file_content_suppressed = @file_get_contents("non_existent_file.txt");
echo "ํŒŒ์ผ ๋‚ด์šฉ (์–ต์ œ): " . $file_content_suppressed . "<br>"; // ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€ ์—†์ด ํŒŒ์ผ ๋‚ด์šฉ (์–ต์ œ): ์ถœ๋ ฅ
?>

์œ„ ์˜ˆ์‹œ์—์„œ ์ฒซ ๋ฒˆ์งธ file_get_contents() ํ˜ธ์ถœ์€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๋ฏ€๋กœ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‘ ๋ฒˆ์งธ ํ˜ธ์ถœ์—์„œ๋Š” ์•ž์— @ #์—ฐ์‚ฐ์ž ๋ฅผ ๋ถ™์—ฌ ํ•ด๋‹น #๊ฒฝ๊ณ _๋ฉ”์‹œ์ง€ ๊ฐ€ ํ™”๋ฉด์— ํ‘œ์‹œ๋˜์ง€ ์•Š๋„๋ก ์–ต์ œํ•ฉ๋‹ˆ๋‹ค.



2. @ #์—ฐ์‚ฐ์ž ์˜ ์ž‘๋™ ๋ฐฉ์‹


@ #์—ฐ์‚ฐ์ž ๊ฐ€ ํŠน์ • #ํ‘œํ˜„์‹ ์— ์ ์šฉ๋˜๋ฉด, PHP๋Š” ํ•ด๋‹น #ํ‘œํ˜„์‹ ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  #์˜ค๋ฅ˜ (E_ERROR, E_WARNING, E_NOTICE ๋“ฑ)๋ฅผ ํ˜„์žฌ error_reporting ์„ค์ •๊ณผ ๊ด€๊ณ„์—†์ด ์–ต์ œํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ #์˜ค๋ฅ˜_๋ฉ”์‹œ์ง€ ๊ฐ€ ์™„์ „ํžˆ ์‚ฌ๋ผ์ง€๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. #์˜ค๋ฅ˜ ๋Š” ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•˜์ง€๋งŒ, ๋‹จ์ˆœํžˆ ํ™”๋ฉด์— ํ‘œ์‹œ๋˜์ง€ ์•Š์„ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ #์˜ค๋ฅ˜_ํ•ธ๋“ค๋Ÿฌ ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๋ฉด, ์–ต์ œ๋œ #์˜ค๋ฅ˜ ๋„ #์˜ค๋ฅ˜_ํ•ธ๋“ค๋Ÿฌ ๋กœ ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



3. @ #์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์‚ฌํ•ญ ๋ฐ ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š” ์ด์œ 

uploadImage


@ #์—ฐ์‚ฐ์ž ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ #์˜ค๋ฅ˜_๋ฉ”์‹œ์ง€ ๋ฅผ ์ˆจ๊ธธ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • #๋””๋ฒ„๊น…_์–ด๋ ค์›€: #์˜ค๋ฅ˜_๋ฉ”์‹œ์ง€ ๋ฅผ ์–ต์ œํ•˜๋ฉด ์‹ค์ œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ด๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” #์˜ค๋ฅ˜_๋ฉ”์‹œ์ง€ ๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ์˜ ์›์ธ์„ ์ถ”์ ํ•˜๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, @๋Š” ์ด๋Ÿฌํ•œ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์ˆจ๊ฒจ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.

  • #์„ฑ๋Šฅ_์ €ํ•˜: @ #์—ฐ์‚ฐ์ž ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด PHP๋Š” #์˜ค๋ฅ˜_๋ฉ”์‹œ์ง€ ๋ฅผ ์–ต์ œํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ์ถ”๊ฐ€์ ์ธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ๋ฏธ๋ฏธํ•˜๊ฒŒ๋‚˜๋งˆ #์„ฑ๋Šฅ_์ €ํ•˜ ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • #๋ฌธ์ œ_์€ํ: #์˜ค๋ฅ˜_๋ฉ”์‹œ์ง€ ๋ฅผ ์ˆจ๊ธฐ๋Š” ๊ฒƒ์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‹จ์ˆœํžˆ ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ž ์žฌ์ ์ธ ๋ฒ„๊ทธ๋‚˜ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ์€ํํ•˜์—ฌ ๋” ํฐ ๋ฌธ์ œ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • #์˜ˆ์™ธ_์ฒ˜๋ฆฌ_๋Œ€์•ˆ: PHP์—๋Š” #์˜ค๋ฅ˜_๋ฉ”์‹œ์ง€ ๋ฅผ ์–ต์ œํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ์•ˆ์ „ํ•˜๊ณ  ์ฒด๊ณ„์ ์ธ #์˜ค๋ฅ˜_์ฒ˜๋ฆฌ_๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, try-catch ๋ธ”๋ก์„ ์‚ฌ์šฉํ•œ #์˜ˆ์™ธ_์ฒ˜๋ฆฌ ๋‚˜ set_error_handler() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ์‚ฌ์šฉ์ž ์ •์˜ #์˜ค๋ฅ˜_ํ•ธ๋“ค๋Ÿฌ ์„ค์ • ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.



4. @ #์—ฐ์‚ฐ์ž ๋Œ€์‹  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์•ˆ

uploadImage


๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ @ #์—ฐ์‚ฐ์ž ๋ณด๋‹ค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค.

  • isset() ๋˜๋Š” empty() ํ•จ์ˆ˜ ์‚ฌ์šฉ: #๋ณ€์ˆ˜ ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ๋˜๋Š” ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•  ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” E_NOTICE #๊ฒฝ๊ณ  ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    PHP

    // @$_GET['id'] ๋Œ€์‹ 
    $id = isset($_GET['id']) ? $_GET['id'] : null;
    
  • file_exists() ํ•จ์ˆ˜ ์‚ฌ์šฉ: ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๊ธฐ ์ „์— ํŒŒ์ผ์˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ๋จผ์ € ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    PHP

    $filename = "non_existent_file.txt";
    if (file_exists($filename)) {
        $content = file_get_contents($filename);
    } else {
        echo "ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.<br>";
        $content = null;
    }
    
  • try-catch ๋ธ”๋ก์„ ์‚ฌ์šฉํ•œ #์˜ˆ์™ธ_์ฒ˜๋ฆฌ: ์น˜๋ช…์ ์ธ #์˜ค๋ฅ˜ ๋‚˜ ์˜ˆ์ƒ ๊ฐ€๋Šฅํ•œ ์˜ˆ์™ธ ์ƒํ™ฉ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    PHP

    try {
        // ์ž ์žฌ์ ์œผ๋กœ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ
        // ์˜ˆ: ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šคํ™”
        $obj = new NonExistentClass();
    } catch (Error $e) {
        // ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ
        echo "์˜ค๋ฅ˜ ๋ฐœ์ƒ: " . $e->getMessage() . "<br>";
    }
    
  • error_reporting() ๋ฐ ini_set() ํ•จ์ˆ˜ ์‚ฌ์šฉ: ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ์šด์˜ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ #์˜ค๋ฅ˜_๋ณด๊ณ _์ˆ˜์ค€ ์„ ์ ์ ˆํ•˜๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ์ค‘์—๋Š” ๋ชจ๋“  #์˜ค๋ฅ˜ ๋ฅผ ํ‘œ์‹œํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ๋น ๋ฅด๊ฒŒ ํŒŒ์•…ํ•˜๊ณ , ์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ #์˜ค๋ฅ˜_๋ฉ”์‹œ์ง€ ๊ฐ€ ๋…ธ์ถœ๋˜์ง€ ์•Š๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    PHP

    // ๊ฐœ๋ฐœ ํ™˜๊ฒฝ: ๋ชจ๋“  ์˜ค๋ฅ˜ ํ‘œ์‹œ
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    // ์šด์˜ ํ™˜๊ฒฝ: ์˜ค๋ฅ˜ ํ‘œ์‹œ ์•ˆ ํ•จ (๋กœ๊ทธ์—๋งŒ ๊ธฐ๋ก)
    // error_reporting(E_ALL & ~E_NOTICE); // NOTICE ์ œ์™ธํ•œ ๋ชจ๋“  ์˜ค๋ฅ˜ ๋ณด๊ณ 
    // ini_set('display_errors', 0);
    // ini_set('log_errors', 1); // ์˜ค๋ฅ˜๋ฅผ ๋กœ๊ทธ ํŒŒ์ผ์— ๊ธฐ๋ก
    


๊ฒฐ๋ก 


#์˜ค๋ฅ˜_์ œ์–ด_์—ฐ์‚ฐ์ž @๋Š” PHP์—์„œ #์˜ค๋ฅ˜_๋ฉ”์‹œ์ง€ ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์–ต์ œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ทผ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋ฉฐ, #๋””๋ฒ„๊น… ์„ ์–ด๋ ต๊ฒŒ ํ•˜๊ณ  ์ž ์žฌ์ ์ธ ๋ฌธ์ œ๋ฅผ ์€ํํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‚ฌ์šฉ์„ ์ง€์–‘ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ•๋ ฅํžˆ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. ๋Œ€์‹  isset(), file_exists(), try-catch ๋ธ”๋ก, ๊ทธ๋ฆฌ๊ณ  ์ ์ ˆํ•œ #์˜ค๋ฅ˜_๋ณด๊ณ _์„ค์ • ๊ณผ ๊ฐ™์€ ์ฒด๊ณ„์ ์ธ #์˜ค๋ฅ˜_์ฒ˜๋ฆฌ_๋ฐฉ๋ฒ• ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๋‹ค ์•ˆ์ „ํ•˜๊ณ  ๊ฒฌ๊ณ ํ•œ PHP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.