2011-01-05 16 views
35

मुझे include फ़ंक्शन/कथन की आवश्यकता है जिसमें फ़ाइल मौजूद हो, केवल तभी होगा। क्या PHP में कोई है?केवल तभी शामिल करें जब फ़ाइल मौजूद है

आप @include का उपयोग करने का सुझाव दे सकते हैं लेकिन उस दृष्टिकोण के साथ कोई समस्या है - फ़ाइल को शामिल करने के मामले में, PHP को चेतावनी आउटपुट नहीं होगा अगर पार्सर को शामिल फ़ाइल में कुछ गलत लगता है।

+1

क्या आप इन उत्तरों के मुकाबले कुछ अलग मांग रहे हैं? मुझे विश्वास है कि आप '@' और 'शामिल हैं()' लेकिन 'file_exists()' नहीं जानते हैं। – JakeParis

+0

@ जेएमसी क्रिएटिव, मुझे 'file_exists()' दृष्टिकोण के बारे में पता है। मुझे इसका उल्लेख करना चाहिए था। –

उत्तर

74
if(file_exists('file.php')) 
    include 'file.php'; 

कि आप क्या चाहते हैं

+10

या एक पंक्ति में सशर्त के बिना: 'file_exists ($ फ़ाइल) और $ फ़ाइल शामिल करें;' ... – ircmaxell

+14

'is_file' का उपयोग करने के लिए बेहतर है, जो निर्देशिका से बच जाएगा - सुरक्षित कोड के लिए। –

+0

@ hakre मुझे लगता है कि मैंने इसे StephaneJAIS के उत्तर के साथ संयोजित करके तय किया है। – Riking

3

से पहले file_exists का उपयोग करने के बारे में कैसे?

1

मुझे लगता है कि आप, file_exists उपयोग करने के लिए है, क्योंकि अगर वहाँ इस तरह के था एक में शामिल हैं, यह होगा यहाँ सूचीबद्ध किया गया है उपयोग करने का प्रयास करना चाहिए: http://php.net/manual/en/function.include.php

0

@ त्रुटि संदेशों को दबाता है।

$file = 'script.php'; 
if(file_exists($file)) 
    include($file); 
-3
<?php 
    if(file_exists('file.php')) 
     include 'file.php'; 
    }else{ 
     header("Location: http://localhost/); 
     exit; 

    } 
+0

विवरण! व्याख्या! व्याख्या! –

+0

यह विशिष्ट व्यावसायिक आवश्यकता की तरह दिखता है। इसके अलावा, अगर आप इसे अपनी index.php फ़ाइल में करते हैं, तो यह अंतहीन पाश होगा। – Roland

0
function get_image($img_name) { 
    $filename = "../uploads/" . $img_name; 
    $file_exists = file_exists($filename); 
    if ($file_exists && !empty($img_name)) { 
     $src = '<img src="' . $filename . '"/>'; 
    } else{ 
     $src = ''; 
    } 
    return $src; 
} 
echo get_image($image_name); 
5

@ Select0r के जवाब के आधार पर मैंने यह समाधान काम करता है, भले ही आप जो अपने आप में एक और निर्देशिका में एक फ़ाइल से शामिल किया गया है एक फ़ाइल में इस कोड लिखने

if (file_exists(stream_resolve_include_path($file))) 
    include($file); 

का उपयोग कर समाप्त हो गया।

0
@include($file); 

सामने का उपयोग करके, उस कार्य को उत्पन्न करने वाली किसी भी त्रुटि को अनदेखा करता है। इसका दुरुपयोग न करें क्योंकि यह जांचने की तुलना में आईटी रास्ता धीमा है, लेकिन यह सबसे छोटा कोड विकल्प है।

संबंधित मुद्दे