本文整理汇总了PHP中WritePage函数的典型用法代码示例。如果您正苦于以下问题:PHP WritePage函数的具体用法?PHP WritePage怎么用?PHP WritePage使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了WritePage函数的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: HandlePostRename
function HandlePostRename($pagename)
{
global $RedirectToRenameFmt, $GroupPattern, $WikiWordPattern;
$newpagename = MakePageName($pagename, stripmagic($_POST['group'] . '.' . $_POST['renametext']));
if (PageExists($newpagename)) {
Abort("'{$newpagename}' already exists");
} else {
Lock(2);
$page = RetrieveAuthPage($pagename, "edit");
if ($page) {
$ntext = $page['text'];
} else {
Abort("cannot get '{$pagename}'");
}
$ogroup = FmtPageName('$Group', $pagename);
$ngroup = FmtPageName('$Group', $newpagename);
# Abort('stop for testing');
if ($_POST['addgroup']) {
if ($_POST['addgroup'] == 'new') {
$h = $ogroup;
$ogroup = $ngroup;
$ngroup = $h;
}
if ($ogroup == $ngroup) {
$ngroup = $ngroup . '1';
}
$ntext = preg_replace("/(\\[[=@].*?[=@]\\])|(\\[\\[[^#].*?\\]\\])|([`:\\/])?\\b(({$GroupPattern}([\\/.]))?{$WikiWordPattern})/e", 'QualifyUnqualifiedLinks($ngroup,$ogroup,"$0")', $ntext);
# Abort(str_replace("\n",'<br/>',str_replace("\n\n",'</p><p>',$ntext)));
# $page = RetrieveAuthPage($newpagename,"edit");
}
$page['text'] = $ntext;
WritePage($newpagename, $page);
$page['text'] = str_replace('$RenameText', $newpagename, $RedirectToRenameFmt);
WritePage($pagename, $page);
}
Redirect($pagename);
}
示例2: HandlePostAttr
function HandlePostAttr($pagename, $auth = 'attr') {
global $PageAttributes, $EnablePostAttrClearSession;
Lock(2);
$page = RetrieveAuthPage($pagename, $auth, true);
if (!$page) { Abort("?unable to read $pagename"); }
foreach($PageAttributes as $attr=>$p) {
$v = stripmagic(@$_POST[$attr]);
if ($v == '') continue;
if ($v=='clear') unset($page[$attr]);
else if (strncmp($attr, 'passwd', 6) != 0) $page[$attr] = $v;
else {
$a = array();
preg_match_all('/"[^"]*"|\'[^\']*\'|\\S+/', $v, $match);
foreach($match[0] as $pw)
$a[] = preg_match('/^(@|\\w+:)/', $pw) ? $pw
: crypt(preg_replace('/^([\'"])(.*)\\1$/', '$2', $pw));
if ($a) $page[$attr] = implode(' ',$a);
}
}
WritePage($pagename,$page);
Lock(0);
if (IsEnabled($EnablePostAttrClearSession, 1)) {
@session_start();
unset($_SESSION['authid']);
unset($_SESSION['authlist']);
$_SESSION['authpw'] = array();
}
Redirect($pagename);
exit;
}
示例3: HandlePostAttr
function HandlePostAttr($pagename)
{
global $PageAttributes;
$page = RetrieveAuthPage($pagename, 'attr');
if (!$page) {
Abort("?unable to read {$pagename}");
}
foreach ($PageAttributes as $attr => $p) {
$newpw = @$_POST[$attr];
if ($newpw == 'clear') {
unset($page[$attr]);
} else {
if ($newpw > '') {
$page[$attr] = crypt($newpw);
}
}
}
WritePage($pagename, $page);
Redirect($pagename);
exit;
}
示例4: BlocklistDownload
function BlocklistDownload($pagename, $dir = '') {
global $BlocklistDownloadFmt, $BlocklistDownload, $FmtV;
if ($dir) { flush(); chdir($dir); }
SDV($BlocklistDownloadFmt, "
[@
## blocklist-note: NOTE: This page is automatically generated by blocklist.php
## blocklist-note: NOTE: Any edits to this page may be lost!
## blocklist-url: \$BlocklistDownloadUrl
## blocklist-when: \$CurrentTimeISO
# blocklist-format: \$BlocklistFormat
\$BlocklistData
@]
");
## get the existing blocklist page
$bd = &$BlocklistDownload[$pagename];
$page = ReadPage($pagename, READPAGE_CURRENT);
## try to retrieve the remote data
$blocklistdata = @file($bd['url']);
## if we didn't get it, and we don't already have text, save a
## note in the page so we know what happened
if (!$blocklistdata && !@$page['text']) {
$auf = ini_get('allow_url_fopen');
$blocklistdata = "#### Unable to download blocklist (allow_url_fopen=$auf)";
}
## if we have some new text to save, let's format it and save it
if ($blocklistdata) {
$blocklistdata = implode('', (array)$blocklistdata);
$blocklistdata = preg_replace('/^##blocklist.*/m', '', $blocklistdata);
$FmtV['$BlocklistData'] = $blocklistdata;
$FmtV['$BlocklistDownloadUrl'] = $bd['url'];
$FmtV['$BlocklistFormat'] = $bd['format'];
$page['text'] = FmtPageName($BlocklistDownloadFmt, $pagename);
SDV($page['passwdread'], '@lock');
}
## save our updated(?) blocklist page
WritePage($pagename, $page);
}
示例5: HandleUpgrade
function HandleUpgrade($pagename, $auth = 'ALWAYS') {
global $SiteGroup, $SiteAdminGroup, $StatusPageName, $ScriptUrl,
$AuthUserPageFmt, $VersionNum, $Version;
StopWatch('HandleUpgrade: begin');
$message = '';
$done = '';
## check for Site.* --> SiteAdmin.*
foreach(array('AuthUser', 'NotifyList', 'Blocklist', 'ApprovedUrls') as $n) {
$n0 = "$SiteGroup.$n"; $n1 = "$SiteAdminGroup.$n";
StopWatch("HandleUpgrade: checking $n0 -> $n1");
## checking AuthUser is special, because Site.AuthUser comes with the
## distribution.
if ($n == 'AuthUser') {
## if we already have a user-modified SiteAdmin.AuthUser, we can skip
SDV($AuthUserPageFmt, '$SiteAdminGroup.AuthUser');
$n1 = FmtPageName($AuthUserPageFmt, $pagename);
$page = ReadPage($n1, READPAGE_CURRENT);
if (@$page['time'] > 1000000000) continue;
## if there's not a user-modified Site.AuthUser, we can skip
$page = ReadPage($n0, READPAGE_CURRENT);
if (@$page['time'] == 1000000000) continue;
} else if (!PageExists($n0) || PageExists($n1)) continue;
if (@$_REQUEST['migrate'] == 'yes') {
## if the admin wants PmWiki to migrate, do it.
$page = RetrieveAuthPage($n0, 'admin', true);
StopWatch("HandleUpgrade: copying $n0 -> $n1");
if ($page) {
WritePage($n1, $page);
$done .= "<li>Copied $n0 to $n1</li>";
continue;
}
}
$message .= "<li>$n0 -> $n1</li>";
}
if ($message) {
$migrateurl = "$ScriptUrl?action=upgrade&migrate=yes";
$infourl = 'http://www.pmwiki.org/wiki/PmWiki/UpgradeToSiteAdmin';
$message =
"<h2>Upgrade notice -- SiteAdmin group</h2>
<p>This version of PmWiki expects several administrative pages
from the <em>Site</em> group to be found in a new <em>SiteAdmin</em> group.
On this site, the following pages appear to need to be relocated:</p>
<ul>$message</ul>
<p>For more information about this change, including the various
options for proceeding, see</p>
<blockquote><a target='_blank' href='$infourl'>$infourl</a></blockquote>
<form action='$ScriptUrl' method='post'>
<p>If you would like PmWiki to attempt to automatically copy
these pages into their new <br /> locations for you, try
<input type='hidden' name='action' value='upgrade' />
<input type='hidden' name='migrate' value='yes' />
<input type='submit' value='Relocate pages listed above' />
(admin password required) </p>
</form>
<p>If you want to configure PmWiki so that it continues to
look for the above pages in <em>$SiteGroup</em>, add the
following line near the top of <em>local/config.php</em>:</p>
<blockquote><pre>\$SiteAdminGroup = \$SiteGroup;</pre></blockquote>
$Version
";
print $message;
exit;
}
StopWatch("UpgradeCheck: writing $StatusPageName");
Lock(2);
SDV($StatusPageName, "$SiteAdminGroup.Status");
$page = ReadPage($StatusPageName);
$page['updatedto'] = $VersionNum;
WritePage($StatusPageName, $page);
if ($done) {
$done .= "<li>Updated $StatusPageName</li>";
echo "<h2>Upgrade to $Version ... ok</h2><ul>$done</ul>";
$GLOBALS['EnableRedirect'] = 0;
}
Redirect($pagename);
}
示例6: HandlePostAttr
function HandlePostAttr($pagename)
{
global $PageAttributes, $EnablePostAttrClearSession;
Lock(2);
$page = RetrieveAuthPage($pagename, 'attr', true, READPAGE_CURRENT);
if (!$page) {
Abort("?unable to read {$pagename}");
}
foreach ($PageAttributes as $attr => $p) {
$v = @$_POST[$attr];
if ($v == '') {
continue;
}
if ($v == 'clear') {
unset($page[$attr]);
} else {
if (strncmp($attr, 'passwd', 6) != 0) {
$page[$attr] = $v;
} else {
$a = array();
foreach (preg_split('/\\s+/', $v, -1, PREG_SPLIT_NO_EMPTY) as $pw) {
$a[] = preg_match('/^\\w+:/', $pw) ? $pw : crypt($pw);
}
if ($a) {
$page[$attr] = implode(' ', $a);
}
}
}
}
WritePage($pagename, $page);
Lock(0);
if (IsEnabled($EnablePostAttrClearSession, 1)) {
@session_start();
unset($_SESSION['authid']);
$_SESSION['authpw'] = array();
}
Redirect($pagename);
exit;
}
示例7: HandlePostAttr
function HandlePostAttr($pagename)
{
global $PageAttributes, $EnablePostAttrClearSession;
$page = RetrieveAuthPage($pagename, 'attr');
if (!$page) {
Abort("?unable to read {$pagename}");
}
foreach ($PageAttributes as $attr => $p) {
$newpw = @$_POST[$attr];
if ($newpw == 'clear') {
unset($page[$attr]);
} else {
if ($newpw > '') {
$page[$attr] = crypt($newpw);
}
}
}
WritePage($pagename, $page);
if (IsEnabled($EnablePostAttrClearSession, 1)) {
$_SESSION['authpw'] = array();
}
Redirect($pagename);
exit;
}
示例8: SDV
if ($autogroup || in_array($pmGroup, $pmGallery['virtualgroups'])) {
// prevent "Page not found..." error message showing up in pmGallery groups
//PageNotFound file doesn't need to exist!
SDV($GLOBALS['DefaultPageTextFmt'], '(:include {$Group}.pmPageNotFound:)');
if ($autogroup) {
$n = $pmGroup . '.GroupFooter';
if (!PageExists($n) && $n != $GLOBALS['pagename']) {
## Add a custom page storage location
$GLOBALS['PageStorePath'] = dirname(__FILE__) . "/wikilib.d/{\$FullName}";
$where = count($GLOBALS['WikiLibDirs']);
if ($where > 1) {
$where--;
}
array_splice($GLOBALS['WikiLibDirs'], $where, 0, array(new PageStore($GLOBALS['PageStorePath'])));
// if there is no footer for this group then copy the default over.
WritePage($n, ReadPage('PmGallery.GroupFooter'));
}
}
}
$pmGallery['virtualgroups'][0] = trim($pmGallery['virtualgroups'][0], '+');
}
/**
* Main routine called from markup within wiki pages
*/
function pmGallery($args)
{
$o = array('album' => '', 'wikitarget' => '', 'startimg' => '', 'tag' => '', 'random' => '', 'width' => '', 'height' => '', 'imageurl' => '', 'query' => '', 'user' => '', 'thumbsize' => '', 'imagesize' => '', 'maxresults' => '', 'wrapper' => 'ul > li', 'mode' => '', 'provider' => 'picasa', 'exif' => false, 'urlbase' => 'com', 'proxy' => '', 'authkey' => '', 'debug' => false, 'cachedir' => '', 'cachelife' => '7200');
$o = array_merge($o, $GLOBALS['pmGallery']);
// Allows the markup to be used in an (:include user="{$$user}":) where {$$user} might be blank, and thus passed to this routine as {$$user}.
$o = array_merge($o, preg_grep('/(\\{\\$\\$.*\\}|^$)/', ParseArgs($args), PREG_GREP_INVERT));
#find all elements NOT like {$$user} or empty
示例9: ConvertV1WikiD
function ConvertV1WikiD($path) {
global $WikiDir;
Lock(2);
if (!is_dir($path)) {
Abort("?$path is not an accessible directory");
exit();
}
$WikiV1Dir = new PageStore1x("$path/\$FullName");
$oldlist = $WikiV1Dir->ls();
$newlist = ListPages();
$bothlist = array_intersect($oldlist,$newlist); sort($bothlist);
$difflist = array_diff($oldlist,$newlist); sort($difflist);
$bcount = count($bothlist);
$dcount = count($difflist);
echo "
<html>
<head>
<title>Convert v1 pages to v2</title>
</head>
<body>
<h2>Convert and Copy PmWiki v1.x pages into v2.x</h2>
";
$copy = array();
if (@$_POST['copydiff']) $copy = $difflist;
if (@$_POST['copyboth']) $copy = array_merge($copy,$bothlist);
if (@$_POST['copy']) $copy = array_merge($copy,$_POST['copy']);
if (@$copy) {
echo "<p>Okay, I'm now converting the pages you've requested.
When this is finished, you can see if anything else needs to
be converted, otherwise you can get rid of the
<tt>include_once('scripts/compat1x.php');</tt> and
<tt>ConvertV1WikiD()</tt> lines that are in your
local/config.php file.</p>";
$copy = array_unique($copy);
foreach($copy as $p) {
echo "<li>Converting $p</li>\n";
$page = $WikiV1Dir->read($p);
WritePage($p,$page);
}
echo "<p>Converted ", count($copy), " pages.</p>\n";
} else {
echo "
<p>This function will migrate pages from a 1.x wiki.d/ directory ($path)
into your 2.x wiki.d/ directory, converting markups as it proceeds.
Note that the files in your 1.x wiki.d/ directory are not affected
by this script, so if the conversion doesn't work out for any reason
you still have your original pages lying around.</p>
";
}
/* now rebuild the lists */
$oldlist = $WikiV1Dir->ls();
$newlist = ListPages();
$bothlist = array_intersect($oldlist,$newlist); sort($bothlist);
$difflist = array_diff($oldlist,$newlist); sort($difflist);
$bcount = count($bothlist);
$dcount = count($difflist);
echo " <form method='post'> ";
echo "<h3>Migrate pages from v1 to v2 (don't overwrite existing
v2 pages)</h3>";
if ($difflist) {
echo "
<p>The following $dcount pages exist only in the version 1
wiki.d/ directory. </p>
<dd><input type='submit' name='copydiff' value='Copy and convert all
pages that do not already exist' /></dd>
<p>or</p><dd><input type='submit' name='copyindv' value='Copy and convert
pages checked in the list below' /><p></p></dd>
";
foreach($difflist as $p)
echo "<dd><input type='checkbox' name='copy[]' value='$p' /> $p</dd>\n";
} else {
echo "<p>There aren't any pages in your version 1 wiki.d/ directory that
are not already in your version 2 directory.</p>";
}
echo "<h3>Migrate pages from v1 to v2 (overwrite existing v2 pages)</h3>
<p>The following $bcount pages exist in <em>both</em> the version 1 and
version 2 wiki.d/ directories. If you use one of the buttons below,
then your converted version 1 pages will <em>overwrite</em> the existing
version 2 pages, and you will lose any edits that you might have made
in the version 2 installation (it's possible that
this is what you want).</p>
<dd><input type='submit' name='copyboth' value='Convert and overwrite
pages that do already exist' /></dd>
<p>or</p><dd><input type='submit' name='copyindv' value='Convert and
overwrite pages checked in the list below' /><p></p></dd>
";
foreach($bothlist as $p)
echo "<dd><input type='checkbox' name='copy[]' value='$p' /> $p</dd>\n";
echo "</form></body></html>\n";
exit();
//.........这里部分代码省略.........
示例10: ConvertXML
function ConvertXML()
{
global $WikiDir;
global $EnablePageStoreXML;
$pagelist = $WikiDir->ls();
$pagelist = array_unique($pagelist);
sort($pagelist);
$pagecount = count($pagelist);
echo "\n <html>\n <head>\n <title>Convert pages from/to XML</title>\n </head>\n <body>\n <h2>Convert existing pages</h2>\n <p>I'm now converting ";
echo $EnablePageStoreXML ? "<b>to</b> " : "<b>from</b> ";
echo "XML the files (pages) you have stored in your wiki. When this is finished\n you can get rid of the <tt>ConvertXML();</tt> line in your\n local/config.php</p>";
if ($pagelist) {
foreach ($pagelist as $p) {
echo $EnablePageStoreXML ? "<li>Converting to XML: {$p}</li>\n" : "<li>Converting from XML: {$p}</li>\n";
$page = ReadPage($p);
WritePage($p, $page);
}
}
echo "<p>Converted {$pagecount} pages.</p>\n";
echo "<p>Now you can get rid of the <tt>ConvertXML();</tt> line in your local/config.php</p>\n </body></html>\n";
exit(0);
}
示例11: WritePage
<?php
/* $GLOBALS in php is an associative array that contains references to all variables which are currently defined in the global
scope of the script */
function WritePage($pagetitle, $description, $pageheading, $forwardlink = "", $backlink = "")
{
/*not all pages need forward and back links, therefore a default value of blank is assigned so the function can be called without these two arguements */
$GLOBALS["forwardlink"] = "{$forwardlink}";
/* assigns the global variable forwardlink to the arguement passed into $forwardlink in the function WritePage */
$GLOBALS["backlink"] = "{$backlink}";
echo "<br>" . "<br>" . $pagetitle . "<br>" . $description . "<br>" . $pageheading . "<br>" . $GLOBALS["forwardlink"] . "<br>" . $GLOBALS["backlink"];
}
WritePage("Page Title - PHP Globals", "A page description for PHP Globals goes here.", "PHP Globals - Example", "/link/somplace/forward/", "/link/someplace/back/");
function PrevNext($back, $forward)
{
echo "<a href=" . $back . ">Back</a>";
echo "<a href=" . $forward . ">Forward</a>";
}
?>
<div id="center">
<?php
PrevNext($GLOBALS["backlink"], $GLOBALS["forwardlink"]);
?>
</div>
示例12: HandleAnalyze
function HandleAnalyze($pagename, $auth = 'read')
{
global $AnalyzeKey, $AnalyzeSkip, $EnableAnalyzeSave, $RecipeInfo;
header('Content-type: text/plain');
if (!$AnalyzeKey) {
print "NoKey=1\n";
exit(0);
}
if ($_REQUEST['key'] != $AnalyzeKey) {
print "InvalidKey=1\n";
exit(0);
}
WritePage('Site.Analyze', array('text' => 'Test Analysis page', 'passwdread' => '@lock'));
echo 'AnalyzeVersion=', $RecipeInfo['PmWiki:SiteAnalyzer']['Version'], "\n";
SDV($EnableAnalyzeSave, 0);
$vars = array('EnableAnalyzeSave', 'VersionNum', 'Version', 'ScriptUrl', 'PubDirUrl', 'FarmD', 'WorkDir', 'EnableDiag');
foreach ($vars as $k) {
$v = @$GLOBALS[$k];
echo "{$k}={$v}\n";
}
echo 'AnalyzeSkip=', join(',', (array) $AnalyzeSkip), "\n";
$conf = array('register_globals', 'post_max_size', 'safe_mode', 'safe_mode_gid', 'upload_max_filesize');
foreach ($conf as $v) {
echo "{$v}=", ini_get($v), "\n";
}
$fn = array('phpversion', 'session_save_path', 'get_magic_quotes_gpc', 'get_magic_quotes_runtime');
foreach ($fn as $f) {
echo "{$f}=" . $f() . "\n";
}
$session = array('SERVER_SOFTWARE', 'PHP_SELF', 'REQUEST_URI', 'SCRIPT_NAME');
foreach ($session as $s) {
echo "{$s}={$_SERVER[$s]}\n";
}
global $FarmD, $LocalDir, $WorkDir, $UploadDir;
$files = array('farmd' => $FarmD, 'cwd' => getcwd(), 'local' => $LocalDir, 'workdir' => $WorkDir, 'uploads' => $UploadDir, 'cookbook' => 'cookbook', 'scripts' => "{$FarmD}/scripts", 'cookbook_farm' => "{$FarmD}/cookbook");
foreach ($files as $f => $v) {
if (!file_exists($v)) {
continue;
}
$owner = @fileowner($v);
$group = @filegroup($v);
$perms = sprintf("%o", @fileperms($v));
echo "{$f}={$owner}:{$group}:{$perms}:{$v}\n";
}
$dir = 'cookbook';
$dfp = @opendir($dir);
if ($dfp) {
$cookbookfiles = array();
while (($name = readdir($dfp)) !== false) {
if ($name[0] == '.') {
continue;
}
$cookbookfiles[] = $name;
$text = implode('', @file("{$dir}/{$name}"));
if (preg_match("/^\\s*\\\$RecipeInfo\\['(.*?)'\\]\\['Version'\\]\\s*=\\s*'(.*?)'\\s*;/m", $text, $match)) {
SDV($RecipeInfo[$match[1]]['Version'], $match[2]);
}
if (preg_match("/^\\s*SDV\\(\\s*\\\$RecipeInfo\\['(.*?)'\\]\\['Version'\\]\\s*,\\s*'(.*?)'\\s*\\)\\s*\\;/m", $text, $match)) {
SDV($RecipeInfo[$match[1]]['Version'], $match[2]);
}
}
closedir($dfp);
echo "CookbookFiles=", implode(' ', $cookbookfiles), "\n";
}
if (@$RecipeInfo) {
echo "RecipeInfo=" . count($RecipeInfo) . "\n";
}
foreach ((array) $RecipeInfo as $r => $v) {
if ($v['Version']) {
echo "RecipeInfo[{$r}]={$v['Version']}\n";
}
}
exit(0);
}