php过滤或替换textarea换行回车\r\n的2种方法

 更新时间:2016年11月25日 14:49  点击:2157
如果我们利用textarea提交的数据回车换行与空格都会自动过滤了,所有提交的数据都是没有格式的,下面我们一起来看看解决textarea中回车换行问题。

方法一,

 代码如下 复制代码

preg_replace("'([rn])[s]+'", "", $content) //去除回车换行符

方法二,

 代码如下 复制代码
str_replace(chr(13),'<br />',$body ) //这样把body中的回车变成了br了。

本站原创转载注明来源 www.111cn.net

memcached的启动与关闭方法很比较简单,下面我来介绍在linux系统中具体使用什么命令来启动或停止memcached吧,希望文章对各位会有所帮助。


1.  启动memcached

# /usr/local/bin/memcached -d -m 2048  -u root -l 192.168.1.20 -p 12111 -c 1024 -P /tmp/memcached.pid

参数说明:
-d 启动为守护进程
-m <num> 分配给Memcached使用的内存数量,单位是MB,默认为64MB
-u <username> 运行Memcached的用户,仅当作为root运行时
-l <ip_addr> 监听的服务器IP地址,默认为环境变量INDRR_ANY的值
-p <num> 设置Memcached监听的端口,最好是1024以上的端口
-c <num> 设置最大并发连接数,默认为1024
-P <file> 设置保存Memcached的pid文件,与-d选择同时使用

还有一些参数具体请参考:

# /usr/local/bin/memcached -h

2.  结束memcached

# kill /tmp/memcached.pid

在php中数组是一个非常重要的数据存储类型,本文章主要是介绍了数据创建与数组删除及遍历查询数据值输出,下面一起来看看。

数组的声明

1、直接赋值的方式声明数组

    $数组变量名[索引值] = 资料内容 //其中索引值(下标)可以是一个字符串或数字

但有的时候,我们也可以直接给数组赋值,并不填写“索引值”,那第此时,数组的下标就会自动以数字0开始增加。

    $数组变量名[] = 资料内容 //其中索引值(下标)可以是一个字符串或数字

 2、使用array()语言结构新建数组

在实际使用中我们可以用array()语言结构来新建一个数组,并初始化数组。

    $数组变量名=array( key1 => value1, key2 => value2, ...... ,keyN => valueN );

当然,像上面我们并不一定就这样,我们有的时候会像下面这样来做:(区别在于索引值为数字)

    $数组变量名=array( value1, value2, ...... , valueN );

 3、多维数组的声明

多维数组其实也就是在数组里面再次存放数组。如下:

    $content = array (
    array(1,'高某','A公司','北京市'),
    array(2,'高某1','B公司','北京市'),
    array(3,'高某','C公司','北京市')
    );

 数组的遍历

1、使用for语句循环遍历数组

在其它的编程语言中,数组的遍历通常都是使用for循环语句,通过数组的下标来访问数组中每个成员元素,但要求数组的下标必须是连续的数字索引。而在PHP中,不仅可以指定非连续的数字索引值,而且还存在以字符为下标的关联数组。所以在PHP中,其实是很少使用for语句来遍历数组。下面来晒一个例子给大家看一下,大家应该不会陌生。

  

 代码如下 复制代码
  <?php
    //使用array()语句将联系人列表中第一条记录声明成一维数组$contact
    $contact=array(1,"高某","A公司","北京市","(015)9582451","gao@php.com");
    //以表格的形式输出一维数组中的每个元素
    echo '<table border="1" width="600" align="center">'; //输出<table>标记定义表格
    echo '<caption><h1>联系人列表</h1></caption>'; //输出表头
    echo '<tr bgcolor="#dddddd">'; //输出表格的行开始,背景为灰色
    
    //以html的th标记输出表格的字段名称
    echo '<th>编号</th><th>姓名</th><th>公司</th><th>地址</th><th>电话</th><th>EMAIL</th>';
    echo '</tr><tr>';
    for($i=0;$i<count($contact);$i++){ //使用for循环来输出一维数组中的元素
    echo '<td>'.$contact[$i].'</td>';
    }
    echo '</tr></table>'; //输出表格的关闭标记
    ?>

遍历多维数组时,要使用循环嵌套逐层进遍历。在此就不用代码列出来了。

 
2、使用foreach语句遍历数组

既然for循环语句在PHP中并不常用,那么就让我们来看一下foreach到底有什么可取之处吧!

foreach语句有两种语法格式,第二种比较次要但却是第一种有用的扩展。

第一种语法格式:

    foreach(array_expression as $value ){
    
    循环体
    
    }

第二种语法模式:

    foreach(array_expression as $key => $value){
    
    循环体
    
    }

 3、联合使用list()、each()、和while()、循环遍历数组

each()函数

each()函数需要传递一个数组作为参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置。键/值对被返回为带有四个元素的关联和索引混合的数组,键名分别为0、1、key和value。其中键名0和key对应的值是一样的,是数组元素的键名,1和value则包含有数组元素的值。如果内部指针越过了数组的末端,则each()返回FALSE。each()函数的使用如下所示:

   

 代码如下 复制代码
<?php
    //声明一个数组$contact作为each()函数的参数
    $contact=array("ID"=>1,"姓名"=>"高某","http://www.111cn.Net公司"=>"A公司","地址"=>"北京市");
    
    $id=each($contact); //返回数组$contact中第一个元素的键/值对,是带有4个元素的数组
    print_r($id); //返回数组$id:Array([1]=>1[value]=>1[0]=>ID[key]=>ID)
    $name=each($contact); //返回数组Rcontact中第二个元素的键/值对,是带有4个元素的数组
    print_r($name); //返回数组$name:Array([1]=>高某 [value]=>高某 [0]=>姓名 [key]=>姓名)
    $company=each($contact);
    print_r($company);
    $address=each($contact);
    print_r($address);
    $no=each($contact); //已经到数组$contact的末端,返回false
    var_dump($no); //输出$no的值:bool(false)
    
    ?>

 list()函数

这不是真正的函数,而是PHP的语言结构。list()用一步操作给一组变量进赋值,即把数组中的值赋给一些变量。list()仅能用于数字索引的数组并假定数字索引从0开始。语法格式如下所示:

    list(mixed varname,mixed ...)=array_expression //list()语句的语法格式

list()语句和其它函数在使用上有很大的区别,并不是直接接收一个数组作为参数。而是通过“=”去处符以赋值的方式,将数组中每个元素的值,对应的赋给list()函数中的每个参数。list()函数又将它中的每个参数转换为直接可以在脚本中使用的变量。使用方法如下 :

  

 代码如下 复制代码
  <?php
    $info=array('coffee','brown','caffeine'); //声明一个索引数组$info
    
    list($drink,$color,$power)=$info; //将数组中的所有元素转为变量
    echo "$drink is $color and $power makes it special.n";//输出的三个变量值是数组中三个元素的值
    
    list($drink, ,$power)=$info; //将数组中的部分元素变为变量
    echo "$drink has $power.n"; //输出的两个变更值是数组中的前两个元素的值
    
    list(,,$power)=$info; //跳过前两个变量只将数组中第三个元素的值转为变量
    echo "I need $power!n"; //输出的一个变量值是数组中桃花汛三个元素的值勤
    ?>

通过上例了解list()函数的用法之后,将each()函数和list()函数结合起来使用。代码如下:

   

 代码如下 复制代码
<?php
    $contact=array("ID"=>1,"姓名"=>"http://www.111Cn.Net","公司"=>"A公司","地址"=>"北京市");
    list($key,$value)=each($contact); //将each()函数和list()函数联合使用
    echo "$key=>$value"; //输出变量$key和$value,中间使用"=>"分隔
    ?>

 while()循环遍历数组

while()循环的语法格式如下:

    while( list($key,$value) = each(array_expressin) ){
    循环体;
    }

使用这种组合改写前面使用foreach遍历过的一维数组。代码如下所示:

   

 代码如下 复制代码
<?php
    //声明一个一维的关联数组$contact
    $contact=array("ID"=>1,
    "姓名"=>"高某",
    "公司"=>"A公司",
    "地址"=>"北京市",
    "电话"=>"(010)987665432",
    "EMAIL"=>"gao@php.com"
    );
    //以HTML列表的方式输出数组中每个元素的信息
    echo '<dl>一个联系人信息:';
    while(list($key,$value) = each($contact) ){ //将foreach语句改写成while,list()和each()的组合
    echo "<dd>$key:$value</dd>"; //输出每个元素的键/值勤
    }
    echo '</dl>';
    ?>

 4、数组内部指针控制函数遍历数组

对于数组指针的控制PHP提供了以下几个内奸函数可以利用。

》》current():是取得目前指针位置的内容资料

》》key():用来读取目前指针所指向资料的索引值

》》next():将数组中的内部指针移动到下一个单无

》》prev():将数组的内部指针倒回一位

》》end():将数组的内部指针向最后一个元素

》》reset():将目前指针无条件移至第一个索引位置

这些函数的参数都只有一个,就是要操作的数组本身。在下面的示例中,将使用这些数组指针函数控制数组中元素的读取顺序。代码如下所示:

 

 代码如下 复制代码
   <?php
    //声明一个一维的关联数组$contact,使用"=>"去处符指定了每个元素的字符串下标
    $contact = array("ID"=>1,
    "姓名"=>"高某",
    "公司"=>"A公司",
    "地址"=>"北京市",
    "电话"=>"(010)98765432",
    "EMAIL"=>"gao@php.com"
    );
    //数组刚声明时,数组指针在数组中第一个元素位置
    //使用key()和current()函数传入数组$contact,返回数组中当前元素的键和值
    echo '第一个元素:'.key($contact).'=>'.current($contact).'<br>'; //输出:第一个元素:ID=>1
    echo '第一个元素:'.key($contact).'=>'.current($contact).'<br>'; //数组指针没有移动,输出同上
    
    next($contact); //将数组$contact中的指针向一个元素移动一次,指向第二个元素的位置
    next($contact); //将数组$contact中的指针向一个元素移动一次,指向第三个元素的位置
    echo '第三个元素:'.key($contact).'=>'.current($contact).'<br>'; //输出第三个元素的键和值
    
    end($contact); //再将数组$contact中指针移动到最后,指向最后一个元素
    echo '最后一个元素:'.key($contact).'=>'.current($contact).'<br>'; //输出最后一个元素的键和值
    
    prev($contact); //将数组$contact中的指针倒回一位,指向最后第二个元素
    echo '最后第二个元素:'.key($contact).'=>'.current($contact).'<br>'; //输出最后第二个元素的键和值
    
    reset($contact); //再将数组$contact中的指针重置到第一个元素的位置,指向第一个元素
    echo '又回到了第一个元素'.key($contact).'=>'.current($contact).'<br>'; //输出第一个元素的键和值
    ?>

数据排序


•sort() 函数用于对数组单元从低到高进行排序。
•rsort() 函数用于对数组单元从高到低进行排序。
•asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
•arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
•ksort() 函数用于对数组单元按照键名从低到高进行排序。
•krsort() 函数用于对数组单元按照键名从高到低进行排序。

例子:

 代码如下 复制代码
<?php
$arr = array("b", "a", "c");
sort($arr);
print_r($arr);
?>

运行该例子输出:

Array ( [0] => a [1] => b [2] => c )
在本例中, $arr 数组单元被按照字母顺序排序,而数组单元经过排序后,键值重新分配。

rsort()
PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

asort()
PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。

语法:

bool asort( array &array [, int sort_flags] )
可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。

例子:

 代码如下 复制代码
<?php
$arr = array("b", "a", "c");
asort($arr);
print_r($arr);
?>

运行该例子输出:

Array ( [1] => a [0] => b [2] => c )

注:本文内容参考于《细说PHP》中的数组部分,仅作学习之余的个人笔记。

php中取小数位的函数有sprintf,ceil,floor,round等等函数来实现四舍五入,下面我们就一起来看看具体的实例吧。

本篇文章将使用php对数字进行四舍五入保留N位小数,以及使用php对数字进行取整的方法做个小总结。

(1)php保留三位小数并且四舍五入

 代码如下 复制代码

$num=0.0215489;
echo sprintf("%.3f", $num); // 0.022


(2)php保留三位小数不四舍五入

 

 代码如下 复制代码
$num=0.0215489;
echo substr(sprintf("%.4f", $num),0,-1); // 0.021


(3)php进一法取整数(这个在分页程序的页数程序里面会用到)

 代码如下 复制代码

echo ceil(4.3);    // 5
echo ceil(9.999);  // 10


(4)php舍去法取整数

 代码如下 复制代码

echo floor(4.3);   // 4
echo floor(9.999); // 9

(5),round函数

例 1. round() 例子

 代码如下 复制代码

<?php
echo round(3.4);         // 3
echo round(3.5);         // 4
echo round(3.6);         // 4
echo round(3.6, 0);      // 4
echo round(1.95583, 2);  // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2);    // 5.05
echo round(5.055, 2);    // 5.06
?> 

下面我们一起来看看php中关于抽象(abstract)类和抽象方法的问题解析,希望本文章对各位同学会有所帮助哦。

在面向对象(OOP)语言中,一个类可以有一个或多个子类,而每个类都有至少一个公有方法作为外部代码访问的接口。而抽象方法就是为了方便继承而引入的,现在来看一下抽象类和抽象方法分别是如何定义以及他们的特点。

什么是抽象方法?我们在类里面定义的只有方法名没有方法体的方法就是抽象方法,所谓没有方法体就是在方法声明的时候没有大括号以及其中的内容,而是直接声明时在方法名后加上分号结束,另外在声明抽象方法时还要加一个关键字"abstract"来修饰。


1、抽象关键字 :abstract

抽象就是无法确切的说明,但又有一定的概念或者名称,在PHP中声明一个抽象类或者方法我们需要使用adstract关键字。

2、抽象方法和抽象类的定义

一个类中至少有一个方法是抽象的,我们称之为抽象类。所以如果定义抽象类首先定义抽象方法。

abstract class class1{                                             

   abstract function fun1();
……
}

1、类中至少有一个抽象方法
2、抽象方法不允许有{ }
3、抽象方法前面必须要加abstract


3、抽象类和方法使用规则


抽象类的几个特点:

1、不能被实例化,只能被继承

2、继承的派生类当中要把所有抽象方法重载才能实例化

php中关于抽象(abstract)类和抽象方法

关于抽象方法的声明如下:

 代码如下 复制代码

<?php
abstract function fun1();

?>


什么是抽象类呢?只要一个类里面有一个方法是抽象方法,那么这个类就必须定义为抽象类。抽象类也要使用关键字"abstract"来修饰,抽象类不能实例化对象,所以抽象方法作为子类方法重载的模板使用的,且要把继承的抽象类里的方法都实现。

关于抽象类以及抽象类的实现举例如下:

 代码如下 复制代码

<?php
abstract class User{  //定义抽象类
    abstract protected function getUser(); //定义抽象方法
    public function print_content(){
        print $this->getUser();
    }
}

class vipUser extends User{
    protected function getUser(){
        return "抽象类与抽象方法";
    }
}

$user=new vipUser(); //实例化子类
$user->print_content(); //抽象类与抽象方法
?>


注意:抽象类继承另外一个抽象类时(目的是对该抽象类的扩展),不能重写父类的抽象方法。

在PHP5.1中,抽象类中支持静态抽象方法。下面这个例子,看到静态抽象方法可以声明。实现这个方法时,必须是静态的方法。

 代码如下 复制代码

<?php
abstract class User{
 protected static  $sal=0;
 static abstract function getSal();
 static abstract function setSal($sal);
}
class VipUser extends User{
 static function getSal(){
  return self::$sal;
 }
 static function setSal($sal){
  self::$sal=$sal;
 }
}
VipUser::setSal(100);
echo "you sal is " . VipUser::getSal();
?>

[!--infotagslink--]

相关文章

  • php批量替换内容或指定目录下所有文件内容

    要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
  • php过滤所有的空白字符(空格、全角空格、换行等)

    在php中自带的trim函数只能替换左右两端的空格,感觉在有些情况下不怎么好使,如果要将一个字符串中所有空白字符过滤掉(空格、全角空格、换行等),那么我们可以自己写一个过滤函数。php学习str_replace函数都知道,可以批量替...2015-10-30
  • 解决vue字符串换行问题(绝对管用)

    这篇文章主要介绍了解决vue字符串换行问题(绝对管用),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-06
  • jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)

    本文实例讲述了jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)。分享给大家供大家参考,具体如下:这里介绍的jQuery拉动页面固定顶部显示,及自动消失效果,可能ie浏览器下有问题,不过火狐什么的都可以运行看效果...2015-10-30
  • php过滤所有的空白字符(空格、全角空格、换行等)

    在php中自带的trim函数只能替换左右两端的空格,感觉在有些情况下不怎么好使,如果要将一个字符串中所有空白字符过滤掉(空格、全角空格、换行等),那么我们可以自己写一个过滤函数。php学习str_replace函数都知道,可以批量替...2015-10-30
  • 用golang如何替换某个文件中的字符串

    这篇文章主要介绍了用golang实现替换某个文件中的字符串操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-25
  • prettier自动格式化去换行的实现代码

    这篇文章主要介绍了prettier自动格式化去换行的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-08-26
  • Idea使用正则表达式批量替换字符串的方法

    这篇文章给大家介绍了Idea使用正则表达式批量替换字符串的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2021-07-21
  • 浅谈Python3中print函数的换行

    这篇文章主要介绍了浅谈Python3中print函数的换行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-08-05
  • JS基于正则截取替换特定字符之间字符串操作示例

    这篇文章主要介绍了JS基于正则截取替换特定字符之间字符串操作方法,结合具体实例形式分析了JS基于正则实现针对特殊字符、数字等字符串类型的截取操作相关技巧,需要的朋友可以参考下...2017-02-08
  • Opencv实现绿幕视频背景替换功能

    这篇文章主要为大家详细介绍了Opencv实现绿幕视频背景替换功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
  • 字符串替换Replace仅替换第一个字符串匹配项

    C#里面的String.Replace(string,string)方法替换的时候是替换所有的匹配项,我们需要只替换第一个匹配项,写一个方法来实现这个功能...2020-06-25
  • jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)

    本文实例讲述了jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)。分享给大家供大家参考,具体如下:这里介绍的jQuery拉动页面固定顶部显示,及自动消失效果,可能ie浏览器下有问题,不过火狐什么的都可以运行看效果...2015-10-30
  • ASP.NET Lable中进行换行解决方案

    这个问题,应该算是很简单的问题,可说实在的,折腾了2个小时的时候,后面整出来的时候,真坑爹呢。现在把这个过程给大家,希望可以给大家一个提醒...2021-09-22
  • C++ string替换指定字符实例代码

    这篇文章主要给大家介绍了关于C++ string替换指定字符的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C++具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-04-25
  • php 批量替换程序的具体实现代码

    代码如下:复制代码 代码如下:<?php/***************************************************************************batch-replace, v1.1*************************************************************************...2013-10-04
  • C# 字符串多行显示/文本换行以textbox为例讲解

    C# 字符串多行显示、文本换行以textbox为例讲为大家详细介绍并附演示效果图及演示代码,感兴趣的朋友可以了解下,或许对你学习字符串换行有所帮助...2020-06-25
  • sqlserver 批量数据替换助手V1.0版发布

    前段时间网站被挂马,数据库表中很多文本字段都被加上了一段js脚本。修复完程序漏洞之后便开始着手清理这些被注入的数据,其间参考了一些网上的方法,大都是写一个存储过程进行一个表一个表逐一清理。...2021-09-22
  • MySQL中使用replace、regexp进行正则表达式替换的用法分析

    这篇文章主要介绍了MySQL中使用replace、regexp进行正则表达式替换的用法,结合具体实例形式分析了replace、regexp正则替换的使用技巧与相关注意事项,需要的朋友可以参考下...2017-03-14
  • 文本超过div 自动换行代码

    文本超过div 自动换行代码文本自动换行IE中解决方法: word-wrap:break-word; word-break:break-all; 注:在要换行的内容相应的单元格或者DIV里加入,如: <div style=word-...2016-09-20