一般来说我只想使用一个函数,它会缩小我的输出(通过删除换行符和制表符),但问题是,使用像这样的普通代码
return str_replace(array("\r\n", "\t"), '', $s);
标题属性(例如,当您移动单词并显示工具提示时)也会缩小,并且换行符会丢失。我想保留换行符,这些换行符位于title =“textwithlinebreakhere”内,但删除了所有换行符。
我不知道如何实现这一点,所以我希望你能帮助我。
谢谢!
答案 0 :(得分:0)
您应该使用preg_replace_all()
,然后使用(?<!your_match_here)
及其兄弟姐妹。我对兄弟姐妹的意思是negative_lookbehind和positive_lookbehind,它会调整你的搜索算法以查看某个字符是在某个字母/符号/数字之后还是之前
答案 1 :(得分:0)
使用trim_all()移除不需要的字符 - PHP:
这个功能的灵感来自PHP的内置功能 修剪 从字符串的开头和结尾删除不需要的字符,如果没有提供这样的字符作为第二个参数 修剪 ,删除此列表中提供的空白字符。
那么,是什么呢 trim_all() 办?
trim_all() 旨在从字符串的两端删除所有白色空格实例,以及删除字符串中的重复空格字符。但是,稍后,我将其作为一个通用功能,不仅仅是进行白色空间修剪和清洁,而是让它接受字符替换和字符替换。使用此功能,您可以:
规范化空格,以便所有多个\ r,\ n,\ t,\ r \ n,\ 0,0x0b,0x20 并且所有控制字符都可以用单个空格替换,也可以从字符串的两端进行操作;
删除所有不需要的字符;
删除重复项;
用字符或字符串替换多次出现的字符。
function trim_all( $str , $what = NULL , $with = ' ' )
{
if( $what === NULL )
{
// Character Decimal Use
// "\0" 0 Null Character
// "\t" 9 Tab
// "\n" 10 New line
// "\x0B" 11 Vertical Tab
// "\r" 13 New Line in Mac
// " " 32 Space
$what = "\\x00-\\x20"; //all white-spaces and control chars
}
return trim( preg_replace( "/[".$what."]+/" , $with , $str ) , $what );
}
如果要从用户输入中删除不需要的字符,此功能会很有用。以下是如何使用它。
使用示例:
$full_name = trim_all( $_POST['full_name'] );
或
$full_name = trim_all( $full_name , "\t" , "" );