/** ', ' tags make things look awfully weird (breaks things out of the
* Global Function
*
* @author Avenger
* @version 1.14 $Id 2003-05-30 10:10:08 $
*/
/**
* 弹出提示框
*
* @access public
* @param string $txt 弹出一个提示框,$txt为要弹出的内容
* @return void
*/
function popbox($txt) {
echo "<script>alert('".$txt."')</script>";
}
/**
* 非法操作警告
*
* @access public
* @param string $C_alert 提示的错误信息
* @param string $I_goback 返回后返回到哪一页,不指定则不返回
* @return void
*/
function alert($C_alert,$I_goback='main.php') {
if(!empty($I_goback)) {
echo "<script>alert('$C_alert');window.location.href='$I_goback';</script>";
} else {
echo "<script>alert('$C_alert');</script>";
}
}
/**
* 产生随机字符串
*
* 产生一个指定长度的随机字符串,并返回给用户
*
* @access public
* @param int $len 产生字符串的位数
* @return string
*/
function randstr($len=6) {
$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-@#~'; // characters to build the password from
mt_srand((double)microtime()*1000000*getmypid()); // seed the random number generater (must be done)
$password='';
while(strlen($password) $password.=substr($chars,(mt_rand()%strlen($chars)),1);
return $password;
}
/**
* 判断下拉菜音的选取项
*
* 可以判断字符串一和字符串二是否相等.从而使相等的项目在下拉菜单中被选择
*
* @access public
* @param string $str1 要比较的字符串一
* @param string $str2 要比较的字符串二
* @return string 相等返回字符串"selected",否则返回空字符串
*/
function ckselect($str1,$str2) {
if($str1==$str2) {
return ' selected';
}
return '';
}
/**
* 一个自定义的Ftp函数
*
* @access private
* @return void
*/
function myftp($ftp_server,$ftp_port,$ftp_username,$ftp_password,$ftp_path='/') {
$ftpid=@ftp_connect($ftp_server,$ftp_port) or die('Connect To Ftp Server Error!');
@ftp_login($ftpid,$ftp_username,$ftp_password) or die('Login Ftp Error!');
@ftp_chdir($ftpid,'/'.$ftp_path) or die('Chdir Error!');
return $ftpid;
}
/**
* 截取中文部分字符串
*
* 截取指定字符串指定长度的函数,该函数可自动判定中英文,不会出现乱码
*
* @access public
* @param string $str 要处理的字符串
* @param int $strlen 要截取的长度默认为10
* @param string $other 是否要加上省略号,默认会加上
* @return string
*/
function showtitle($str,$strlen=10,$other=true) {
$j = 0;
for($i=0;$i if(ord(substr($str,$i,1))>0xa0) $j++;
if($j%2!=0) $strlen++;
$rstr=substr($str,0,$strlen);
if (strlen($str)>$strlen && $other) {$rstr.='...';}
return $rstr;
}
/**
* 制作链接
*
* @access public
* @param string url 要链接到的网址
* @param string linktext 显示的链接文字
* @param string target 目标框架
* @param string extras 扩展参数
* @return string
*/
function make_link ($url, $linktext=false, $target=false, $extras=false) {
return sprintf("%s",
$url,
($target ? ' target="'.$target.'"' : ''),
($extras ? ' '.$extras : ''),
($linktext ? $linktext : $url)
);
}
/**
* 格式化用户评论
*
* @access public
* @param string
* @return void
*/
function clean_note($text) {
$text = htmlspecialchars(trim($text));
/* turn urls into links */
$text = preg_replace("/((mailto|http|ftp|nntp|news):.+?)(>|\s|\)|\"|\.\s|$)/","\1\3",$text);
/* this 'fixing' code will go away eventually. */
$fixes = array('
', '
reset($fixes);
while (list(,$f) = each($fixes)) {
$text = str_replace(htmlspecialchars($f), $f, $text);
$text = str_replace(htmlspecialchars(strtoupper($f)), $f, $text);
}
/* <br> tag). Just convert them to <br>'s <br> */ <br> $text = str_replace (array ('<p>', '</p>
<p>'), '<br>', $text); <br> /* Remove </p> tags to prevent it from showing up in the note */ <br> $text = str_replace (array ('
/* preserve linebreaks */
$text = str_replace("\n", "
", $text);
/* this will only break long lines */
if (function_exists("wordwrap")) {
$text = wordwrap($text);
}
// Preserve spacing of user notes
$text = str_replace(" ", " ", $text);
return $text;
}
/**
* 获取图象信息的函数
*
* 一个全面获取图象信息的函数
*
* @access public
* @param string $img 图片路径
* @return array
*/
function getimageinfo($img) {
$img_info = getimagesize($img);
switch ($img_info[2]) {
case 1:
$imgtype = "GIF";
break;
case 2:
$imgtype = "JPG";
break;
case 3:
$imgtype = "PNG";
break;
}
$img_size = ceil(filesize($img)/1000)."k";
$new_img_info = array (
"width"=>$img_info[0],
"height"=>$img_info[1],
"type"=>$imgtype,
"size"=>$img_size
);
return $new_img_info;
}
/**
* 计算当前时间
*
* 以微秒为单位返回当前系统的时间
*
* @access public
* @return real
*/
function getmicrotime() {
$tmp = explode(' ', microtime());
return (real)$tmp[1]. substr($tmp[0], 1);
}
/**
* 写文件操作
*
* @access public
* @param bool
* @return void
*/
function wfile($file,$content,$mode='w') {
$oldmask = umask(0);
$fp = fopen($file, $mode);
if (!$fp) return false;
fwrite($fp,$content);
fclose($fp);
umask($oldmask);
return true;
}
/**
* 加载模板文件
*
* @access public
* @return void
*/
function tpl_load($tplfile,$path='./templates/',$empty='remove') {
global $tpl;
$path ? '' : $path='./templates/';
require_once 'HTML/Template/PHPLIB.php';
$tpl = new Template_PHPLIB($path,$empty);
$tpl->setFile('main',$tplfile);
}
/**
* 模板解析输出
*
* @access public
* @return void
*/
function tpl_output() {
global $tpl;
$tpl->parse('output','main');
$tpl->p('output');
}
/**
* 邮件发送函数
*
* @access public private
* @param bool
* @return void
*/
function mailSender($from, $to, $title, $content) {
$from ? $from = 'sender@phpe.net' : '';
$title ? $title = 'From Exceed PHP...' : '';
$sig = "
感谢您使用我们的服务.\n\n
Exceed PHP(超越PHP)\n
$maildate\n\n
---------------------------------------------------------------------------------------
\n\n
去发现极限方法的唯一办法就是去超越它\n
超越PHP欢迎您(http://www.phpe.net)\n
";
$content .= $sig;
if (@mail($to, $title, $content, "From:$from\nReply-To:$from")) {
return true;
} else {
return false;
}
}
function br2none($str) {
return str_replace(array('
', '
'), "", $str);
}
/**
* UBB解析
*
* @param none
* @access public
* @return void
*/
function ubbParse($txt, $coverhtml=0) {
if ($coverhtml == 0) $txt = nl2br(new_htmlspecialchars($txt)); //BR和HTML转换
//只转换BR,不转换HTML
if ($coverhtml == 1) {
if (!preg_match('//is', $txt) && !preg_match('/
$txt = strip_tags($txt);
$txt = nl2br($txt);
} else {
$txt = str_replace('', '', $txt);
}
}
// pre and quote
//error_reporting(E_ALL);
$txt = preg_replace( "#\[quote\](.+?)\[/quote\]#is", "
\1", $txt );
$txt = preg_replace( "#\[code\](.+?)\[/code\]#ise", "'
'.br2none('').''", $txt );
// Colors 支持篏套
while( preg_match( "#\[color=([^\]]+)\](.+?)\[/color\]#is", $txt ) ) {
$txt = preg_replace( "#\[color=([^\]]+)\](.+?)\[/color\]#is", "\2", $txt );
}
// Align
$txt = preg_replace( "#\[center\](.+?)\[/center\]#is", "
$txt = preg_replace( "#\[left\](.+?)\[/left\]#is", "
$txt = preg_replace( "#\[right\](.+?)\[/right\]#is", "
// Sub & sup
$txt = preg_replace( "#\[sup\](.+?)\[/sup\]#is", "\1", $txt );
$txt = preg_replace( "#\[sub\](.+?)\[/sub\]#is", "\1", $txt );
// email tags
// [email]avenger@php.net[/email] [email=avenger@php.net]Email me[/email]
$txt = preg_replace( "#\[email\](\S+?)\[/email\]#i" , "\1", $txt );
$txt = preg_replace( "#\[email\s*=\s*\"\;([\.\w\-]+\@[\.\w\-]+\.[\.\w\-]+)\s*\"\;\s*\](.*?)\[\/email\]#i" , "\2", $txt );
$txt = preg_replace( "#\[email\s*=\s*([\.\w\-]+\@[\.\w\-]+\.[\w\-]+)\s*\](.*?)\[\/email\]#i" , "\2", $txt );
// url tags
// [url]http://www.phpe.net[/url] [url=http://www.phpe.net]Exceed PHP![/url]
$txt = preg_replace( "#\[url\](\S+?)\[/url\]#i" , "\1", $txt );
$txt = preg_replace( "#\[url\s*=\s*\"\;\s*(\S+?)\s*\"\;\s*\](.*?)\[\/url\]#i" , "\2", $txt );
$txt = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#i" , "\2", $txt );
// Start off with the easy stuff
$txt = preg_replace( "#\[b\](.+?)\[/b\]#is", "\1", $txt );
$txt = preg_replace( "#\[i\](.+?)\[/i\]#is", "\1", $txt );
$txt = preg_replace( "#\[u\](.+?)\[/u\]#is", "\1", $txt );
$txt = preg_replace( "#\[s\](.+?)\[/s\]#is", "
// Header text
$txt = preg_replace( "#\[h([1-6])\](.+?)\[/h[1-6]\]#is", "
// Images
$txt = preg_replace( "#\[img\](.+?)\[/img\]#i", "
", $txt );
// Attach
$txt = preg_replace( "#\[attach\s*=\s*\"\;\s*(\S+?)\s*\"\;\s*\](.*?)\[\/attach\]#i" , "相关附件:\1", $txt );
$txt = preg_replace( "#\[attach\s*=\s*(\S+?)\s*\](.*?)\[\/attach\]#i" , "相关附件:\1", $txt );
// Iframe
$txt = preg_replace( "#\[iframe\](.+?)\[/iframe\]#i", "", $txt );
// (c) (r) and (tm)
$txt = preg_replace( "#\(c\)#i" , "©" , $txt );
$txt = preg_replace( "#\(tm\)#i" , "" , $txt );
$txt = preg_replace( "#\(r\)#i" , "®" , $txt );
return $txt;
}
//重新格式化日期
function format_date($date) {
if (!preg_match('/^\d+$/', $date)) $date = strtotime(trim($date));
$sec = time() - $date;
//Sec 1 day is 86400
if ($sec return round($sec/3600). ' hours ago';
} elseif ($sec return round($sec/86400). ' days ago';
} elseif ($sec return round($sec/(86400*7)). ' weeks ago';
} else {
return date('Y-m-d', $date);
}
}
?>

PhpSessionStrackUserDataacrossMultiplePageRequestsusesuseiquiTIdStoredInacookie.her'ShowtomagetheFectiv: 1) StartaSessionswithSession_start () und storateatain $ _Session.2) regeneratethessionSessionInoginWithSession_IDENT_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTEL

In PHP können durch Sitzungsdaten in den folgenden Schritten iteriert werden: 1. Starten Sie die Sitzung mit Session_Start (). 2. Iterieren Sie durch die Foreach-Schleife durch alle Schlüsselwertpaare im $ _Session-Array. 3. Wenn Sie komplexe Datenstrukturen verarbeiten, verwenden Sie is_array () oder is_object () Funktionen und verwenden Sie print_r (), um detaillierte Informationen auszugeben. 4. Bei der Optimierung von Traversal kann Paging verwendet werden, um eine gleichzeitige Verarbeitung großer Datenmengen zu vermeiden. Auf diese Weise können Sie PHP -Sitzungsdaten in Ihrem tatsächlichen Projekt effizienter verwalten und verwenden.

Die Sitzung realisiert die Benutzerauthentifizierung über den serverseitigen Statusverwaltungsmechanismus. 1) Erstellung der Sitzung und Erzeugung eindeutiger IDs, 2) IDs werden durch Cookies weitergeleitet, 3) Server speichert und greift auf Sitzungsdaten über IDs, 4) Benutzerauthentifizierung und Statusverwaltung zugeordnet und verbessert die Sicherheit und die Benutzererfahrung von Anwendungen.

TostoreaussersnameInaphpSession, startTheSessionwithSession_Start (), thenAnthenameto $ _Session ['Benutzername']

Gründe für einen Phpessionsfehler sind Konfigurationsfehler, Cookie -Probleme und Sitzungsablauf. 1. Konfigurationsfehler: Überprüfen Sie die richtige Sitzung und setzen Sie die korrekte Sitzung. 2. Kookie -Problem: Stellen Sie sicher, dass der Cookie korrekt eingestellt ist. 3.Sesion läuft ab: Passen Sie die Sitzung an.

Zu den Methoden zur Debugg -Sitzungsprobleme in PHP gehören: 1. Überprüfen Sie, ob die Sitzung korrekt gestartet wird. 2. Überprüfen Sie die Lieferung der Sitzungs -ID; 3. Überprüfen Sie den Speicher und das Lesen von Sitzungsdaten. 4. Überprüfen Sie die Serverkonfiguration. Durch Ausgabe von Sitzungs-ID und Daten, Anzeigen von Sitzungsdateiinhalten usw. können Sie effektiv Diagnose und Lösen von Sitzungen im Zusammenhang mit Sitzungen diagnostizieren und lösen.

Mehrere Anrufe bei Session_Start () führen zu Warnmeldungen und möglichen Datenüberschreibungen. 1) PHP wird eine Warnung ausstellen und veranlassen, dass die Sitzung gestartet wurde. 2) Dies kann zu unerwarteten Überschreibungen von Sitzungsdaten führen. 3) Verwenden Sie Session_Status (), um den Sitzungsstatus zu überprüfen, um wiederholte Anrufe zu vermeiden.

Das Konfigurieren des Sitzungslebenszyklus in PHP kann durch Einstellen von Sitzungen erreicht werden. 1) Session.gc_maxLifetime steuert die Überlebenszeit der serverseitigen Sitzungsdaten, 2) Sitzung.cookie_Lifetime steuert den Lebenszyklus von Client-Cookies. Wenn der Keks auf 0 eingestellt ist, läuft es, wenn der Browser geschlossen ist.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Dreamweaver Mac
Visuelle Webentwicklungstools
