Vacilando Globe
Wikipedia Reflection
[Research] [Writing] [Travel] [Gallery] [Services] [Hosting] [Slovak] [TF]
[Login] [Quidne]
navigation
< Previous Page
toolbox
Backlinks: local or web
Sitemaps
searching
statistics
Updated
Created
Accessed
Popular
Roots
Leaves
Orphans
Edited
External
Totals
sitemap [+]
translation
> Spanish
> French
> Portuguese
> Italian
> German
> Japanese
> Korean
> Chinese
 ads
 
    h AddThis Social Bookmark Button

Wikipedia Reflection
 display Wikipedia content on your own website 

Ever wished providing the beauty that is Wikipediac on your own website? Now you can: just include this PHP script wherever you want Wikipedia to appear!

Future:
• It would be really cool to be able to edit Wikipedia from another site (perhaps using Ajaxi?) All ideas, snippets of code and comments are very welcome!

Thanks to:
Wikipedia contributors (not Wikimedia Foundation!)
• David Polanco and Jim Worthen from aeonity.com

Statement published after numerous e-mails from Wikimedia Foundation asking me to remove this script:

1) I don't agree with the Foundation blocking remote loading. We all contribute to the Wikipedia under GFDL and therefore have the right to display the Wikipedia's content.

2) The Foundation is actively blocking remote loading. I myself was blocked when I used this script. I wish I wasn't but what can I do against them.

3) Blocking remote loading is not a friendly and ultimately effective move taken by the Foundation. The script is boringly simple and anyone can write a new one.

4) I prefer to keep the old simple script up on the page as a reminder of my first assertion.

Cheers,

Tomáš / Vacilando




Development of scripts like this can take a lot of time and effort. There are services, e.g. WikiFetcher, that charge as much as 49 USD for a very similar thing!
I do not agree with compulsory pricing. This Wikipedia Reflection script can be used free of charge.
However, if you enjoy it, you are encouraged to consider donating as little as to show your support
for further Wikipedia Reflection script improvement and development.

Enjoy and keep writing!
 
target="_blank" title=" " onFocus="this.blur()" onClick="NewWindow(this.href,'','669','525','no','center');return false">
 


<?

# Wiki Reflection Version: 2.3 ( see http://www.vacilando.org/index.php?x=7065 )
# Open source license: GPL

# Make sure to force Unicode for Wikipedia content -- otherwise all foreign scripts will display utter nonsense. This should of course be in your header, though my experimenting shows it may as well stay right here.
  
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';

# Make sure images do not display with a border.
  
echo '<style TYPE="text/css">
        <!--
        img{border: 0 none;}
        -->
        </STYLE>'
;

$default_title 'Vacilando'# If you do not specify a title, this will be your default page.

$sourceurl 'http://en.wikipedia.org/wiki/'# This URL needs adjusting sometimes.
$pathfromroot substr$_SERVER['REQUEST_URI'], 0strpos$_SERVER['REQUEST_URI'], "?" ) );
$title_wiki $_GET['title'];
 if (
$title_wiki == "") { $title_wiki $default_title; }
$nicetitle str_replace"_"" "stripslashes$title_wiki ) );

function 
callback$buffer ) {

         global 
$nicetitle;
         global 
$title_wiki;
         global 
$sourceurl;

         
# Separate the article content
           
$buffer substr$bufferstrpos$buffer'<!-- start content -->' ) );
           
$buffer substr$buffer0strpos$buffer'<div class="printfooter">' ) );
         
# Replace relative links (use another wiki server)
           
$buffer str_replace'"/w/skin''"http://en.wikipedia.org/w/skin'$buffer );
           
$buffer str_replace'"/skins''"http://en.wikipedia.org/skins'$buffer );
         
# Replace relative links (use this server)
           
$buffer str_replace'"/wiki/''"' $pathfromroot '?title='$buffer );
         
# Remove edit links
           
$buffer str_replace">edit<""><"$buffer );
           
$buffer str_replace"[<""<"$buffer );
           
$buffer str_replace">]"">"$buffer );
         
$buffer str_replace'href="/w/index.php?''target="_blank" href="http://en.wikipedia.org/w/index.php?'$buffer ); # These are typically links to non-existent pages, so the Wikipedia edit page has to open.

         
if ( $buffer <> '' ) {
              
$buffer '<table width=100% cellspacing=0 cellpadding=1 bgcolor="#EEEEEE" border=0><tr><td>
                         <p><font size="+2"><b>' 
$nicetitle '</b>&nbsp;<sup><a href="http://en.wikipedia.org/w/index.php?title=' $title_wiki '&action=edit" title="Edit this article at Wikipedia" target="_blank"><font color="red" size="-1">edit</font></a></sup></font>
                         <br><i><small>extracted from </small><a href="http://www.wikipedia.org" target="_blank"><small>Wikipedia, the Free Encyclopedia</small></a><small>
                         (using <a href="http://www.vacilando.org/index.php?x=7065"><small>Wikipedia Reflection Script</small></a>)</small></i></td>
                         <td><form method="get"><br><input type="text" name="title" size="30">&nbsp;<input type="submit" value="search"></form></td>
                         <td><div align="right"><a href="http://www.gnu.org/copyleft/fdl.html" target="_blank"><img src="_misc/gnu-fdl.png" border="0"></a></div></td></tr></table><p>' 
$buffer;
            } else {
              
$buffer '<p>Unfortunately, no content could be extracted!
                         <p><a href="javascript:history.go(-1)">Return to the previous page</a> or consult the <a target="_blank" href="' 
$sourceurl $title_wiki '">Wikipedia article on "' $nicetitle '"</a>.';
            }

         return 
$buffer;
       }


# Your page header comes here...'

ob_start("callback");
#include $sourceurl . $title_wiki;
$cuu = new CURL;
echo 
$cuu -> get$sourceurl $title_wiki );
ob_end_flush();

# Your page footer comes here...'



# Define the cURL class:
  
class CURL {
     var 
$callback false;

     function 
setCallback($func_name) {
        
$this->callback $func_name;
     }

     function 
doRequest($method$url$vars) {
        
$ch curl_init();
        
curl_setopt($chCURLOPT_URL$url);
        
#curl_setopt($ch, CURLOPT_HEADER, 1);
        
curl_setopt($chCURLOPT_USERAGENT$_SERVER['HTTP_USER_AGENT']);
        
#curl_setopt($ch, CURLOPT_USERAGENT, 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)');
        
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
        
curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
curl_setopt($chCURLOPT_COOKIEJAR'cookie.txt');
        
curl_setopt($chCURLOPT_COOKIEFILE'cookie.txt');
        if (
$method == 'POST') {
            
curl_setopt($chCURLOPT_POST1);
            
curl_setopt($chCURLOPT_POSTFIELDS$vars);
        }
        
$data curl_exec($ch);
        
curl_close($ch);
        if (
$data) {
            if (
$this->callback)
            {
                
$callback $this->callback;
                
$this->callback false;
                return 
call_user_func($callback$data);
            } else {
                return 
$data;
            }
        } else {
            return 
curl_error($ch);
        }
     }

     function 
get($url) {
        return 
$this->doRequest('GET'$url'NULL');
     }

     function 
post($url$vars) {
        return 
$this->doRequest('POST'$url$vars);
     }
  }

?>







referer referrer referers referrers http_referer

Parent pages:
PHP Scripts
Programming
Wiki Website
Writings of Tomáš J. Fülöpp

[Article created: 2004-12-04 14:55:38 GMT. Edited 69 times (latest: 2007-09-12 09:31:28 GMT). Displayed: 18164 times.]


Add comments [-]

 
 
Your email address:    


 
Enter the verification code