1
0
mirror of https://github.com/php/web-php.git synced 2026-03-24 15:22:19 +01:00
Files
archived-web-php/source.php
Adam Harvey f1f5e30ca3 Initial rewrite of the references to Subversion on the site to Git. Rewrites
welcome! A couple of important notes:

- I've largely dropped references to Subversion altogether, even knowing that
  php-doc hasn't migrated yet. We may need to put a few more "Git/SVN account"
  references in there if php-doc isn't going to be migrated in the near future.

- I've removed the quick start hints from git-php.php after an account request
  has been sent in. The documentation there was pretty skimpy anyway and
  probably wouldn't have been enough to get a developer going, plus it's harder
  to distill the Git workflow into three or four snappy commands and I'm not
  really convinced that a form confirmation page is the right place to have
  learning materials, since it's a one-time page for most users. Instead I've
  replaced them with links to the relevant Wiki pages, which seem more likely
  to be the right place for new developers to learn.

News post to come, but I wanted to separate this out for easier review.
2012-03-20 10:13:32 +08:00

73 lines
2.8 KiB
PHP

<?php
// $Id$
$_SERVER['BASE_PAGE'] = 'source.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/prepend.inc';
$SIDEBAR_DATA = '
<h3>Our source is open</h3>
<p>
The syntax highlighted source is automatically generated by PHP from
the plaintext script.
If you\'re interested in what\'s behind the several functions we
used, you can always take a look at the source of the following files:
</p>
<ul class="toc">
<li><a href="/source.php?url=/include/prepend.inc">prepend.inc</a></li>
<li><a href="/source.php?url=/include/site.inc">site.inc</a></li>
<li><a href="/source.php?url=/include/mirrors.inc">mirrors.inc</a></li>
<li><a href="/source.php?url=/include/countries.inc">countries.inc</a></li>
<li><a href="/source.php?url=/include/languages.inc">languages.inc</a></li>
<li><a href="/source.php?url=/include/langchooser.inc">langchooser.inc</a></li>
<li><a href="/source.php?url=/include/ip-to-country.inc">ip-to-country.inc</a></li>
<li><a href="/source.php?url=/include/layout.inc">layout.inc</a></li>
<li><a href="/source.php?url=/include/last_updated.inc">last_updated.inc</a></li>
<li><a href="/source.php?url=/include/shared-manual.inc">shared-manual.inc</a></li>
<li><a href="/source.php?url=/include/manual-lookup.inc">manual-lookup.inc</a></li>
</ul>
<p>
Of course, if you want to see the <a href="/source.php?url=/source.php">source
of this page</a>, we have it available.
You can also browse the Git repository for this website on
<a href="http://git.php.net/?p=web/php.git;a=summary">git.php.net</a>.
</p>
';
site_header("Show Source", array("current" => "FIXME"));
// No file param specified
if (!isset($_GET['url']) || (isset($_GET['url']) && !is_string($_GET['url']))) {
echo "<h1>No page URL specified</h1>";
site_footer();
exit;
}
echo "<h1>Source of: " . htmlentities($_GET['url'], ENT_IGNORE, 'UTF-8') . "</h1>";
// Get dirname of the specified URL part
$dir = dirname($_GET['url']);
// Some dir was present in the filename
if (!empty($dir) && !preg_match("!^(\\.|/)$!", $dir)) {
// Check if the specified dir is valid
$legal_dirs = array("/manual", "/include", "/stats", "/error", "/license", "/conferences", "/archive", "/releases", "/security", "/reST");
if ((preg_match("!^/manual/!", $dir) || in_array($dir, $legal_dirs)) &&
strpos($dir, "..") === FALSE) {
$page_name = $_SERVER['DOCUMENT_ROOT'] . $_GET['url'];
} else { $page_name = FALSE; }
} else {
$page_name = $_SERVER['DOCUMENT_ROOT'] . '/' . basename($_GET['url']);
}
// Provide some feedback based on the file found
if (!$page_name || @is_dir($page_name)) {
echo "<p>Invalid file or folder specified</p>\n";
} elseif (file_exists($page_name)) {
highlight_php(join("", file($page_name)));
} else {
echo "<p>This file does not exist.</p>\n";
}
site_footer();