mirror of
https://github.com/moparisthebest/wallabag
synced 2024-11-27 11:22:17 -05:00
rename myTool -> pocheTool and delete some stuff
This commit is contained in:
parent
da2c5d6fc3
commit
f6c9baab3e
@ -1,265 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* poche, a read it later open source system
|
|
||||||
*
|
|
||||||
* @category poche
|
|
||||||
* @author Nicolas Lœuillet <support@inthepoche.com>
|
|
||||||
* @copyright 2013
|
|
||||||
* @license http://www.wtfpl.net/ see COPYING file
|
|
||||||
*/
|
|
||||||
|
|
||||||
class MyTool
|
|
||||||
{
|
|
||||||
public static function initPhp()
|
|
||||||
{
|
|
||||||
define('START_TIME', microtime(true));
|
|
||||||
|
|
||||||
if (phpversion() < 5) {
|
|
||||||
die(_('Oops, it seems you don\'t have PHP 5.'));
|
|
||||||
}
|
|
||||||
|
|
||||||
error_reporting(E_ALL);
|
|
||||||
|
|
||||||
function stripslashesDeep($value) {
|
|
||||||
return is_array($value)
|
|
||||||
? array_map('stripslashesDeep', $value)
|
|
||||||
: stripslashes($value);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (get_magic_quotes_gpc()) {
|
|
||||||
$_POST = array_map('stripslashesDeep', $_POST);
|
|
||||||
$_GET = array_map('stripslashesDeep', $_GET);
|
|
||||||
$_COOKIE = array_map('stripslashesDeep', $_COOKIE);
|
|
||||||
}
|
|
||||||
|
|
||||||
ob_start();
|
|
||||||
register_shutdown_function('ob_end_flush');
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function isUrl($url)
|
|
||||||
{
|
|
||||||
// http://neo22s.com/check-if-url-exists-and-is-online-php/
|
|
||||||
$pattern='|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i';
|
|
||||||
|
|
||||||
return preg_match($pattern, $url);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function isEmail($email)
|
|
||||||
{
|
|
||||||
$pattern = "/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2, 4}$/i";
|
|
||||||
|
|
||||||
return (preg_match($pattern, $email));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function formatBBCode($text)
|
|
||||||
{
|
|
||||||
$replace = array(
|
|
||||||
'/\[m\](.+?)\[\/m\]/is'
|
|
||||||
=> '/* moderate */',
|
|
||||||
'/\[b\](.+?)\[\/b\]/is'
|
|
||||||
=> '<strong>$1</strong>',
|
|
||||||
'/\[i\](.+?)\[\/i\]/is'
|
|
||||||
=> '<em>$1</em>',
|
|
||||||
'/\[s\](.+?)\[\/s\]/is'
|
|
||||||
=> '<del>$1</del>',
|
|
||||||
'/\[u\](.+?)\[\/u\]/is'
|
|
||||||
=> '<span style="text-decoration: underline;">$1</span>',
|
|
||||||
'/\[url\](.+?)\[\/url]/is'
|
|
||||||
=> '<a href="$1">$1</a>',
|
|
||||||
'/\[url=(\w+:\/\/[^\]]+)\](.+?)\[\/url]/is'
|
|
||||||
=> '<a href="$1">$2</a>',
|
|
||||||
'/\[quote\](.+?)\[\/quote\]/is'
|
|
||||||
=> '<blockquote>$1</blockquote>',
|
|
||||||
'/\[code\](.+?)\[\/code\]/is'
|
|
||||||
=> '<code>$1</code>',
|
|
||||||
'/\[([^[]+)\|([^[]+)\]/is'
|
|
||||||
=> '<a href="$2">$1</a>'
|
|
||||||
);
|
|
||||||
$text = preg_replace(
|
|
||||||
array_keys($replace),
|
|
||||||
array_values($replace),
|
|
||||||
$text
|
|
||||||
);
|
|
||||||
|
|
||||||
return $text;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function formatText($text)
|
|
||||||
{
|
|
||||||
$text = preg_replace_callback(
|
|
||||||
'/<code_html>(.*?)<\/code_html>/is',
|
|
||||||
create_function(
|
|
||||||
'$matches',
|
|
||||||
'return htmlspecialchars($matches[1]);'
|
|
||||||
),
|
|
||||||
$text
|
|
||||||
);
|
|
||||||
$text = preg_replace_callback(
|
|
||||||
'/<code_php>(.*?)<\/code_php>/is',
|
|
||||||
create_function(
|
|
||||||
'$matches',
|
|
||||||
'return highlight_string("<?php $matches[1] ?>", true);'
|
|
||||||
),
|
|
||||||
$text
|
|
||||||
);
|
|
||||||
$text = preg_replace('/<br \/>/is', '', $text);
|
|
||||||
|
|
||||||
$text = preg_replace(
|
|
||||||
'#(^|\s)([a-z]+://([^\s\w/]?[\w/])*)(\s|$)#im',
|
|
||||||
'\\1<a href="\\2">\\2</a>\\4',
|
|
||||||
$text
|
|
||||||
);
|
|
||||||
$text = preg_replace(
|
|
||||||
'#(^|\s)wp:?([a-z]{2}|):([\w]+)#im',
|
|
||||||
'\\1<a href="http://\\2.wikipedia.org/wiki/\\3">\\3</a>',
|
|
||||||
$text
|
|
||||||
);
|
|
||||||
$text = str_replace(
|
|
||||||
'http://.wikipedia.org/wiki/',
|
|
||||||
'http://www.wikipedia.org/wiki/',
|
|
||||||
$text
|
|
||||||
);
|
|
||||||
$text = str_replace('\wp:', 'wp:', $text);
|
|
||||||
$text = str_replace('\http:', 'http:', $text);
|
|
||||||
$text = MyTool::formatBBCode($text);
|
|
||||||
$text = nl2br($text);
|
|
||||||
|
|
||||||
return $text;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getUrl()
|
|
||||||
{
|
|
||||||
$https = (!empty($_SERVER['HTTPS'])
|
|
||||||
&& (strtolower($_SERVER['HTTPS']) == 'on'))
|
|
||||||
|| (isset($_SERVER["SERVER_PORT"])
|
|
||||||
&& $_SERVER["SERVER_PORT"] == '443'); // HTTPS detection.
|
|
||||||
$serverport = (!isset($_SERVER["SERVER_PORT"])
|
|
||||||
|| $_SERVER["SERVER_PORT"] == '80'
|
|
||||||
|| ($https && $_SERVER["SERVER_PORT"] == '443')
|
|
||||||
? ''
|
|
||||||
: ':' . $_SERVER["SERVER_PORT"]);
|
|
||||||
|
|
||||||
$scriptname = str_replace('/index.php', '/', $_SERVER["SCRIPT_NAME"]);
|
|
||||||
|
|
||||||
if (!isset($_SERVER["SERVER_NAME"])) {
|
|
||||||
return $scriptname;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 'http' . ($https ? 's' : '') . '://'
|
|
||||||
. $_SERVER["SERVER_NAME"] . $serverport . $scriptname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function rrmdir($dir)
|
|
||||||
{
|
|
||||||
if (is_dir($dir) && ($d = @opendir($dir))) {
|
|
||||||
while (($file = @readdir($d)) !== false) {
|
|
||||||
if ( $file == '.' || $file == '..' ) {
|
|
||||||
continue;
|
|
||||||
} else {
|
|
||||||
unlink($dir . '/' . $file);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function humanBytes($bytes)
|
|
||||||
{
|
|
||||||
$siPrefix = array( 'bytes', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' );
|
|
||||||
$base = 1024;
|
|
||||||
$class = min((int) log($bytes, $base), count($siPrefix) - 1);
|
|
||||||
$val = sprintf('%1.2f', $bytes / pow($base, $class));
|
|
||||||
|
|
||||||
return $val . ' ' . $siPrefix[$class];
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function returnBytes($val)
|
|
||||||
{
|
|
||||||
$val = trim($val);
|
|
||||||
$last = strtolower($val[strlen($val)-1]);
|
|
||||||
switch($last)
|
|
||||||
{
|
|
||||||
case 'g': $val *= 1024;
|
|
||||||
case 'm': $val *= 1024;
|
|
||||||
case 'k': $val *= 1024;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $val;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getMaxFileSize()
|
|
||||||
{
|
|
||||||
$sizePostMax = MyTool::returnBytes(ini_get('post_max_size'));
|
|
||||||
$sizeUploadMax = MyTool::returnBytes(ini_get('upload_max_filesize'));
|
|
||||||
|
|
||||||
// Return the smaller of two:
|
|
||||||
return min($sizePostMax, $sizeUploadMax);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function smallHash($text)
|
|
||||||
{
|
|
||||||
$t = rtrim(base64_encode(hash('crc32', $text, true)), '=');
|
|
||||||
// Get rid of characters which need encoding in URLs.
|
|
||||||
$t = str_replace('+', '-', $t);
|
|
||||||
$t = str_replace('/', '_', $t);
|
|
||||||
$t = str_replace('=', '@', $t);
|
|
||||||
|
|
||||||
return $t;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function renderJson($data)
|
|
||||||
{
|
|
||||||
header('Cache-Control: no-cache, must-revalidate');
|
|
||||||
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
|
|
||||||
header('Content-type: application/json; charset=UTF-8');
|
|
||||||
|
|
||||||
echo json_encode($data);
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function grabToLocal($url, $file, $force = false)
|
|
||||||
{
|
|
||||||
if ((!file_exists($file) || $force) && in_array('curl', get_loaded_extensions())){
|
|
||||||
$ch = curl_init ($url);
|
|
||||||
curl_setopt($ch, CURLOPT_HEADER, false);
|
|
||||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
||||||
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
|
|
||||||
$raw = curl_exec($ch);
|
|
||||||
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200) {
|
|
||||||
$fp = fopen($file, 'x');
|
|
||||||
fwrite($fp, $raw);
|
|
||||||
fclose($fp);
|
|
||||||
}
|
|
||||||
curl_close ($ch);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function redirect($rurl = '')
|
|
||||||
{
|
|
||||||
if ($rurl === '') {
|
|
||||||
// if (!empty($_SERVER['HTTP_REFERER']) && strcmp(parse_url($_SERVER['HTTP_REFERER'],PHP_URL_HOST),$_SERVER['SERVER_NAME'])==0)
|
|
||||||
$rurl = (empty($_SERVER['HTTP_REFERER'])?'?':$_SERVER['HTTP_REFERER']);
|
|
||||||
if (isset($_POST['returnurl'])) {
|
|
||||||
$rurl = $_POST['returnurl'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// prevent loop
|
|
||||||
if (empty($rurl) || parse_url($rurl, PHP_URL_QUERY) === $_SERVER['QUERY_STRING']) {
|
|
||||||
$rurl = MyTool::getUrl();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (substr($rurl, 0, 1) !== '?') {
|
|
||||||
$ref = MyTool::getUrl();
|
|
||||||
if (substr($rurl, 0, strlen($ref)) !== $ref) {
|
|
||||||
$rurl = $ref;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
header('Location: '.$rurl);
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function silence_errors($num, $str)
|
|
||||||
{
|
|
||||||
// No-op
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,231 +0,0 @@
|
|||||||
<?php
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
// Session-Based Flash Messages v1.0
|
|
||||||
// Copyright 2012 Mike Everhart (http://mikeeverhart.net)
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
//
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
// Description:
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// Stores messages in Session data to be easily retrieved later on.
|
|
||||||
// This class includes four different types of messages:
|
|
||||||
// - Success
|
|
||||||
// - Error
|
|
||||||
// - Warning
|
|
||||||
// - Information
|
|
||||||
//
|
|
||||||
// See README for basic usage instructions, or see samples/index.php for more advanced samples
|
|
||||||
//
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
// Changelog
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// 2011-05-15 - v1.0 - Initial Version
|
|
||||||
//
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class Messages {
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------------
|
|
||||||
// Class Variables
|
|
||||||
//-----------------------------------------------------------------------------------------------
|
|
||||||
var $msgId;
|
|
||||||
var $msgTypes = array( 'help', 'info', 'warning', 'success', 'error' );
|
|
||||||
var $msgClass = 'messages';
|
|
||||||
var $msgWrapper = "<div class='%s %s'><a href='#' class='closeMessage'></a>\n%s</div>\n";
|
|
||||||
var $msgBefore = '<p>';
|
|
||||||
var $msgAfter = "</p>\n";
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
* @author Mike Everhart
|
|
||||||
*/
|
|
||||||
public function __construct() {
|
|
||||||
|
|
||||||
// Generate a unique ID for this user and session
|
|
||||||
$this->msgId = md5(uniqid());
|
|
||||||
|
|
||||||
// Create the session array if it doesnt already exist
|
|
||||||
if( !array_key_exists('flash_messages', $_SESSION) ) $_SESSION['flash_messages'] = array();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add a message to the queue
|
|
||||||
*
|
|
||||||
* @author Mike Everhart
|
|
||||||
*
|
|
||||||
* @param string $type The type of message to add
|
|
||||||
* @param string $message The message
|
|
||||||
* @param string $redirect_to (optional) If set, the user will be redirected to this URL
|
|
||||||
* @return bool
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function add($type, $message, $redirect_to=null) {
|
|
||||||
|
|
||||||
if( !isset($_SESSION['flash_messages']) ) return false;
|
|
||||||
|
|
||||||
if( !isset($type) || !isset($message[0]) ) return false;
|
|
||||||
|
|
||||||
// Replace any shorthand codes with their full version
|
|
||||||
if( strlen(trim($type)) == 1 ) {
|
|
||||||
$type = str_replace( array('h', 'i', 'w', 'e', 's'), array('help', 'info', 'warning', 'error', 'success'), $type );
|
|
||||||
|
|
||||||
// Backwards compatibility...
|
|
||||||
} elseif( $type == 'information' ) {
|
|
||||||
$type = 'info';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make sure it's a valid message type
|
|
||||||
if( !in_array($type, $this->msgTypes) ) die('"' . strip_tags($type) . '" is not a valid message type!' );
|
|
||||||
|
|
||||||
// If the session array doesn't exist, create it
|
|
||||||
if( !array_key_exists( $type, $_SESSION['flash_messages'] ) ) $_SESSION['flash_messages'][$type] = array();
|
|
||||||
|
|
||||||
$_SESSION['flash_messages'][$type][] = $message;
|
|
||||||
|
|
||||||
if( !is_null($redirect_to) ) {
|
|
||||||
header("Location: $redirect_to");
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------------
|
|
||||||
// display()
|
|
||||||
// print queued messages to the screen
|
|
||||||
//-----------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* Display the queued messages
|
|
||||||
*
|
|
||||||
* @author Mike Everhart
|
|
||||||
*
|
|
||||||
* @param string $type Which messages to display
|
|
||||||
* @param bool $print True = print the messages on the screen
|
|
||||||
* @return mixed
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function display($type='all', $print=true) {
|
|
||||||
$messages = '';
|
|
||||||
$data = '';
|
|
||||||
|
|
||||||
if( !isset($_SESSION['flash_messages']) ) return false;
|
|
||||||
|
|
||||||
if( $type == 'g' || $type == 'growl' ) {
|
|
||||||
$this->displayGrowlMessages();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Print a certain type of message?
|
|
||||||
if( in_array($type, $this->msgTypes) ) {
|
|
||||||
foreach( $_SESSION['flash_messages'][$type] as $msg ) {
|
|
||||||
$messages .= $this->msgBefore . $msg . $this->msgAfter;
|
|
||||||
}
|
|
||||||
|
|
||||||
$data .= sprintf($this->msgWrapper, $this->msgClass, $type, $messages);
|
|
||||||
|
|
||||||
// Clear the viewed messages
|
|
||||||
$this->clear($type);
|
|
||||||
|
|
||||||
// Print ALL queued messages
|
|
||||||
} elseif( $type == 'all' ) {
|
|
||||||
foreach( $_SESSION['flash_messages'] as $type => $msgArray ) {
|
|
||||||
$messages = '';
|
|
||||||
foreach( $msgArray as $msg ) {
|
|
||||||
$messages .= $this->msgBefore . $msg . $this->msgAfter;
|
|
||||||
}
|
|
||||||
$data .= sprintf($this->msgWrapper, $this->msgClass, $type, $messages);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear ALL of the messages
|
|
||||||
$this->clear();
|
|
||||||
|
|
||||||
// Invalid Message Type?
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Print everything to the screen or return the data
|
|
||||||
if( $print ) {
|
|
||||||
echo $data;
|
|
||||||
} else {
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check to see if there are any queued error messages
|
|
||||||
*
|
|
||||||
* @author Mike Everhart
|
|
||||||
*
|
|
||||||
* @return bool true = There ARE error messages
|
|
||||||
* false = There are NOT any error messages
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function hasErrors() {
|
|
||||||
return empty($_SESSION['flash_messages']['error']) ? false : true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check to see if there are any ($type) messages queued
|
|
||||||
*
|
|
||||||
* @author Mike Everhart
|
|
||||||
*
|
|
||||||
* @param string $type The type of messages to check for
|
|
||||||
* @return bool
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function hasMessages($type=null) {
|
|
||||||
if( !is_null($type) ) {
|
|
||||||
if( !empty($_SESSION['flash_messages'][$type]) ) return $_SESSION['flash_messages'][$type];
|
|
||||||
} else {
|
|
||||||
foreach( $this->msgTypes as $type ) {
|
|
||||||
if( !empty($_SESSION['flash_messages']) ) return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Clear messages from the session data
|
|
||||||
*
|
|
||||||
* @author Mike Everhart
|
|
||||||
*
|
|
||||||
* @param string $type The type of messages to clear
|
|
||||||
* @return bool
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function clear($type='all') {
|
|
||||||
if( $type == 'all' ) {
|
|
||||||
unset($_SESSION['flash_messages']);
|
|
||||||
} else {
|
|
||||||
unset($_SESSION['flash_messages'][$type]);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function __toString() { return $this->hasMessages(); }
|
|
||||||
|
|
||||||
public function __destruct() {
|
|
||||||
//$this->clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
} // end class
|
|
||||||
?>
|
|
101
inc/pocheTool.class.php
Normal file
101
inc/pocheTool.class.php
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* poche, a read it later open source system
|
||||||
|
*
|
||||||
|
* @category poche
|
||||||
|
* @author Nicolas Lœuillet <support@inthepoche.com>
|
||||||
|
* @copyright 2013
|
||||||
|
* @license http://www.wtfpl.net/ see COPYING file
|
||||||
|
*/
|
||||||
|
|
||||||
|
class pocheTools
|
||||||
|
{
|
||||||
|
public static function initPhp()
|
||||||
|
{
|
||||||
|
define('START_TIME', microtime(true));
|
||||||
|
|
||||||
|
if (phpversion() < 5) {
|
||||||
|
die(_('Oops, it seems you don\'t have PHP 5.'));
|
||||||
|
}
|
||||||
|
|
||||||
|
error_reporting(E_ALL);
|
||||||
|
|
||||||
|
function stripslashesDeep($value) {
|
||||||
|
return is_array($value)
|
||||||
|
? array_map('stripslashesDeep', $value)
|
||||||
|
: stripslashes($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (get_magic_quotes_gpc()) {
|
||||||
|
$_POST = array_map('stripslashesDeep', $_POST);
|
||||||
|
$_GET = array_map('stripslashesDeep', $_GET);
|
||||||
|
$_COOKIE = array_map('stripslashesDeep', $_COOKIE);
|
||||||
|
}
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
register_shutdown_function('ob_end_flush');
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function isUrl($url)
|
||||||
|
{
|
||||||
|
// http://neo22s.com/check-if-url-exists-and-is-online-php/
|
||||||
|
$pattern='|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i';
|
||||||
|
|
||||||
|
return preg_match($pattern, $url);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getUrl()
|
||||||
|
{
|
||||||
|
$https = (!empty($_SERVER['HTTPS'])
|
||||||
|
&& (strtolower($_SERVER['HTTPS']) == 'on'))
|
||||||
|
|| (isset($_SERVER["SERVER_PORT"])
|
||||||
|
&& $_SERVER["SERVER_PORT"] == '443'); // HTTPS detection.
|
||||||
|
$serverport = (!isset($_SERVER["SERVER_PORT"])
|
||||||
|
|| $_SERVER["SERVER_PORT"] == '80'
|
||||||
|
|| ($https && $_SERVER["SERVER_PORT"] == '443')
|
||||||
|
? '' : ':' . $_SERVER["SERVER_PORT"]);
|
||||||
|
|
||||||
|
$scriptname = str_replace('/index.php', '/', $_SERVER["SCRIPT_NAME"]);
|
||||||
|
|
||||||
|
if (!isset($_SERVER["SERVER_NAME"])) {
|
||||||
|
return $scriptname;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'http' . ($https ? 's' : '') . '://'
|
||||||
|
. $_SERVER["SERVER_NAME"] . $serverport . $scriptname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function renderJson($data)
|
||||||
|
{
|
||||||
|
header('Cache-Control: no-cache, must-revalidate');
|
||||||
|
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
|
||||||
|
header('Content-type: application/json; charset=UTF-8');
|
||||||
|
|
||||||
|
echo json_encode($data);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function redirect($rurl = '')
|
||||||
|
{
|
||||||
|
if ($rurl === '') {
|
||||||
|
$rurl = (empty($_SERVER['HTTP_REFERER'])?'?':$_SERVER['HTTP_REFERER']);
|
||||||
|
if (isset($_POST['returnurl'])) {
|
||||||
|
$rurl = $_POST['returnurl'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// prevent loop
|
||||||
|
if (empty($rurl) || parse_url($rurl, PHP_URL_QUERY) === $_SERVER['QUERY_STRING']) {
|
||||||
|
$rurl = pocheTool::getUrl();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (substr($rurl, 0, 1) !== '?') {
|
||||||
|
$ref = pocheTool::getUrl();
|
||||||
|
if (substr($rurl, 0, strlen($ref)) !== $ref) {
|
||||||
|
$rurl = $ref;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
header('Location: '.$rurl);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user