我看过一个解决方案的截图,只有通过http访问页面才能检测到joomla版本。 例如。解决方案显示了joomla版本的所有3位数字。 例如2.5.28,或1.0.x等等。
所以我想知道如何做到这一点?
答案 0 :(得分:0)
是的,可以这样做。使用网站的网址附上" /language/en-GB/en-GB.xml" ,然后文档树将成为你可以看到标签中的版本。 Python代码也是如此: -
答案 1 :(得分:0)
仅适用于Joomla 2.5和3.x
<version>
标记中获取值。<version>
标记中读取值。注意:此脚本使用CURL,因此请确保在您的服务器上启用它。
class JoomlaVersions
{
public function getJoomlaVersion($site)
{
// Add http prefix if missing
if (strpos($site,'http://') === false)
{
$site = 'http://'.$site;
}
// Get the number value from the <version> tag in the XML file
$dom = new DOMDocument;
$url = $site . '/administrator/manifests/files/joomla.xml';
libxml_use_internal_errors(true);
$exists = $this->XMLexists($url);
if( $exists )
{
$dom->load($url);
$versions = $dom->getElementsByTagName('version');
foreach ($versions as $version)
{
return $version->nodeValue;
}
}
else
{
$mce = $this->getTinyMCEversion($site);
if($mce)
{
// Base Joomla version on the TinyMCE version
switch ($mce)
{
case '3.5.6':
$joomla = '3.0.0 - 3.1.6';
break;
case '4.0.10':
$joomla = '3.2.0 - 3.2.1';
break;
case '4.0.12':
$joomla = '3.2.2';
break;
case '4.0.18':
$joomla = '3.2.3 - 3.2.4';
break;
case '4.0.22':
$joomla = '3.3.0';
break;
case '4.0.28':
$joomla = '3.3.1 - 3.3.6';
break;
case '4.1.7':
$joomla = '3.4.0';
break;
default:
$joomla = '3.x';
}
return $joomla;
}
else
{
return 'Unknown';
}
}
}
// Get TinyMCE Version
private function getTinyMCEversion($site)
{
$tinymce = $site . '/plugins/editors/tinymce/tinymce.xml';
libxml_use_internal_errors(true);
$exists = $this->XMLexists($tinymce);
if( $exists )
{
$dom->load($tinymce);
$vTag = $dom->getElementsByTagName('version');
foreach ($vTag as $tag)
{
return $tag->nodeValue;
}
}
}
// Check file exists using CURL
private function XMLexists($url)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$getinfo = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $getinfo;
}
}
然后像这样调用函数:
$version = new JoomlaVersions;
echo $version->getJoomlaVersion('http://joomla.org');
答案 2 :(得分:-1)
这可能有助于我努力寻找一个检测joomla 3的选项。基本上你可以推断出joomla的版本是访问可访问文件中使用的一些标准标题。
https://www.gavick.com/blog/how-to-check-the-version-of-joomla
/templates/system/css/system.css
在浏览器中查找并打开该文件并检查此部分: Joomla源代码Joomla 1.0.x的版本
确定网站是否使用Joomla的最简单方法!或不是 查看页面的源代码。
的Joomla! 1.0.x站点将具有以下内容:1 Joomla 1.5
/ * OpenID图标样式* /
并在templates \ system \ css \ template.css文件中,您应该找到:
- @copyright版权所有(C)2005 - 2010开源事宜。
在较新版本的Joomla中!此文件不再存在
默认情况下,所有Joomla! 1.5.x网站将有以下内容 他们网站的负责人:1 Joomla 1.6 * @version $ Id: system.css 20196 2011-01-09 02:40:25Z ian $ Joomla 1.7 * @version $ Id:system.css 21322 2011-05-11 01:10:29Z dextercowley $ Joomla 2.5 * @copyright版权所有(C)2005 - 2012年开源问题
比较MooTools(JavaScript Framework)版本的另一种方式 使用media / system / js / mootools-more.js文件:Joomla 1.5 MooTools = {version:'1.12'} media \ system \ js \ mootools.js Joomla 1.6 MooTools.More = {version:“1.3.0.1”Joomla 1.7 MooTools.More = {version:“1.3.2.1”Joomla 2.5.6 MooTools.More = {version:“1.4.0.1”Joomla 3.0 alpha 2 MooTools.More = {版本:” 1.4.0.1“
另一种检查Joomla 1.6或Joomla 1.7.x网站的方法是基于的 在它上面比较语言文件中的日期:language / en-GB / en-GB.ini Joomla 1.5.26#$ Id:en-GB.ini 11391 2009-01-04 13:35:50Z ian $ Joomla 1.6.0; $ Id:zh-CN.ini 20196 2011-01-09 02:40:25Z ian $ Joomla 1.6.5; $ Id:zh-CN.ini 20990 2011-03-18 16:42:30Z infograf768 $ Joomla 1.7.1; $ Id:zh-CN.ini 20990 2011-03-18 16:42:30Z infograf768 $ Joomla 1.7.3; $ Id:en-GB.ini 22183 2011-09-30 09:04:32Z infograf768 $ Joomla 1.7.5; $ Id:zh-CN.ini 22183 2011-09-30 09:04:32Z infograf768 $从Joomla 2.5.0到Joomla 2.5.4
2.5.0
您将在language / en-GB / en-GB.xml文件中看到。 Joomla 2.5.5 Joomla 2.5.6
2.5.5
您将在language / en-GB / en-GB.xml文件中看到。