注意在导入时保持数据库教程的编码与txt文档编码尽量一样,要不可能出现乱码问题哦。
<?php教程
//验证文件类型和错误
if($_FILES["insert_first"]["type"] == "text/plain"){
echo "第一步:文件类型上传正确"."<br/>";
if($_FILES["insert_first"]["error"]){
echo "上传错误:".$_FILES["insert_first"]["error"]."<br/>";
}else{
echo "文件名称:".$_FILES["insert_first"]["name"]."<br/>";
echo "文件类型:".$_FILES["insert_first"]["type"]."<br/>";
echo "文件大小:".($_FILES["insert_first"]["size"]/1024)."Kb<br/>";
echo "临时名称:".$_FILES["insert_first"]["tmp_name"]."<br/>";
}
}else{
echo "上传文件格式不正确";
exit;
}//连接数据库
$con = new mysql教程i('localhost','s503440db0','td9928ps教程','s503440db0');
if(mysqli_connect_errno()){
echo "链接数据库失败";
exit;
}
//打开文件
$file = fopen($_FILES["insert_first"]["tmp_name"],"r") or exit("打开文件失败!");var_dump($file);
echo "<br/>";while(!feof($file)){
//逐行分拆
$row = explode(",",fgets($file));
$row0 = $row[0];
$row1 = (string)$row[1];
echo "$row0"."---"."$row1"."<br/>";//判断记录是否存在
$query1 = "select firstid from firstcategory where firstid=$row0";
$query2 = "select firstname from firstcategory where firstname='$row1'";
$result1 = $con->query($query1);
$result2 = $con->query($query2);
//判断行数
$result1 = mysqli_num_rows($result1);
$result2 = mysqli_num_rows($result2);
if($result1){
echo "行号{$row0}已存在<br/>";
}elseif($result2){
echo "分类{$row1}已存在<br/>";
}else{
$query = "insert into firstcategory (firstid,firstname) values ($row0,'音乐')";
$result = $con->query($query);
}
}
echo "导入结束,请检查数据是否正确 http://www.111cn.net ";
fclose($file);
$con->close();?>
mysql数据库
在PHP 中使用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取"create table firstcategory (
firstid int unsigned not null primary key,
firstname char(50) not null
)";
(1).REMOTE_ADDR:浏览当前页面的用户计算机的ip地址
(2).HTTP_X_FORWARDED_FOR: 浏览当前页面的用户计算机的网关
(3).HTTP_CLIENT_IP:客户端的ip
在PHP 中使用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取。
不过要注意的事,并不是每个代理服务器都能用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的 IP。
还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用$_SERVER["HTTP_X_FORWARDED_FOR"] 取到的值将是空的。
实例
//经过复杂的判断与算是的获取IP地址函数
function getIP() {
if (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
}
elseif (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif (getenv('HTTP_X_FORWARDED')) {
$ip = getenv('HTTP_X_FORWARDED');
}
elseif (getenv('HTTP_FORWARDED_FOR')) {
$ip = getenv('HTTP_FORWARDED_FOR');
}
elseif (getenv('HTTP_FORWARDED')) {
$ip = getenv('HTTP_FORWARDED');
}
else {$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
更多详细内容请查看:php教程er/21/9a34bfce63448271c7b52fa168c3e40f.htm">http://www.111cn.net/phper/21/9a34bfce63448271c7b52fa168c3e40f.htm
//可以分出内网与外网站ip地址获取程序
function getip_out(){
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips教程 = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
for ($i = 0; $i < count($ips); $i++) {
if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
$ip = $ips[$i];
break;
}
}
}
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
echo getip_out();
更多详细内容请查看:http://www.111cn.net/phper/21/9a34bfce63448271c7b52fa168c3e40f.htm
这里包括了,日期的正则 验证日期 数字 电话号码式 时间格式等一些常用的正则表达式
匹配中文字符的正则表达式: [u4e00-u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^x00-xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
匹配空白行的正则表达式:ns*r
评注:可以用来删除空白行
匹配HTML标记的正则表达式: <(S*?)[^>]*>.*? </1> ¦ <.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
匹配首尾空白字符的正则表达式:^s* ¦s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
评注:表单验证时很实用
匹配网址URL的正则表达式:[a-zA-z]+://[^s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用
匹配国内电话号码:d{3}-d{8} ¦d{4}-d{7}
评注:匹配形式如 0511-4405222 或 021-87888822
匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始
匹配中国邮政编码:[1-9]d{5}(?!d)
评注:中国邮政编码为6位数字
匹配身份证:d{15} ¦d{18}
评注:中国的身份证为15位或18位
匹配ip地址:d+.d+.d+.d+
评注:提取ip地址时有用
匹配特定数字:
^[1-9]d*$ //匹配正整数
^-[1-9]d*$ //匹配负整数
^-?[1-9]d*$ //匹配整数
^[1-9]d* ¦0$ //匹配非负整数(正整数 + 0)
^-[1-9]d* ¦0$ //匹配非正整数(负整数 + 0)
^[1-9]d*.d* ¦0.d*[1-9]d*$ //匹配正浮点数
^-([1-9]d*.d* ¦0.d*[1-9]d*)$ //匹配负浮点数
^-?([1-9]d*.d* ¦0.d*[1-9]d* ¦0?.0+ ¦0)$ //匹配浮点数
^[1-9]d*.d* ¦0.d*[1-9]d* ¦0?.0+ ¦0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d* ¦0.d*[1-9]d*)) ¦0?.0+ ¦0$ //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
php教程 unlink与rmdir实现文件与文件夹删除
删除目录及文件
<?php
function delsvn($dir) {
$dh=opendir($dir);
//找出所有".svn" 的文件夹:
while ($file=readdir($dh)) {
if($file!="." && $file!="..") {
$fullpath=$dir."/".$file;
if(is_dir($fullpath)) {
if($file==".svn"){
delsvndir($fullpath);
}else{
delsvn($fullpath);
}
}
}
}
closedir($dh);
}
function delsvndir($svndir){
//先删除目录下的文件:
$dh=opendir($svndir);
while($file=readdir($dh)){
if($file!="."&&$file!=".."){
$fullpath=$svndir."/".$file;
if(is_dir($fullpath)){
delsvndir($fullpath);
}else{
unlink($fullpath);
}
}
}
closedir($dh);
//删除目录文件夹
if(rmdir($svndir)){
return true;
}else{
return false;
}
}
$dir=dirname(__FILE__);
//echo $dir;
delsvn($dir);
?>删除目录
<?
function deldir($dir) {
//先删除目录下的文件:
$dh=opendir($dir);
while ($file=readdir($dh)) {
if($file!="." && $file!="..") {
$fullpath=$dir."/".$file;
if(!is_dir($fullpath)) {
unlink($fullpath);
} else {
deldir($fullpath);
}
}
}
closedir($dh);
//删除当前文件夹:
if(rmdir($dir)) {
return true;
} else {
return false;
}
}
?>
php教程和mysql教程分页最基本的不是limti s,e 然后加page就可以实现了。
<?php
//初始参数设置
$pagesize=5 ; //分页大小
$pagenum=1 ; //默认为第一页
//第一步:获取当前是第几页
if($_GET){
if($_GET['pagenum']){
$pagenum=$_GET['pagenum'];
}
}
//第二步:获取当前分页的内容列表$sql="Select * From message limit ".($pagenum-1)*$pagesize.",$pagesize ";
$result=mysql_query($sql);while(($row=mysql_fetch_array($result))==true){
echo '<hr>'.$row["title"].'</hr>';
}//第三步:获取记录数
$sql="Select id From message";
$result=mysql_query($sql);
$rownum=mysql_num_rows($result);//第四步:记算分页数
if(($rownum%$pagesize)==0){
$pagecount=$rownum/$pagesize;
}else{
$pagecount=(int)($rownum/$pagesize);
}//第五步:得到分页链接
$url=$_SERVER["REQUEST_URI"];
$url=parse_url($url);
$url=$url["path"];//第六步:输出分页链接
if($pagenum==1){
echo "[第一页] [上一页]";
}else{
echo "[<a href="$url?pagenum=1">第一页</a>] [<a href="$url?pagenum=".($pagenum-1)."">上一页</a>]";
}
if($pagecount==$pagenum){
echo "[下一页] [最后一页]";
}else{
echo "[<a href="$url?pagenum=".($pagenum+1)."">下一页</a>] [<a href="$url?pagenum=".($pagecount)."">最后一页</a>]";
}?>
部分代码
$rs->pagesize=10;//每页记录数
$curpage=$_GET['curpage'];
if ($curpage==""){
$curpage=1;
}
$rs->absolutepage=$curpage;
for ($i=1 ;$i<=$rs->pagesize;$i++){
if (!$rs->eof) {
//内容。。。。。。。。。。。。。
$rs->movenext;
}
}
if ($rs->recordcount==0){
echo "首页 ";
}
else{
if ($curpage==1){
echo "首页 ";
}
else{
echo "<a href='ad_chanpinleibie.php?curpage=1'>首页</a> ";
}
}
if ($rs->recordcount==0){
echo "上一页 ";
}
else{
if ($curpage==1){
echo "上一页 ";
}
else{
echo "<a href='ad_chanpinleibie.php?curpage=".($curpage-1)."'>上一页</a> ";
}
}
if ($rs->pagecount<($curpage+1)){
echo "下一页 ";
}
else{
echo "<a href='ad_chanpinleibie.php?curpage=".($curpage+1)."'>下一页</a> ";
}
if ($rs->recordcount==0){
echo "尾页 ";
echo "共1页 ";
echo "第1页";
}
else{
if ($rs->pagecount<($curpage+1)){
echo "尾页 ";
echo "共".$rs->pagecount."页 ";
echo "第".$curpage."页";
}
else{
echo "<a href='ad_chanpinleibie.php?curpage=".$rs->pagecount."'>尾页</a> ";
echo "共".$rs->pagecount."页 ";
echo "第".$curpage."页";
}
}
}
$rs->Close();
$conn->Close();
$rs=null;
$conn=null;