2010-07-18 19 views
5

मैं दूसरे को पसंद करते तहत अंतर्गत दर्ज ईमेल पते के साथ फ़ाइल txt है से सामग्री नई लाइनों विस्फोट:php एक txt फ़ाइल

[email protected] 
[email protected] 

अब तक मैं

 $result = file_get_contents("tmp/emails.txt");
साथ इसे खोलने में कामयाब रहे, लेकिन मैं प्राप्त करने के लिए पता नहीं है एक सरणी में ईमेल पते। असल में मैं विस्फोट का उपयोग कर सकता हूं लेकिन मैं नई लाइन को कैसे सीमित कर सकता हूं? किसी भी उत्तर के लिए अग्रिम धन्यवाद!

+1

नीचे दिए गए उत्तर आदर्श हैं; लेकिन संदर्भ के लिए, आप न्यूलाइन चरित्र के साथ विस्फोट का उपयोग कर सकते हैं, \ n। (यह \ r \ n भी हो सकता है कि आप Windows या Linux का उपयोग कर रहे हैं या नहीं)। – user11977

उत्तर

25

बस file() का उपयोग कर फ़ाइल को पढ़ें और आपको फ़ाइल की प्रत्येक पंक्ति वाली एक सरणी मिल जाएगी।

$emails = file('tmp/emails.txt'); 

प्रत्येक ईमेल पते पर नई-पंक्तियों को संलग्न नहीं किया करने के लिए, FILE_IGNORE_NEW_LINES ध्वज का उपयोग करें, और खाली लाइनों को छोड़, FILE_SKIP_EMPTY_LINES ध्वज का उपयोग करें:

$emails = file('tmp/emails.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 

दूसरे उदाहरण के var_dump($emails) ऐसा देता है:

array(2) { 
    [0]=> 
    string(13) "[email protected]" 
    [1]=> 
    string(14) "[email protected]" 
} 
+1

यह काम करता है, यह विंडोज़ आधारित नई लाइनों को ध्यान में रखता नहीं है। preg_split का उपयोग अधिक विश्वसनीय रूप से काम करता है। – Jubair

2

के रूप में पागल इस लगता है के रूप में एक return या enter एक दोहरे-उद्धरण के अंदर कर रही है, (0,123,) एक नई लाइन को सीमित करता है। में यह स्पष्ट करने के लिए, के प्रकार:

explode("", "Stuff to delimit"); 

और बस "" के बीच में वापसी मारा, तो आपको मिलेगा:

explode(" 

", "stuff to delimit"); 

और यह काम करता है। शायद अपरंपरागत, और केवल लिनक्स पर काम कर सकता है। लेकिन यह काम करता है।

4
$lines = preg_split('/\r\n|\n|\r/', trim(file_get_contents('file.txt'))); 
संबंधित मुद्दे