2015-01-31 10 views

उत्तर

0

पर एंटनी डी 'एंड्रिया लिंक आधारित मैं थोड़ा phpinfo_array समारोह ताकि आप इसे की तरह phpinfo_array("Build Date");

मैं भी बना लिया है phpdate ($ प्रारूप) समारोह है कि यह संभालती उपयोग कर सकते हैं संशोधित किया।

function phpinfo_array($info=false){ 
    /* Andale! Andale! Yee-Hah! */ 
    ob_start(); 
    phpinfo(-1); 

    $pi = preg_replace(
     array('#^.*<body>(.*)</body>.*$#ms', '#<h2>PHP License</h2>.*$#ms', 
     '#<h1>Configuration</h1>#', "#\r?\n#", "#</(h1|h2|h3|tr)>#", '# +<#', 
     "#[ \t]+#", '#&nbsp;#', '# +#', '# class=".*?"#', '%&#039;%', 
      '#<tr>(?:.*?)" src="(?:.*?)=(.*?)" alt="PHP Logo" /></a>' 
      .'<h1>PHP Version (.*?)</h1>(?:\n+?)</td></tr>#', 
      '#<h1><a href="(?:.*?)\?=(.*?)">PHP Credits</a></h1>#', 
      '#<tr>(?:.*?)" src="(?:.*?)=(.*?)"(?:.*?)Zend Engine (.*?),(?:.*?)</tr>#', 
      "# +#", '#<tr>#', '#</tr>#'), 
     array('$1', '', '', '', '</$1>' . "\n", '<', ' ', ' ', ' ', '', ' ', 
      '<h2>PHP Configuration</h2>'."\n".'<tr><td>PHP Version</td><td>$2</td></tr>'. 
      "\n".'<tr><td>PHP Egg</td><td>$1</td></tr>', 
      '<tr><td>PHP Credits Egg</td><td>$1</td></tr>', 
      '<tr><td>Zend Engine</td><td>$2</td></tr>' . "\n" . 
      '<tr><td>Zend Egg</td><td>$1</td></tr>', ' ', '%S%', '%E%'), 
     ob_get_clean() 
    ); 

    $sections = explode('<h2>', strip_tags($pi, '<h2><th><td>')); 

    unset($sections[0]); 

    $pi = array(); 
    foreach($sections as $section){ 
     $n = substr($section, 0, strpos($section, '</h2>')); 
     preg_match_all(
      '#%S%(?:<td>(.*?)</td>)?(?:<td>(.*?)</td>)?(?:<td>(.*?)</td>)?%E%#', 
      $section, 
      $askapache, 
      PREG_SET_ORDER 
     ); 

     foreach($askapache as $m) 
      $pi[$m[1]]=(!isset($m[3])||$m[2]==$m[3])?$m[2]:array_slice($m,2); 
    } 

    if ($info && isset($pi[$info])) return $pi[$info]; 
    return $pi; 
} 

और phpdate समारोह तो

function phpdate($format = "d M Y") { 
    return date($format, strtotime(phpinfo_array("Build Date"))); 
} 

मैं सिर्फ यह कॉपी किया है के रूप में, मुझे पता नहीं क्या यह जादू regex में होता है।

phpinfo_array("Build Date"); //returns Apr 10 2014 17:15:04 
phpdate("d M Y"); //returns 10 Apr 2014 
2

आपका मतलब Build Date है?

function phpdate($format="d M Y") 
{ 
    ob_start(); phpinfo(1); 
    if(preg_match('~Build Date (?:=>)?\K.*~', strip_tags(ob_get_clean()), $out)) 
    return date($format, strtotime($out[0])); 
} 

echo phpdate(); 

04 मार्च 2013

Test at eval.in (लिंक जल्द ही समाप्त हो रहा है)


अद्यतन: लिनक्स पर वास्तविक release date पाने के लिए, में phpversion() मेल खा सकते हैं चेंजलॉग:

// match phpversion() in changelog 
function phpReleaseDate() 
{ 
    $log = `zgrep '^[0-9].*PHP' /usr/share/doc/php5/changelog.gz`; 
    $ver = preg_replace('/^\d+\.\d+\.\d+\K.*/', "", phpversion()); 
    $find = '/^(\d{2} [A-Z][a-z]{2} \d{4}), PHP ('.preg_quote($ver).')/'; 

    if(preg_match($find, $log, $out)) 
    return array('ver' => $out[2], 'date' => $out[1]); 
} 

print_r(phpReleaseDate()); 

सरणी ([ver] => 5.3.3 [तिथि] => 22 जुला 2010)

डेबियन लिनक्स के साथ इस की कोशिश की।

+0

हां। बिल्कुल यह! –

+0

क्या निर्माण की तारीख रिलीज की तारीख के समान है? http://php.net/releases/ – pie6k

+0

@AdamPietrasiak मुझे लगता है कि यह तारीख है, जब PHP संकलित किया गया था। –

0

मैं phpinfo() का उपयोग करूंगा और वहां से बिल्ड डेट प्राप्त करूंगा।

उदाहरण here उदाहरणों में से एक में phpinfo का सरणी संस्करण प्राप्त करने का एक बहुत अच्छा तरीका है।

एक बार आपके पास function है। करें:

$php_info = phpinfo_array(true); 
$builddate = $php_info['PHP Configuration']['Build Date']; 

तब मैं इसके लिए एक फीचर अनुरोध करूँगा!

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