本文整理汇总了PHP中utils::encodeRequest方法的典型用法代码示例。如果您正苦于以下问题:PHP utils::encodeRequest方法的具体用法?PHP utils::encodeRequest怎么用?PHP utils::encodeRequest使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类utils
的用法示例。
在下文中一共展示了utils::encodeRequest方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testCreatePush
public function testCreatePush()
{
$this->assertTrue($this->p2pBot1->createPush('PushCity11', '[[Category:titi]]'), 'failed to create push PushCity : (' . $this->p2pBot1->bot->results . ')');
assertPageExist($this->p2pBot1->bot->wikiServer, 'PushFeed:PushCity11');
// assert that patch contains is ok
$pushFound = getSemanticRequest($this->p2pBot1->bot->wikiServer, '[[name::PushFeed:PushCity11]]', '-3Fname/-3FhasSemanticQuery');
$this->assertEquals('PushFeed:PushCity11', $pushFound[0], 'Create push PushCity error, push name must be PushFeed:PushCity but ' . $pushFound[0] . ' was found');
$this->assertEquals(utils::encodeRequest('[[Category:titi]]'), $pushFound[1], 'Create push PushCity error, semantic request must be [[Category:city]] but ' . utils::decodeRequest($pushFound[1]) . ' was found');
}
示例2: getSemanticRequest
function getSemanticRequest($server, $request, $param, $sep = '!')
{
$request = utils::encodeRequest($request);
$url = $server . '/index.php/Special:Ask/' . $request . '/' . $param . '/format=csv/sep=' . $sep . '/limit=100';
$php = file_get_contents($server . '/index.php/Special:Ask/' . $request . '/' . $param . '/headers=hide/format=csv/sep=' . $sep . '/limit=100');
$array = explode($sep, substr($php, 0, -1));
if (count($array) == 1) {
return $array;
}
$arrayRes[] = $array[1];
for ($i = 2; $i < count($array); $i++) {
$arrayRes[] = ereg_replace('"', '', $array[$i]);
}
return $arrayRes;
}
示例3: onUnknownAction
/**
* MW Hook used to redirect to page creation (pushfeed, pullfeed, changeset),
* to forms or to push/pull action testing the action param
*
* @since 1.1
*
* @param string $action
* @param Article $article
*
* @return true
*/
public function onUnknownAction($action, Article $article)
{
global $wgOut, $wgServerName, $wgScriptPath, $wgUser, $wgScriptExtension, $wgDSMWIP;
$urlServer = 'http://' . $wgServerName . $wgScriptPath . "/index{$wgScriptExtension}";
$urlAjax = 'http://' . $wgServerName . $wgScriptPath;
///////// / pull form page////////
if (isset($_GET['action']) && $_GET['action'] == 'addpullpage') {
wfDebugLog('p2p', 'addPullPage ');
$newtext = "Add a new site:\n\t<div id='dsmw' style=\"color:green;\"></div>\n\n\t{{#form:action=" . $urlServer . "?action=pullpage|method=POST|\n\t\tPushFeed Url: {{#input:type=button|value=Url test|onClick=\n\t\tvar url = document.getElementsByName('url')[0].value;\n\t\tif(url.indexOf('PushFeed')==-1){\n\t\t\talert('No valid PushFeed syntax, see example.');\n\t\t}else{\n\t\t\tvar urlTmp = url.substring( 0, url.indexOf( 'PushFeed' ) );\n\t\t\t//alert(urlTmp);\n\n\t\t\tvar pos1 = urlTmp.indexOf( 'index.php' );\n\t\t\t//alert( pos1 );\n\t\t\tvar pushUrl='';\n\t\t\tif( pos1 != -1 ){\n\t\t\t\tpushUrl = urlTmp.substring(0,pos1);\n\t\t\t\t//alert('if');\n\t\t\t} else {\n\t\t\t\tpushUrl = urlTmp;\n\t\t\t\t//alert('else');\n\t\t\t}\n\t\t\t//alert(pushUrl);\n\n\t\t\t//alert(pushUrl+'api.php?action=query&meta=patch&papatchId=1&format=xml');\n\t\t\tvar xhr_object = null;\n\n\t\t\tif( window.XMLHttpRequest ) { // Firefox\n\t\t\t\txhr_object = new XMLHttpRequest();\n\t\t\t}else if( window.ActiveXObject ) { // Internet Explorer\n\t\t\t\txhr_object = new ActiveXObject('Microsoft.XMLHTTP');\n\t\t\t} else {\n\t\t\t\talert('Votre navigateur ne supporte pas les objets XMLHTTPRequest...');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\txhr_object.open('GET', '" . $urlAjax . "/extensions/DSMW/files/ajax.php?url='+escape(pushUrl+'api.php?action=query&meta=patch&papatchId=1&format=xml'), true);\n\t\t\t} catch( e ) {\n\t\t\t\t//alert('There is no DSMW Server responding at this URL');\n\t\t\t\tdocument.getElementById('dsmw').innerHTML = 'There is no DSMW Server responding at this URL!';\n\t\t\t\tdocument.getElementById('dsmw').style.color = 'red';\n\t\t\t}\n\t\t\txhr_object.onreadystatechange = function() {\n\n\t\t\tif( xhr_object.readyState == 4 ) {\n\t\t\t\tif( xhr_object.statusText=='OK' ){\n\t\t\t\t\tif( xhr_object.responseText == 'true' ){\n\t\t\t\t\t\t//alert('URL valid, there is a DSMW Server responding');\n\t\t\t\t\t\tdocument.getElementById('dsmw').innerHTML = 'URL valid, there is a DSMW Server responding!';\n\t\t\t\t\t\tdocument.getElementById('dsmw').style.color = 'green';\n\t\t\t\t\t} else{ //alert('There is no DSMW Server responding at this URL');\n\t\t\t\t\t\tdocument.getElementById('dsmw').innerHTML = 'There is no DSMW Server responding at this URL!';\n\t\t\t\t\t\tdocument.getElementById('dsmw').style.color = 'red';\n\t\t\t\t\t}\n\t\t\t\t} else{\n\t\t\t\t\t//alert('There is no DSMW Server responding at this URL');\n\t\t\t\t\tdocument.getElementById('dsmw').innerHTML = 'There is no DSMW Server responding at this URL!';\n\t\t\t\t\tdocument.getElementById('dsmw').style.color = 'red';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\txhr_object.send(null);\n\t}\n\t}}<br> {{#input:type=text|name=url|size=50}} <b>e.g. http://server/path/index.php?title=PushFeed:PushName</b><br>\n\tPullFeed Name: <br> {{#input:type=text|name=pullname}}<br>\n\t{{#input:type=submit|value=ADD}}\n\t}}";
$article->doEdit($newtext, $summary = "");
$wgOut->redirect($article->getTitle()->getFullURL());
return false;
} elseif (isset($_GET['action']) && $_GET['action'] == 'addpushpage') {
wfDebugLog('p2p', 'addPushPage');
$specialAsk = $urlServer . '?title=Special:Ask';
$newtext = "Add a new pushfeed:\n\n\t{{#form:action=" . $urlServer . "?action=pushpage|method=POST|\n\tPushFeed Name: <br> {{#input:class=test|name=name|type=text|onKeyUp=test('{$urlServer}');}}<div style=\"display:inline; \" id=\"state\" ></div><br />\n\tRequest: {{#input:type=button|value=Test your query|title=click here to test your query results|onClick=\n\tvar query = document.getElementsByName('keyword')[0].value;\n\tvar query1 = encodeURI(query);\n\twindow.open('" . $specialAsk . "&q='+query1+'&eq=yes&p%5Bformat%5D=broadtable','querywindow','menubar=no, status=no, scrollbars=yes, menubar=no, width=1000, height=900');}}\n\t <br>{{#input:type=textarea|cols=30 | style=width:auto |rows=2|name=keyword}} <b>e.g. [[Category:city]][[locatedIn::France]]</b><br>\n\t{{#input:type=submit|value=ADD}}\n\t}}";
$article->doEdit($newtext, $summary = "");
$wgOut->redirect($article->getTitle()->getFullURL());
return false;
} elseif (isset($_GET['action']) && $_GET['action'] == 'pushpage') {
// $url = $_POST['url'];//pas url mais changesetId
wfDebugLog('p2p', 'Create new push ' . $_POST['name'] . ' with ' . $_POST['keyword']);
$name = $_POST['name'];
$request = $_POST['keyword'];
$stringReq = utils::encodeRequest($request);
// avoid "semantic injection" :))
// addPushSite($url, $name, $request);
$newtext = "\n[[Special:ArticleAdminPage|DSMW Admin functions]]\n\n==Features==\n[[name::PushFeed:" . $name . "| ]]\n'''Semantic query:''' [[hasSemanticQuery::" . $stringReq . "| ]]<nowiki>" . $request . "</nowiki>\n\n'''Pages concerned:'''\n{{#ask: " . $request . "}}\n[[deleted::false| ]]\n\n==Actions==\n\n{{#input:type=ajax|value=PUSH|onClick=pushpull('" . $urlServer . "','PushFeed:" . $name . "', 'onpush');}}\nThe \"PUSH\" action publishes the (unpublished) modifications of the articles listed above.\n\n== PUSH Progress : ==\n<div id=\"state\" ></div><br />\n";
wfDebugLog('p2p', ' -> push page contains : ' . $newtext);
$title = Title::newFromText($_POST['name'], PUSHFEED);
$article = new Article($title);
$edit = $article->doEdit($newtext, $summary = "");
$wgOut->redirect($title->getFullURL());
return false;
} elseif (isset($_POST['action']) && $_POST['action'] == 'onpush') {
/* In case we push directly from an article page */
if (isset($_POST['page']) && isset($_POST['request'])) {
$articlename = Title::newFromText($_POST['name']);
if (!$articlename->exists()) {
$result = utils::createPushFeed($_POST['name'], $_POST['request']);
utils::writeAndFlush("Create push <A HREF=" . 'http://' . $wgServerName . $wgScriptPath . "/index.php?title=" . $_POST['name'] . ">" . $_POST['name'] . "</a>");
if ($result == false) {
throw new MWException(__METHOD__ . ': no Pushfeed created in utils:: createPushFeed: ' . 'name: ' . $_POST['name'] . ' request' . $_POST['request']);
}
}
}
wfDebugLog('p2p', 'push on ');
$patches = array();
$tmpPatches = array();
if (isset($_POST['name'])) {
$name1 = $_POST['name'];
if (!is_array($name1)) {
$name1 = array($name1);
}
foreach ($name1 as $push) {
wfDebugLog('p2p', ' - ' . $push);
}
} else {
$name1 = '';
}
if ($name1 == '') {
utils::writeAndFlush('<p><b>No pushfeed selected!</b></p>');
$title = Title::newFromText('Special:ArticleAdminPage');
$wgOut->redirect($title->getFullURL());
return false;
}
// $name = $name1[0];
utils::writeAndFlush('<p><b>Start push </b></p>');
foreach ($name1 as $name) {
utils::writeAndFlush("<span style=\"margin-left:30px;\">begin push: <A HREF=" . 'http://' . $wgServerName . $wgScriptPath . "/index.php?title={$name}>" . $name . "</a></span> <br/>");
$patches = array();
// / / for each pushfeed name==> push
wfDebugLog('p2p', ' -> pushname ' . $name);
// $name = $_GET['name'];//PushFeed name
$request = getPushFeedRequest($name);
// $previousCSID = getPreviousCSID($name);
$previousCSID = getHasPushHead($name);
if ($previousCSID == false) {
$previousCSID = "none";
// $CSID = $name."_0";
}
// else{
// $count = explode(" ", $previousCSID);
// $cnt = $count[1] + 1;
// $CSID = $name."_".$cnt;
// }
wfDebugLog('p2p', ' ->pushrequest ' . $request);
wfDebugLog('p2p', ' ->pushHead : ' . $previousCSID);
$CSID = utils::generateID();
//.........这里部分代码省略.........
示例4: createPushFeed
/**
* Creates a pushfeed
*
* @global <String> $wgServerName
* @global <String> $wgScriptPath
* @param <String> $name pushfeed name
* @param <String> $request
* @return <bool> true if creation successful, false if not
*/
static function createPushFeed($name, $request)
{
global $wgServerName, $wgScriptPath, $wgScriptExtension;
$urlServer = 'http://' . $wgServerName . $wgScriptPath . "/index{$wgScriptExtension}";
$stringReq = utils::encodeRequest($request);
//avoid "semantic injection"
$newtext = "\n{{#form:action=" . $urlServer . "?action=onpush|method=POST|\n{{#input:type=hidden|name=push|value=" . $name . "}}<br>\n{{#input:type=hidden|name=action|value=onpush}}<br>\n{{#input:type=submit|value=PUSH}}\n}}\n----\n[[Special:ArticleAdminPage]]\n----\nPushFeed:\nName: [[name::" . $name . "]]\nhasSemanticQuery: [[hasSemanticQuery::" . $stringReq . "]]\nPages concerned:\n{{#ask: " . $request . "}}\n[[deleted::false| ]]\n";
wfDebugLog('p2p', ' -> push page contains : ' . $newtext);
$title = Title::newFromText($name, PUSHFEED);
$article = new Article($title);
$status = $article->doEdit($newtext, $summary = "");
if (is_bool($status) && $status || is_object($status) && $status->isGood()) {
return true;
} else {
return false;
}
}