Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
  #1  
Old 01-31-2003, 05:46 AM
Slynderdale Slynderdale is offline
 
Join Date: Mar 2002
Location: New York State
Posts: 576
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default This isnt a hack, just a function i made that gets the latest php versions.

Heres a small function i made that connections to the download section of php.net with fopen and gets the latest versions of the source and binary downloads of php as links. The function returns the data as an multi-dimensional array, the binary data is in $var['binary], while the source data is in $var['source']. The links are stored in numerical order in them like:
$var['source'][0]
would be the first source link.

I hope people find it useful, also I repeat, this isnt a hack, but if this isnt allowed or is in a wrong forum can a mod please delete/move it, thank you.

Also ill post an demo screen shot below.

PHP Code:
function latest_versions() {
    if (
$filenum=@fopen("http://www.php.net/downloads.php","r")) {
        
$contents="";
        while (!@
feof($filenum)) {
            
$contents.=@fread($filenum,1024);
        }
        @
fclose($filenum);
        
$lines explode("\n",$contents);
        unset(
$source);
        unset(
$binary);
        unset(
$phpversion);
        for(
$i=0;$i<count($lines);$i++) {
            if (
trim($lines[$i]) == "<h2>Complete Source Code</h2>")
            
$source true;
            if (
trim($lines[$i]) == "<h2>Windows Binaries</h2>")
            
$binary true;
            if (
$source or $binary) {
                if (
substr(trim($lines[$i]),0,strlen("<li><a href=\"/get_download.php?df=")) == "<li><a href=\"/get_download.php?df=") {
                    
$line ereg_replace("<li>","",$lines[$i]);
                    
$line ereg_replace("<br />","",$line);
                    
$line ereg_replace("/get_download.php","http://www.php.net/downloads.php",$line);
                    
$line ereg_replace('">','" target="_blank">',$line);
                    
$line explode("</a>",$line);
                    if (
$source) {
                        
$phpversion['source'][] = trim($line[0])."</a>";
                    } else if (
$binary) {
                        
$phpversion['binary'][] = trim($line[0])."</a>";
                    }
                }
                if (
$source) {
                    if (
substr(trim($lines[$i]),0,strlen("</ul>")) == "</ul>")
                    unset(
$source);
                } else if (
$binary) {
                    if (
substr(trim($lines[$i]),0,strlen("</ul>")) == "</ul>") {
                    unset(
$binary);
                    return 
$phpversion;
                  }
                }
            }
        }
        return 
$phpversion;
    }
    return 
false;

Heres an example on how to use it:
PHP Code:
<?
function latest_versions() {
    if ($filenum=@fopen("http://www.php.net/downloads.php","r")) {
        $contents="";
        while (!@feof($filenum)) {
            $contents.=@fread($filenum,1024);
        }
        @fclose($filenum);
        $lines = explode("\n",$contents);
        unset($source);
        unset($binary);
        unset($phpversion);
        for($i=0;$i<count($lines);$i++) {
            if (trim($lines[$i]) == "<h2>Complete Source Code</h2>")
            $source = true;
            if (trim($lines[$i]) == "<h2>Windows Binaries</h2>")
            $binary = true;
            if ($source or $binary) {
                if (substr(trim($lines[$i]),0,strlen("<li><a href=\"/get_download.php?df=")) == "<li><a href=\"/get_download.php?df=") {
                    $line = ereg_replace("<li>","",$lines[$i]);
                    $line = ereg_replace("<br />","",$line);
                    $line = ereg_replace("/get_download.php","http://www.php.net/downloads.php",$line);
                    $line = ereg_replace('">','" target="_blank">',$line);
                    $line = explode("</a>",$line);
                    if ($source) {
                        $phpversion['source'][] = trim($line[0])."</a>";
                    } else if ($binary) {
                        $phpversion['binary'][] = trim($line[0])."</a>";
                    }
                }
                if ($source) {
                    if (substr(trim($lines[$i]),0,strlen("</ul>")) == "</ul>")
                    unset($source);
                } else if ($binary) {
                    if (substr(trim($lines[$i]),0,strlen("</ul>")) == "</ul>") {
                    unset($binary);
                    return $phpversion;
                  }
                }
            }
        }
        return $phpversion;
    }
    return false;
}

$phpversion = latest_versions();
echo "<b>Latest Php Version (source):</b><br>\r\n";
for ($i=0;$i<count($phpversion['source']);$i++) {
    $source_version = $phpversion['source'][$i];
    echo "$source_version<br>\r\n";
}
echo "<b>Latest Php Version (binary):</b><br>\r\n";
for ($i=0;$i<count($phpversion['binary']);$i++) {
    $binary_version = $phpversion['binary'][$i];
    echo "$binary_version<br>\r\n";
}

echo "<p><pre>".print_r($phpversion).</pre></p>";
?>
Attached Images
File Type: jpg demo image.jpg (30.4 KB, 0 views)
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 10:56 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.07222 seconds
  • Memory Usage 2,270KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (2)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_attachment
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete