क्या php में सर्वर php संस्करण रिलीज़ दिनांक प्राप्त करना संभव है?PHP - वर्तमान PHP संस्करण रिलीज दिनांक
तो मान लें कि मुझे PHP 5.3.28
मिला है।
phpdate()
जैसे कुछ 11 Jul 2013
वापस करना चाहिए।
क्या php में सर्वर php संस्करण रिलीज़ दिनांक प्राप्त करना संभव है?PHP - वर्तमान PHP संस्करण रिलीज दिनांक
तो मान लें कि मुझे PHP 5.3.28
मिला है।
phpdate()
जैसे कुछ 11 Jul 2013
वापस करना चाहिए।
पर एंटनी डी 'एंड्रिया लिंक आधारित मैं थोड़ा 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]+#", '# #', '# +#', '# class=".*?"#', '%'%',
'#<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
आपका मतलब 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)
डेबियन लिनक्स के साथ इस की कोशिश की।
मैं phpinfo() का उपयोग करूंगा और वहां से बिल्ड डेट प्राप्त करूंगा।
उदाहरण here उदाहरणों में से एक में phpinfo का सरणी संस्करण प्राप्त करने का एक बहुत अच्छा तरीका है।
एक बार आपके पास function है। करें:
$php_info = phpinfo_array(true);
$builddate = $php_info['PHP Configuration']['Build Date'];
तब मैं इसके लिए एक फीचर अनुरोध करूँगा!
हां। बिल्कुल यह! –
क्या निर्माण की तारीख रिलीज की तारीख के समान है? http://php.net/releases/ – pie6k
@AdamPietrasiak मुझे लगता है कि यह तारीख है, जब PHP संकलित किया गया था। –