本文整理匯總了PHP中SDV函數的典型用法代碼示例。如果您正苦於以下問題:PHP SDV函數的具體用法?PHP SDV怎麽用?PHP SDV使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了SDV函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: Merge
function Merge($newtext,$oldtext,$pagetext) {
global $WorkDir,$SysMergeCmd, $SysMergePassthru;
SDV($SysMergeCmd,"/usr/bin/diff3 -L '' -L '' -L '' -m -E");
if (substr($newtext,-1,1)!="\n") $newtext.="\n";
if (substr($oldtext,-1,1)!="\n") $oldtext.="\n";
if (substr($pagetext,-1,1)!="\n") $pagetext.="\n";
$tempnew = tempnam($WorkDir,"new");
$tempold = tempnam($WorkDir,"old");
$temppag = tempnam($WorkDir,"page");
if ($newfp=fopen($tempnew,'w')) { fputs($newfp,$newtext); fclose($newfp); }
if ($oldfp=fopen($tempold,'w')) { fputs($oldfp,$oldtext); fclose($oldfp); }
if ($pagfp=fopen($temppag,'w')) { fputs($pagfp,$pagetext); fclose($pagfp); }
$mergetext = '';
if (IsEnabled($SysMergePassthru, 0)) {
ob_start();
passthru("$SysMergeCmd $tempnew $tempold $temppag");
$mergetext = ob_get_clean();
}
else {
$merge_handle = popen("$SysMergeCmd $tempnew $tempold $temppag",'r');
if ($merge_handle) {
while (!feof($merge_handle)) $mergetext .= fread($merge_handle,4096);
pclose($merge_handle);
}
}
@unlink($tempnew); @unlink($tempold); @unlink($temppag);
return $mergetext;
}
示例2: LoadPageTemplate
function LoadPageTemplate($pagename, $tfilefmt)
{
global $PageStartFmt, $PageEndFmt, $BasicLayoutVars, $HTMLHeaderFmt;
SDV($BasicLayoutVars, array('HeaderText', 'PageHeaderFmt', 'PageLeftFmt', 'PageTitleFmt', 'PageText', 'PageRightFmt', 'PageFooterFmt'));
$k = implode('', file(FmtPageName($tfilefmt, $pagename)));
$sect = preg_split('#[[<]!--(/?Page[A-Za-z]+Fmt|PageText|HeaderText)--[]>]#', $k, 0, PREG_SPLIT_DELIM_CAPTURE);
$PageStartFmt = array_merge(array('headers:'), preg_split('/[[<]!--((?:wiki|file|function|markup):.*?)--[]>]/s', array_shift($sect), 0, PREG_SPLIT_DELIM_CAPTURE));
$PageEndFmt = array();
$ps = 'PageStartFmt';
while (count($sect) > 0) {
$k = array_shift($sect);
$v = preg_split('/[[<]!--((?:wiki|file|function|markup):.*?)--[]>]/', array_shift($sect), 0, PREG_SPLIT_DELIM_CAPTURE);
if (substr($k, 0, 1) == '/') {
$GLOBALS[$ps][] = "<!--{$k}-->";
$GLOBALS[$ps][] = count($v) > 1 ? $v : $v[0];
continue;
}
$GLOBALS[$k] = count($v) > 1 ? $v : $v[0];
if (in_array($k, $BasicLayoutVars)) {
$GLOBALS[$ps][] = "<!--{$k}-->";
if ($k == 'PageText') {
$ps = 'PageEndFmt';
}
if ($k == 'HeaderText') {
$GLOBALS[$ps][] =& $HTMLHeaderFmt;
}
$GLOBALS[$ps][] =& $GLOBALS[$k];
}
}
array_push($PageStartFmt, "\n<div id='wikitext'>\n");
array_unshift($PageEndFmt, '</div>');
}
示例3: FPLByGroup
function FPLByGroup($pagename, &$matches, $opt)
{
global $FPLByGroupStartFmt, $FPLByGroupEndFmt, $FPLByGroupGFmt, $FPLByGroupIFmt, $FPLByGroupOpt;
SDV($FPLByGroupStartFmt, "<dl class='fplbygroup'>");
SDV($FPLByGroupEndFmt, '</dl>');
SDV($FPLByGroupGFmt, "<dt><a href='\$ScriptUrl/\$Group'>\$Group</a> /</dt>\n");
SDV($FPLByGroupIFmt, "<dd><a href='\$PageUrl'>\$Name</a></dd>\n");
SDVA($FPLByGroupOpt, array('readf' => 0, 'order' => 'name'));
$matches = MakePageList($pagename, array_merge((array) $FPLByGroupOpt, $opt), 0);
if (@$opt['count']) {
array_splice($matches, $opt['count']);
}
if (count($matches) < 1) {
return '';
}
$out = '';
foreach ($matches as $pn) {
$pgroup = FmtPageName($FPLByGroupGFmt, $pn);
if ($pgroup != @$lgroup) {
$out .= $pgroup;
$lgroup = $pgroup;
}
$out .= FmtPageName($FPLByGroupIFmt, $pn);
}
return FmtPageName($FPLByGroupStartFmt, $pagename) . $out . FmtPageName($FPLByGroupEndFmt, $pagename);
}
示例4: EditDraft
function EditDraft(&$pagename, &$page, &$new)
{
global $WikiDir, $DraftSuffix, $DeleteKeyPattern, $EnableDraftAtomicDiff, $DraftRecentChangesFmt, $RecentChangesFmt, $Now;
SDV($DeleteKeyPattern, "^\\s*delete\\s*\$");
$basename = preg_replace("/{$DraftSuffix}\$/", '', $pagename);
$draftname = $basename . $DraftSuffix;
if ($_POST['postdraft'] || $_POST['postedit']) {
$pagename = $draftname;
} else {
if ($_POST['post'] && !preg_match("/{$DeleteKeyPattern}/", $new['text'])) {
$pagename = $basename;
if (IsEnabled($EnableDraftAtomicDiff, 0)) {
$page = ReadPage($basename);
foreach ($new as $k => $v) {
# delete draft history
if (preg_match('/:\\d+(:\\d+:)?$/', $k) && !preg_match("/:{$Now}(:\\d+:)?\$/", $k)) {
unset($new[$k]);
}
}
unset($new['rev']);
SDVA($new, $page);
}
$WikiDir->delete($draftname);
} else {
if (PageExists($draftname) && $pagename != $draftname) {
Redirect($draftname, '$PageUrl?action=edit');
exit;
}
}
}
if ($pagename == $draftname && isset($DraftRecentChangesFmt)) {
$RecentChangesFmt = $DraftRecentChangesFmt;
}
}
示例5: AuthUserId
function AuthUserId($pagename, $id, $pw = NULL)
{
global $AuthUser, $AuthUserPageFmt, $AuthUserFunctions, $AuthId, $AuthList, $MessagesFmt;
$auth = $AuthUser;
$authid = '';
# load information from Site.AuthUser (or page in $AuthUserPageFmt)
SDV($AuthUserPageFmt, '$SiteGroup.AuthUser');
SDVA($AuthUserFunctions, array('htpasswd' => 'AuthUserHtPasswd', 'ldap' => 'AuthUserLDAP', $id => 'AuthUserConfig'));
$pn = FmtPageName($AuthUserPageFmt, $pagename);
$apage = ReadPage($pn, READPAGE_CURRENT);
if ($apage && preg_match_all("/\n\\s*([@\\w][^\\s:]*):(.*)/", $apage['text'], $matches, PREG_SET_ORDER)) {
foreach ($matches as $m) {
if (!preg_match_all('/\\bldap:\\S+|[^\\s,]+/', $m[2], $v)) {
continue;
}
if ($m[1][0] == '@') {
foreach ($v[0] as $g) {
$auth[$g][] = $m[1];
}
} else {
$auth[$m[1]] = array_merge((array) @$auth[$m[1]], $v[0]);
}
}
}
if (is_null($pw)) {
$authid = $id;
} else {
foreach ($AuthUserFunctions as $k => $fn) {
if ($auth[$k] && $fn($pagename, $id, $pw, $auth[$k])) {
$authid = $id;
break;
}
}
}
if (!$authid) {
$GLOBALS['InvalidLogin'] = 1;
return;
}
if (!isset($AuthId)) {
$AuthId = $authid;
}
@session_start();
$_SESSION['authid'] = $authid;
$_SESSION['authlist']["id:{$authid}"] = 1;
$_SESSION['authlist']["id:-{$authid}"] = -1;
$_SESSION['authlist']["id:*"] = 1;
foreach ((array) @$auth[$authid] as $g) {
if ($g[0] == '@') {
@($_SESSION['authlist'][$g] = 1);
}
}
foreach ((array) @$auth['*'] as $g) {
if ($g[0] == '@') {
@($_SESSION['authlist'][$g] = 1);
}
}
$AuthList = array_merge($AuthList, $_SESSION['authlist']);
}
示例6: HTTPBasicAuth
function HTTPBasicAuth($pagename, $level, $authprompt = true)
{
global $AuthRealmFmt, $AuthDeniedFmt, $DefaultPasswords, $AllowPassword, $GroupAttributesFmt;
SDV($GroupAttributesFmt, '$Group/GroupAttributes');
SDV($AllowPassword, 'nopass');
SDV($AuthRealmFmt, $GLOBALS['WikiTitle']);
SDV($AuthDeniedFmt, 'A valid password is required to access this feature.');
$page = ReadPage($pagename);
if (!$page) {
return false;
}
$passwd = @$page["passwd{$level}"];
if ($passwd == "") {
$grouppg = ReadPage(FmtPageName($GroupAttributesFmt, $pagename));
$passwd = @$grouppg["passwd{$level}"];
if ($passwd == '') {
$passwd = @$DefaultPasswords[$level];
}
if ($passwd == '') {
$passwd = @$page["passwdread"];
}
if ($passwd == '') {
$passwd = @$grouppg["passwdread"];
}
if ($passwd == '') {
$passwd = @$DefaultPasswords['read'];
}
}
if ($passwd == '') {
return $page;
}
if (crypt($AllowPassword, $passwd) == $passwd) {
return $page;
}
@session_start();
if (@$_SERVER['PHP_AUTH_PW']) {
@$_SESSION['authpw'][$_SERVER['PHP_AUTH_PW']]++;
}
$authpw = array_keys((array) @$_SESSION['authpw']);
foreach (array_merge((array) $DefaultPasswords['admin'], (array) $passwd) as $pwchal) {
foreach ($authpw as $pwresp) {
if (@crypt($pwresp, $pwchal) == $pwchal) {
return $page;
}
}
}
if (!$authprompt) {
return false;
}
$realm = FmtPageName($AuthRealmFmt, $pagename);
header("WWW-Authenticate: Basic realm=\"{$realm}\"");
header("Status: 401 Unauthorized");
header("HTTP-Status: 401 Unauthorized");
PrintFmt($pagename, $AuthDeniedFmt);
exit;
}
示例7: AuthUserId
function AuthUserId($pagename, $id, $pw=NULL) {
global $AuthUser, $AuthUserPageFmt, $AuthUserFunctions,
$AuthId, $MessagesFmt, $AuthUserPat;
$auth = array();
foreach((array)$AuthUser as $k=>$v) $auth[$k] = (array)$v;
$authid = '';
# load information from SiteAdmin.AuthUser (or page in $AuthUserPageFmt)
SDV($AuthUserPageFmt, '$SiteAdminGroup.AuthUser');
SDVA($AuthUserFunctions, array(
'htpasswd' => 'AuthUserHtPasswd',
'ldap' => 'AuthUserLDAP',
# 'mysql' => 'AuthUserMySQL',
$id => 'AuthUserConfig'));
SDV($AuthUserPat, "/^\\s*([@\\w][^\\s:]*):(.*)/m");
$pn = FmtPageName($AuthUserPageFmt, $pagename);
$apage = ReadPage($pn, READPAGE_CURRENT);
if ($apage && preg_match_all($AuthUserPat,
$apage['text'], $matches, PREG_SET_ORDER)) {
foreach($matches as $m) {
if (!preg_match_all('/\\bldaps?:\\S+|[^\\s,]+/', $m[2], $v))
continue;
if ($m[1]{0} == '@')
foreach($v[0] as $g) $auth[$g][] = $m[1];
else $auth[$m[1]] = array_merge((array)@$auth[$m[1]], $v[0]);
}
}
if (func_num_args()==2) $authid = $id;
else
foreach($AuthUserFunctions as $k => $fn)
if (@$auth[$k] && $fn($pagename, $id, $pw, $auth[$k], $authlist))
{ $authid = $id; break; }
if (!$authid) { $GLOBALS['InvalidLogin'] = 1; return; }
if (!isset($AuthId)) $AuthId = $authid;
$authlist["id:$authid"] = 1;
$authlist["id:-$authid"] = -1;
foreach(preg_grep('/^@/', (array)@$auth[$authid]) as $g)
$authlist[$g] = 1;
foreach(preg_grep('/^@/', (array)@$auth['*']) as $g)
$authlist[$g] = 1;
foreach(preg_grep('/^@/', array_keys($auth)) as $g) # useless? PITS:01201
if (in_array($authid, $auth[$g])) $authlist[$g] = 1;
if ($auth['htgroup']) {
foreach(AuthUserHtGroup($pagename, $id, $pw, $auth['htgroup']) as $g)
$authlist["@$g"] = 1;
}
foreach(preg_grep('/^@/', (array)@$auth["-$authid"]) as $g)
unset($authlist[$g]);
SessionAuth($pagename, array('authid' => $authid, 'authlist' => $authlist));
}
示例8: VarLink
function VarLink($pagename,$tgt,$txt) {
global $VarIndex,$FmtV,$VarLinkMissingFmt,$VarLinkExistsFmt;
SDV($VarLinkMissingFmt,'$LinkText');
SDV($VarLinkExistsFmt,"<a class='varlink' href='\$LinkUrl'><code class='varlink'>\$LinkText</code></a>");
VarIndexLoad($pagename);
$FmtV['$LinkText'] = str_replace('$', '$', $txt);
$FmtV['$LinkUrl'] = @$VarIndex[$tgt]['url'];
if (@!$VarIndex[$tgt]['url'])
return FmtPageName($VarLinkMissingFmt,$pagename);
return FmtPageName($VarLinkExistsFmt,$pagename);
}
示例9: HTTPBasicAuthPrompt
function HTTPBasicAuthPrompt($pagename)
{
global $AuthRealmFmt, $AuthDeniedFmt;
SDV($AuthRealmFmt, $GLOBALS['WikiTitle']);
SDV($AuthDeniedFmt, 'A valid password is required to access this feature.');
$realm = FmtPageName($AuthRealmFmt, $pagename);
header("WWW-Authenticate: Basic realm=\"{$realm}\"");
header("Status: 401 Unauthorized");
header("HTTP-Status: 401 Unauthorized");
PrintFmt($pagename, $AuthDeniedFmt);
exit;
}
示例10: MergeSimulEdits
function MergeSimulEdits($pagename, &$page, &$new)
{
global $MessagesFmt, $WorkDir, $SysMergeCmd;
SDV($SysMergeCmd, "/usr/bin/diff3 -L '' -L '' -L '' -m -E");
if (@(!$_POST['basetime']) || !PageExists($pagename) || $_POST['basetime'] >= $page['time']) {
return;
}
unset($_POST['post']);
$MessagesFmt[] = "<p class='editconflict'>The page you are \n editing has been modified since you started editing it. \n The modifications have been merged into the text below,\n you may want to verify the results of the merge before\n pressing save. Conflicts the system couldn't resolve are\n bracketed by <<<<<<< and \n >>>>>>>. (<a target='_blank' \n href='\$PageUrl?action=diff'>View changes</a>)</p>\n";
$old = array();
RestorePage($pagename, $page, $old, "diff:{$_POST['basetime']}");
$new['text'] = Merge($new['text'], $old['text'], $page['text']);
}
示例11: dg_SetLogoHeightWidth
function dg_SetLogoHeightWidth($wPad, $hPad = 0)
{
global $PageLogoUrl, $PageLogoUrlHeight, $PageLogoUrlWidth;
if (!isset($PageLogoUrlWidth) || !isset($PageLogoUrlHeight)) {
$size = @getimagesize($PageLogoUrl);
if (!isset($PageLogoUrlWidth)) {
SDV($PageLogoUrlWidth, ($size ? $size[0] + $wPad : 0) . 'px');
}
if (!isset($PageLogoUrlHeight)) {
SDV($PageLogoUrlHeight, ($size ? $size[1] + $hPad : 0) . 'px');
}
}
}
示例12: VarLink
function VarLink($pagename, $tgt, $txt)
{
global $VarIndex, $FmtV, $VarLinkMissingFmt, $VarLinkExistsFmt;
SDV($VarLinkMissingFmt, '$LinkText');
SDV($VarLinkExistsFmt, "<a class='varlink' href='\$LinkUrl'><code class='varlink'>\$LinkText</code></a>");
VarIndexLoad($pagename);
$FmtV = array();
$FmtV['$LinkText'] = $txt;
$FmtV['$LinkUrl'] = @$VarIndex[$tgt]['url'];
if (@(!$VarIndex[$tgt]['url'])) {
return FmtPageName($VarLinkMissingFmt, $pagename);
}
return FmtPageName($VarLinkExistsFmt, $pagename);
}
示例13: HandleUpload
function HandleUpload($pagename)
{
global $FmtV, $UploadExtMax, $HandleUploadFmt, $PageStartFmt, $PageEndFmt, $PageUploadFmt;
$page = RetrieveAuthPage($pagename, 'upload');
if (!$page) {
Abort("?cannot upload to {$pagename}");
}
SetPage($pagename, $page);
$FmtV['$UploadName'] = MakeUploadName($pagename, @$_REQUEST['upname']);
$upresult = @$_REQUEST['upresult'];
$FmtV['$upext'] = @$_REQUEST['upext'];
$FmtV['$upmax'] = @$_REQUEST['upmax'];
$FmtV['$UploadResult'] = $upresult ? FmtPageName("<i>\$UploadName</i>: \$[UL{$upresult}]", $pagename) : '';
SDV($HandleUploadFmt, array(&$PageStartFmt, &$PageUploadFmt, &$PageEndFmt));
PrintFmt($pagename, $HandleUploadFmt);
}
示例14: EditDraft
function EditDraft(&$pagename, &$page, &$new) {
global $WikiDir, $DraftSuffix, $DeleteKeyPattern,
$DraftRecentChangesFmt, $RecentChangesFmt;
SDV($DeleteKeyPattern, "^\\s*delete\\s*$");
$basename = preg_replace("/$DraftSuffix\$/", '', $pagename);
$draftname = $basename . $DraftSuffix;
if ($_POST['postdraft'] || $_POST['postedit']) $pagename = $draftname;
else if ($_POST['post'] && !preg_match("/$DeleteKeyPattern/", $new['text'])) {
$pagename = $basename;
# $page = ReadPage($basename); # breaks restores, PITS:01007, Test:DraftRestore
$WikiDir->delete($draftname);
}
else if (PageExists($draftname) && $pagename != $draftname)
{ Redirect($draftname, '$PageUrl?action=edit'); exit(); }
if ($pagename == $draftname && isset($DraftRecentChangesFmt))
$RecentChangesFmt = $DraftRecentChangesFmt;
}
示例15: Merge
function Merge($newtext, $oldtext, $pagetext)
{
global $WorkDir, $SysMergeCmd;
SDV($SysMergeCmd, "/usr/bin/diff3 -L '' -L '' -L '' -m -E");
if (substr($newtext, -1, 1) != "\n") {
$newtext .= "\n";
}
if (substr($oldtext, -1, 1) != "\n") {
$oldtext .= "\n";
}
if (substr($pagetext, -1, 1) != "\n") {
$pagetext .= "\n";
}
$tempnew = tempnam($WorkDir, "new");
$tempold = tempnam($WorkDir, "old");
$temppag = tempnam($WorkDir, "page");
if ($newfp = fopen($tempnew, 'w')) {
fputs($newfp, $newtext);
fclose($newfp);
}
if ($oldfp = fopen($tempold, 'w')) {
fputs($oldfp, $oldtext);
fclose($oldfp);
}
if ($pagfp = fopen($temppag, 'w')) {
fputs($pagfp, $pagetext);
fclose($pagfp);
}
$mergetext = '';
$merge_handle = popen("{$SysMergeCmd} {$tempnew} {$tempold} {$temppag}", 'r');
if ($merge_handle) {
while (!feof($merge_handle)) {
$mergetext .= fread($merge_handle, 4096);
}
pclose($merge_handle);
}
@unlink($tempnew);
@unlink($tempold);
@unlink($temppag);
return $mergetext;
}