जैसा कि मैंने गद्य के उत्तर में उल्लेख किया है, उसका कोड गैर-अंग्रेजी लोकेल विंडोज पर विफल हो जाएगा, क्योंकि तब आउटपुट में mode
"कॉलम" या "लाइनें" नहीं हो सकती हैं:
आप पाठ की तलाश किए बिना सही विकल्प ढूंढ सकते हैं:
preg_match('/---+(\n[^|]+?){2}(?<cols>\d+)/', `mode`, $matches);
$cols = $matches['cols'];
ध्यान दें कि मैं भी लाइनों से परेशान नहीं हूं क्योंकि यह अविश्वसनीय है (और मैं वास्तव में उनके बारे में परवाह नहीं करता हूं)।
संपादित करें: विंडोज 8 (ओह यू ...) के बारे में टिप्पणियों के अनुसार, मुझे लगता है कि यह अधिक विश्वसनीय हो सकता है:
preg_match('/CON.*:(\n[^|]+?){3}(?<cols>\d+)/', `mode`, $matches);
$cols = $matches['cols'];
हालांकि इसका परीक्षण करें, क्योंकि मैंने इसका परीक्षण नहीं किया था।