通过输入 URL 以编程方式检查 magento 的版本

Check programmatically version of magento by entering URL

我想知道如何以编程方式检查正在使用的 magento 版本,而无需访问 ftp 或管理员。 例如 url http://magentoversion.com/

出于安全原因,您实际上应该无法访问配置良好的服务器上的版本。您链接到的站点使用 /downloader 和 RELEASE_NOTES.txt 但这些将(或至少应该)在生产站点上被删除或拒绝,并且在这些情况下不起作用。除此之外,您可以尝试计算 public 可访问的各种核心文件的哈希值(即 Mage JS 文件),看看是否有足够的跨版本更改,以便将它们视为查找 table 对于您正在检查的网站。

我的猜测,

获取 css/styles.css 或其他 js 文件的 contents 并检查

@copyright Copyright (c) 2013 Magento Inc. (http://www.magentocommerce.com)

例如,

Version             @copyright
------------------------------------------------------------------------------------------------
Magento 1.9         Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
Magento 1.8         Copyright (c) 2013 Magento Inc. (http://www.magentocommerce.com)
Magento 1.7         Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
Magento 1.6         Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
Magento 1.4.1-1.5   Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
Magento 1.4.0       Copyright (c) 2009 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
Magento 1.0-1.3     Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com)

参考:https://magento.stackexchange.com/a/62966/2206

更新:

获取内容并搜索特定字符串的代码,return该行如下,

<?php
$url = 'http://www.magentosite.com/skin/frontend/base/default/css/widgets.css';//or which ever you feel to take
$data = get_data( $url );
$string = "@copyright";
$data   = explode("\n", $data);

for ($line = 0; $line < count($data); $line++) {
    if(strpos($data[$line], $string)){
        echo $data[$line];
    }
}

function get_data($url) {
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}
?>