Как вернуть значение на основе строки запроса? - PullRequest
0 голосов
/ 09 марта 2012

У меня есть этот пример кода (написанный кем-то другим), который анализирует веб-сайт, находит URL последней версии для каждого типа файла (бета / разработка / выпуск) и возвращает их.

Я хотел бычтобы иметь возможность сделать что-то вроде bukkit.php? version = beta, и он автоматически перейдет по этому URL и начнет загрузку.Как бы я занялся чем-то подобным?

<?php

require_once('simple_html_dom.php');

$html = file_get_html('http://dl.bukkit.org/downloads/craftbukkit/');

$dom = new DOMDocument;
libxml_use_internal_errors(true);
echo $dom->loadHTML($html) ? "success<br/>" : "failed<br/>";
libxml_clear_errors();
$dom->preserveWhiteSpace = true;


foreach ($dom->getElementsByTagName('div') as $element){
    if($element->getAttribute('class') == "innerContent"){
        foreach ($element->getElementsByTagName('a') as $link) {
            if( $link->getAttribute('class') == "tooltipd")
            {
                echo $link->getAttribute('href')."<br/>";
            }
        }
    }
}

?>

Ответы [ 2 ]

0 голосов
/ 09 марта 2012

Скорее используйте регулярное выражение, чтобы найти URL

$html = file_get_html('http://dl.bukkit.org/downloads/craftbukkit/');
preg_match("/bukkit\.php\?version=([beta|alpha|rc]+)/i", $html, $matches);
header("Location: ". $match[1]);
0 голосов
/ 09 марта 2012

Нечто подобное может быть тем, что вы ищете:

$version = $_GET['version'];
if($version == 1) {
    header("Location: http://www.domain.com/version1"); 
} else if($version == 2) {
    header("Location: http://www.domain.com/version2"); 
} 
...