本文整理汇总了PHP中Net_URL2类的典型用法代码示例。如果您正苦于以下问题:PHP Net_URL2类的具体用法?PHP Net_URL2怎么用?PHP Net_URL2使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Net_URL2类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: init
public function init(array $options)
{
// base url
if (isset($options['baseURL'])) {
$this->baseURL = $options['baseURL'];
} else {
$this->baseURL = 'http://' . $_SERVER['SERVER_NAME'];
}
if (isset($options['ezrpPath'])) {
$this->ezrpPath = $options['ezrpPath'];
}
$this->sessionID = $options['sessionID'];
$verifyURL = new Net_URL2(rtrim($this->baseURL, '/') . $this->ezrpPath);
$verifyURL->setQueryVariable('ezrpd', $this->driver);
$this->verifyURL = $verifyURL->getURL();
}
示例2: request
/**
* Http request
*
* @param string $method
* @param string $url
* @param array $submit
* @param string $formName
*
* @return HTTP_Request2_Response
*/
public function request($method, $url, array $submit = array(), $formName = 'form')
{
$this->request = new HTTP_Request2();
$url = new Net_URL2($url);
$this->request->setMethod($method);
if ($submit) {
$submit = array_merge(array('_token' => '0dc59902014b6', '_qf__' . $formName => ''), $submit);
}
if ($submit && $method === 'POST') {
$this->request->addPostParameter($submit);
}
if ($submit && $method === 'GET') {
$url->setQueryVariables($submit);
}
$this->request->setUrl($url);
$this->response = $this->request->send();
return $this;
}
示例3: devtips_extract
function devtips_extract(DevTip $tip)
{
global $updates_dir;
$assetPath = getFileName($tip->get('date'), $tip->get('title'));
$assetPath = str_replace(".markdown", "", $assetPath);
# create new asset directory based on new filename
if (!file_exists($updates_dir . 'images/' . $assetPath)) {
mkdir($updates_dir . 'images/' . $assetPath);
chmod($updates_dir . 'images/' . $assetPath, 0777);
}
# Download and store each asset
$assets = $tip->get('assets');
$featured = null;
foreach ($assets as $key => $url) {
if (strpos($url, "/sponsor/") !== false) {
continue;
}
$base = new Net_URL2('https://umaar.com/dev-tips/');
$abs = $base->resolve($url);
$dest = $updates_dir . 'images/' . $assetPath . '/' . pathinfo($url)['basename'];
$content = $tip->get('content');
$tip->set('content', str_replace($url, '/web/updates/images/' . $assetPath . '/' . pathinfo($url)['basename'], $content));
if (!$featured) {
$tip->set('featured-image', '/web/updates/images/' . $assetPath . '/' . pathinfo($url)['basename']);
}
if (!file_exists($dest)) {
set_time_limit(0);
$fp = fopen($dest, 'w+');
//This is the file where we save the information
$ch = curl_init(str_replace(" ", "%20", $abs));
//Here is the file we are downloading, replace spaces with %20
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_FILE, $fp);
// write curl response to file
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
// get curl response
curl_close($ch);
fclose($fp);
// set proper chmod
chmod($dest, 0777);
}
}
}
示例4: parse
/**
* Parses the config and splits up the port + url
* @return array
*/
public function parse()
{
$proxy = $this->config->getSystemValue('proxy');
$userpasswd = $this->config->getSystemValue('proxyuserpwd');
$result = ['host' => null, 'port' => null, 'user' => null, 'password' => null];
// we need to filter out the port -.-
$url = new \Net_URL2($proxy);
$port = $url->getPort();
$url->setPort(false);
$host = $url->getUrl();
$result['host'] = $host;
$result['port'] = $port;
if ($userpasswd) {
$auth = explode(':', $userpasswd, 2);
$result['user'] = $auth[0];
$result['password'] = $auth[1];
}
return $result;
}
示例5: extract
public function extract(\HTTP_Request2_Response $res)
{
$url = $res->getEffectiveUrl();
$base = new \Net_URL2($url);
$sx = simplexml_load_string($res->getBody());
$linkInfos = array();
$alreadySeen = array();
foreach ($sx->entry as $entry) {
$linkTitle = (string) $entry->title;
foreach ($entry->link as $xlink) {
$linkUrl = (string) $base->resolve((string) $xlink['href']);
if (isset($alreadySeen[$linkUrl])) {
continue;
}
if ($xlink['rel'] == 'alternate') {
$linkInfos[] = new LinkInfo($linkUrl, $linkTitle, $url);
}
$alreadySeen[$linkUrl] = true;
}
}
return $linkInfos;
}
示例6: __construct
public function __construct($path = '', $defaults = array(), $rules = array())
{
$this->path = '/' . trim(Net_URL2::removeDotSegments($path), '/');
$this->setDefaults($defaults);
$this->setRules($rules);
try {
$this->parsePath();
} catch (Exception $e) {
// The path could not be parsed correctly, treat it as fixed
$this->fixed = true;
$part = self::createPart(Net_URL_Mapper_Part::FIXED, $this->path, $this->path);
$this->parts = array($part);
}
$this->getRequired();
}
示例7: __construct
/**
* Constructor
*/
private function __construct()
{
//Load config
$configDir = dirname(dirname(__FILE__)) . '/config';
Config::load(file_exists($configDir . '/config.php') ? require $configDir . '/config.php' : array(), require $configDir . '/defaults.php');
//Generate Current URL taking into account forwarded proto
$url = \Net_URL2::getRequested();
$url->setQuery(false);
$url->setPath(dirname($_SERVER['PHP_SELF']));
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
$url->setScheme($_SERVER['HTTP_X_FORWARDED_PROTO']);
}
$this->url = $url;
$this->path = $this->url->getPath();
// Initialize phpCAS proxy client
$this->casClient = $this->initializeCAS();
}
示例8: send
/**
* Sends the request and returns the response
*
* @throws HTTP_Request2_Exception
* @return HTTP_Request2_Response
*/
public function send()
{
// Sanity check for URL
if (!$this->url instanceof Net_URL2) {
throw new HTTP_Request2_Exception('No URL given');
} elseif (!$this->url->isAbsolute()) {
throw new HTTP_Request2_Exception('Absolute URL required');
} elseif (!in_array(strtolower($this->url->getScheme()), array('https', 'http'))) {
throw new HTTP_Request2_Exception('Not a HTTP URL');
}
if (empty($this->adapter)) {
$this->setAdapter($this->getConfig('adapter'));
}
// magic_quotes_runtime may break file uploads and chunked response
// processing; see bug #4543
if ($magicQuotes = ini_get('magic_quotes_runtime')) {
ini_set('magic_quotes_runtime', false);
}
// force using single byte encoding if mbstring extension overloads
// strlen() and substr(); see bug #1781, bug #10605
if (extension_loaded('mbstring') && 2 & ini_get('mbstring.func_overload')) {
$oldEncoding = mb_internal_encoding();
mb_internal_encoding('iso-8859-1');
}
try {
$response = $this->adapter->sendRequest($this);
} catch (Exception $e) {
}
// cleanup in either case (poor man's "finally" clause)
if ($magicQuotes) {
ini_set('magic_quotes_runtime', true);
}
if (!empty($oldEncoding)) {
mb_internal_encoding($oldEncoding);
}
// rethrow the exception
if (!empty($e)) {
throw $e;
}
return $response;
}
示例9: resolveURI
/**
* Resolve a possibly relative URL against some absolute base URL
* @param string $rel relative or absolute URL
* @param string $base absolute URL
* @return string absolute URL, or original URL if could not be resolved.
*/
function resolveURI($rel, $base)
{
require_once "Net/URL2.php";
try {
$relUrl = new Net_URL2($rel);
if ($relUrl->isAbsolute()) {
return $rel;
}
$baseUrl = new Net_URL2($base);
$absUrl = $baseUrl->resolve($relUrl);
return $absUrl->getURL();
} catch (Exception $e) {
common_log(LOG_WARNING, 'Unable to resolve relative link "' . $rel . '" against base "' . $base . '": ' . $e->getMessage());
return $rel;
}
}
示例10: getNormalizedFileInfo
/**
* @param $path
* @param null $document
* @return array
* @throws \Exception
*/
public static function getNormalizedFileInfo($path, $document = null)
{
if ($document && $document instanceof Model\Document == false) {
throw new \Exception('$document has to be an instance of Document');
}
$fileInfo = array();
$hostUrl = Tool::getHostUrl();
if ($path[0] != '/') {
$fileInfo['fileUrl'] = $hostUrl . $document . "/{$path}";
//relative eg. ../file.css
} else {
$fileInfo['fileUrl'] = $hostUrl . $path;
}
$fileInfo['fileExtension'] = substr($path, strrpos($path, '.') + 1);
$netUrl = new \Net_URL2($fileInfo['fileUrl']);
$fileInfo['fileUrlNormalized'] = $netUrl->getNormalizedURL();
$fileInfo['filePathNormalized'] = PIMCORE_DOCUMENT_ROOT . str_replace($hostUrl, '', $fileInfo['fileUrlNormalized']);
return $fileInfo;
}
示例11: handleRedirect
/**
* Handles HTTP redirection
*
* This method will throw an Exception if redirect to a non-HTTP(S) location
* is attempted, also if number of redirects performed already is equal to
* 'max_redirects' configuration parameter.
*
* @param HTTP_Request2 Original request
* @param HTTP_Request2_Response Response containing redirect
* @return HTTP_Request2_Response Response from a new location
* @throws HTTP_Request2_Exception
*/
protected function handleRedirect(HTTP_Request2 $request, HTTP_Request2_Response $response)
{
if (is_null($this->redirectCountdown)) {
$this->redirectCountdown = $request->getConfig('max_redirects');
}
if (0 == $this->redirectCountdown) {
$this->redirectCountdown = null;
// Copying cURL behaviour
throw new HTTP_Request2_MessageException('Maximum (' . $request->getConfig('max_redirects') . ') redirects followed', HTTP_Request2_Exception::TOO_MANY_REDIRECTS);
}
$redirectUrl = new Net_URL2($response->getHeader('location'), array(Net_URL2::OPTION_USE_BRACKETS => $request->getConfig('use_brackets')));
// refuse non-HTTP redirect
if ($redirectUrl->isAbsolute() && !in_array($redirectUrl->getScheme(), array('http', 'https'))) {
$this->redirectCountdown = null;
throw new HTTP_Request2_MessageException('Refusing to redirect to a non-HTTP URL ' . $redirectUrl->__toString(), HTTP_Request2_Exception::NON_HTTP_REDIRECT);
}
// Theoretically URL should be absolute (see http://tools.ietf.org/html/rfc2616#section-14.30),
// but in practice it is often not
if (!$redirectUrl->isAbsolute()) {
$redirectUrl = $request->getUrl()->resolve($redirectUrl);
}
$redirect = clone $request;
$redirect->setUrl($redirectUrl);
if (303 == $response->getStatus() || !$request->getConfig('strict_redirects') && in_array($response->getStatus(), array(301, 302))) {
$redirect->setMethod(HTTP_Request2::METHOD_GET);
$redirect->setBody('');
}
if (0 < $this->redirectCountdown) {
$this->redirectCountdown--;
}
return $this->sendRequest($redirect);
}
示例12: array
return $http->send();
}
$images = array();
for ($start = 0; $start < 200; $start += 20) {
// echo $start . "\n";
$html = getContents($searchURL, $start)->getBody();
// $html = file_get_contents('images.html');
$dom = new DOMDocument();
@$dom->loadHTML($html);
// grab all the on the page
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate('/html/body//div[@id="ImgCont"]//td//a');
for ($i = 0; $i < $hrefs->length; $i++) {
$url = $hrefs->item($i)->getAttribute('href');
list(, $querystring) = explode('?', $url);
$neturl = new Net_URL2("http://example.com/?{$querystring}");
$vars = $neturl->getQueryVariables();
if (isset($vars['imgurl'])) {
$images[] = $vars['imgurl'];
}
}
}
foreach ($images as $count => $image) {
preg_match_all('/([.][^.]+)$/', $image, $foo);
if (!isset($foo[0][0])) {
continue;
}
$ext = strtolower($foo[0][0]);
$filename = "images/kittens/{$count}{$ext}";
echo $filename . "\n";
try {
示例13: MakePagination
public function MakePagination($query, $rpp_def = NULL, $location = "DB")
{
$return_set = array();
$this->{$location}->query($query);
// This query should select all needed fields from database
if ((int) $this->_S->Get('rpp') != 0) {
if (isset($_POST['rpp'])) {
if ((int) $_POST['rpp'] == 0) {
$this->_S->Set('rpp', 50);
} else {
$this->_S->Set('rpp', (int) $_POST['rpp']);
}
}
$rpp = (int) $this->_S->Get('rpp');
} else {
$this->_S->Set('rpp', 50);
$rpp = (int) $this->_S->Get('rpp');
}
// http://pear.php.net/package/Net_URL2
$op = new Net_URL2($_SERVER["REQUEST_URI"]);
$op->unsetQueryVariable('cpage');
$op->setQueryVariable('cpage', '');
$str = (string) $op;
if (strpos($str, "search=1")) {
$str = str_replace("search=1", "search=0", $str);
}
$OptionForm = new TForm();
$OptionForm->Action = $str . $this->CurrentPage;
$OptionForm->Name = "paginationform";
$OptionForm->class_name = "pagination_form";
$TSelect = new TForm_TSelect('rpp');
$TSelect->class_name = 'select2';
$TSelect->style = 'width: 60px;';
$OptionForm->Add("SlRPP", $TSelect);
$OptionForm->SlRPP->Label = "Rezultate pe pagina: ";
$OptionForm->SlRPP->label_class = 'inline';
$OptionForm->SlRPP->AddOption('10', '10');
$OptionForm->SlRPP->AddOption('20', '20');
$OptionForm->SlRPP->AddOption('30', '30');
$OptionForm->SlRPP->AddOption('50', '50');
$OptionForm->SlRPP->AddOption('100', '100');
$OptionForm->SlRPP->Value = $rpp;
$OptionForm->SlRPP->Paragraph = false;
$OptionForm->SlRPP->onChange = 'this.form.submit();';
$total_pages = ceil($this->{$location}->numRows() / $rpp);
if (!$this->CurrentPage || $this->CurrentPage <= 0 || $this->CurrentPage > $total_pages) {
$this->CurrentPage = 1;
}
$return_set[1] = " LIMIT " . ($this->CurrentPage - 1) * $rpp . ", " . $rpp;
$TSelect = new TForm_TSelect('pag');
$TSelect->class_name = 'select2';
$TSelect->style = 'width: 60px;';
$OptionForm->Add('SlPag', $TSelect);
for ($i = 1; $i <= $total_pages; $i++) {
$OptionForm->SlPag->AddOption($str . $i, $i);
}
$OptionForm->SlPag->Label = "Afiseaza pagina: ";
$OptionForm->SlPag->label_class = 'inline';
$OptionForm->SlPag->Paragraph = false;
$OptionForm->SlPag->Value = $str . $this->CurrentPage;
$OptionForm->SlPag->onChange = 'pagination_check_link(this.options[this.selectedIndex].value);';
$return_set[2] = "<div class=\"result_pages\">" . $OptionForm->Html() . "";
$ppages = '';
$j = 0;
$nextpage = $pervpage = '';
if ($this->CurrentPage != 1) {
$pervpage = '<li><a href="' . $str . '1"> <i class="icon-double-angle-left"></i></a></li><li><a href="' . $str . ($this->CurrentPage - 1) . '"> <i class="icon-angle-left"></i></a></li>';
} else {
$pervpage = '<li class="disabled"><a href="' . $str . '1"> <i class="icon-double-angle-left"></i></a></li><li class="disabled"><a href="' . $str . ($this->CurrentPage - 1) . '"> <i class="icon-angle-left"></i></a></li>';
}
if ($this->CurrentPage != $total_pages) {
$nextpage = '<li><a href="' . $str . ($this->CurrentPage + 1) . '"><i class="icon-angle-right"></i> </a></li><li><a href="' . $str . $total_pages . '"><i class="icon-double-angle-right"></i> </a></li>';
} else {
$nextpage = '<li class="disabled"><a href="' . $str . ($this->CurrentPage + 1) . '"><i class="icon-angle-right"></i> </a></li><li class="disabled"><a href="' . $str . $total_pages . '"><i class="icon-double-angle-right"></i> </a></li>';
}
for ($i = 0; $i <= $j + 10; $i++) {
if ($this->CurrentPage - 5 + $i > 0 && $this->CurrentPage - 5 + $i <= $total_pages) {
if ($this->CurrentPage == $this->CurrentPage - 5 + $i) {
$ppages .= '<li class="active"><a>' . ($this->CurrentPage - 5 + $i) . '</a></li>';
} else {
$ppages .= '<li><a href="' . $str . ($this->CurrentPage - 5 + $i) . '">' . ($this->CurrentPage - 5 + $i) . '</a></li>';
}
} else {
if ($this->CurrentPage - 5 + $i <= $total_pages) {
$j++;
}
}
}
$return_set[2] .= '<ul class="pagination">';
if ($total_pages > 1) {
$return_set[2] .= $pervpage . $ppages . $nextpage;
} else {
$return_set[2] .= '<li class="active"><a>' . $this->CurrentPage . '</a></li>';
}
$return_set[2] .= '</ul>';
$return_set[2] .= '</div>';
return $return_set;
}
示例14: resolveUrl
public static function resolveUrl($relative_url, $base_url)
{
$base_url = new Net_URL2($base_url);
return $base_url->resolve($relative_url)->getURL();
}
示例15: _isAuthenticationURI
/**
* Checks whether the requested URI is the authentication URI or not.
*
* @param string $authenticationURI
* @return boolean
*/
private function _isAuthenticationURI($authenticationURI)
{
$url = new Net_URL2($authenticationURI);
return $this->context->removeProxyPath($url->getPath()) == $this->_scriptName;
}