为什么'n'==='\n'在php中是真实的?
我明白: '\n' // literally the backslash character followed by the character for lowercase n "\n" // interpreted by php as the newline character 但是,对于我的一生,我不明白为什么'\n' === '\\n'.在我看来,'\\n'将等于三个单独的字符:两个单独的后斜线,然后是字母n. 为什么'\n' === '\\n'在php中是true? 解决方案 Backslash仍然是单引号字符串中的逃脱字符(它逃脱了字面的单语引号). 这是非法的(因为后斜线逃脱了关闭报价): $path = 'C:\'; so \\必须映射到字面的后斜线,以避免无意逃脱. 其他解决方案 来自手册(单个引号串): 要指定字面的单报价,请用后斜切(\)逃脱它.要指定字面的后斜线,请加倍(\\).所有其他后斜线实例将被视为字面的后
0 2023-05-30
编程技术问答社区
我应该如何在MySQL数据库中存储换行符?
我在脑海中四处走动,试图决定如何最好地将新线存储在MySQL数据库中. 有点背景;要求用户完成文本方面.这必须存储在MySQL数据库中,然后再读出,并且HTML电子邮件中包含的内容. 我应该将它们存储为: 1)字符串字面 - 肯定这是危险和不良练习 2)作为一个带有\r\n in的字符串 - 当我从数据库中读取此信息时,它的读取为4个字符,因此nl2br()无法正确替换它们. 3)作为html - 必须是编码的html实体,以存储为
,因此当它到达到电子邮件时,将打印到电子邮件 时,而不是实际的newline.通过html_entity_decode()将其解码其他需要编码的字符. 任何帮助. 解决方案 将其定为首先逃脱.这是您的选项1.当您需要提供此数据时,请应用其格式化的任何功能.如果您需要在HTML中显示nl2br()和htmlentities()函数.这也适用于邮件. 如果您有这样的文
0 2023-05-30
编程技术问答社区
如何在PHP Markdown中把单个换行符当作真正的换行符?
我正在阅读 http://github.github.github.github.com/github-favored-markakle--flavored-markdown/- 我想在php markdown中实现该" newline修改": 我能想到的是: $my_html = Markdown($my_text); $my_html = preg_replace("/\n{1}/", " ", $my_html); ,但这很不可思议. 解决方案 在您的Markdown文件中查找行: function doHardBreaks($text) { 并根据以下方式更改下面的Preg模式: return preg_replace_callback('/ {2,}\n/', array(&$this, '_doHardBreaks_callback'), $text); to: return preg_replace_callb
0 2023-05-30
编程技术问答社区
PHP生成csv时没有发送正确的换行信息
我有一个使用以下代码生成CSV文件的脚本: header('Content-type: text/csv'); header('Content-Disposition: attachment; filename="'.date("Ymdhis").'.csv"'); print $content; $ content变量简单地包含与逗号分隔的字段,然后用." \ n"";要生成一条新线. 当我在CSV中打开文件时,它看起来不错,但是,当我尝试使用文件将文件导入外部程序(MYOB)时,它无法识别行的结尾(\ n)字符,并假定一条长行文字. 当我在记事本中查看文件的内容时,行字符的结尾(\ n)是一个小矩形框,看起来像字符代码0x7f. 如果我打开文件并将其重新保存在Excel中,它将删除此字符并用适当的行字符替换,我可以导入文件. 我需要在PHP中生成什么字符,以便记事本将其识别为行字符的有效端? (\ n)显然没有工作. 解决方案 使用" \ r
0 2023-05-30
编程技术问答社区
在PHP preg_replace函数中包含新行
我正在尝试匹配可能在多行中出现的字符串.它以特定的字符串开始和结尾: {a}some string can be multiple lines {/a} 我可以用正则{a}和{/a}之间的所有内容吗?看来.不匹配新线路,但是我尝试了以下情况,没有运气: $template = preg_replace( $'/\{a\}([.\n]+)\{\/a\}/', 'X', $template, -1, $count ); echo $count; // prints 0 它匹配.或\ n当他们自己时,但不在一起! 解决方案 使用 s modifier : $template = preg_replace( $'/\{a\}([.\n]+)\{\/a\}/s', 'X', $template, -1, $count ); // ^ echo $count; 其他解决
0 2023-05-30
编程技术问答社区
用实际的换行字符代码来替代 "n"。
我正在使用MySQL_REAL_ESCAPE_STRING从DB中取出内容. 因此,新系列字符现在显示为" \ n". 问题在于,此内容显示给 标签中的用户,因此我不能用 替换\ n. 我想我可以在将结果插入. Somoneone可以在这里提供帮助吗?由于安全策略,不使用mysql_real_escape_string并不是真正的选择. 谢谢. 解决方案 echo ' '.str_replace('\n', "\n", $string).' '; 其他解决方案 为什么不... echo str_replace('\\n', PHP_EOL, "few lines\nof text here,\nblah, blah! etc!"); 其他解决方案 str_replace("\\n","\n",$data);
0 2023-05-30
编程技术问答社区
PHP换行符在文本文件中不起作用
我正在使用php代码: $numberNewline = $number . '\n'; fwrite($file, $numberNewline); 将$编号写入文件. 由于某种原因,\ n出现在文件中.我在Mac上.有什么问题? 解决方案 $numberNewline = $number . "\n"; fwrite($file, $numberNewline); 尝试这个 其他解决方案 '\n'在单引号中是字面的\n. "\n"在双引号中被解释为折线. 一个> 其他解决方案 如果插入" \ n"不会产生任何结果,您也可以尝试" \ r \ n",它添加了"马车返回"和"新线".
0 2023-05-30
编程技术问答社区
在PHP中获取一个字符串的第一行
php 5.3中有一个不错的功能我想要的: strstr(input,"\n",true) 不幸的是,服务器运行php 5.2.17,strstr的可选第三参数不可用.有没有办法在一行中以先前版本的形式实现这一目标? 解决方案 对于相对较短的文本,可以通过一个(" \ n")或两个(" \ r \ n")字符界定行,单线可能像 $line = preg_split('#\r?\n#', $input, 2)[0]; 对于第一行供稿之前的任何序列,即使它是空字符串, 或 $line = preg_split('#\r?\n#', ltrim($input), 2)[0]; 对于第一个非空字符串. 但是,对于大型文本可能会引起内存问题,因此在下面提到的情况下strtok或其他答案中的基于substr的基于substr的解决方案. 当大约十年前首次编写这个答案时,它带有一些微妙的细微差别 在开幕帖子之后,它的本地化过于本地化,并假设
0 2023-05-30
编程技术问答社区
PHP中的新线条.如何?
代码: 我试图将其显示为两条单独的行,但线路断开字符不起作用,而是在两者之间打印一个空间.我尝试了\ r \ n以及.php_eol.以及将字符串放在单引号中.他们似乎都没有用.那么如何在PHP中打印新线条? 我正在研究phpdesigner 8 解决方案 使用 nl2br() 将新行变成html 元素: 其他解决方案 实际上创建了线折,但您只是看不到它们.更改Content-Type标题以查看原始结果: header('Content-Type: text/plain'); 调试时这非常有用.您还可以查看浏览器中的页面源以查看原始输出. 回答您的问题,最简单的方法是使用 nl2br() (as在上面的约翰回答中提出了建议).
0 2023-05-29
编程技术问答社区
在PHP中提交的文本中转换换行
我设置了一个系统,供用户将其文章提交到我的数据库中.由于它将是HTML,因此我不想期望他们每次都有newline键入 ,所以我在输入上使用PHP函数nl2br(). 我还提供了一个文章修改工具,该工具将使他们的文章恢复到表单中(但是,这是一个不同的页面),并允许他们对其进行编辑.在此过程中, 元素也出现(Newlines仍然).为了补救出现的 元素(无论如何,我已经期望)添加了preg_replace('//i', "\n", mysql_result($result,$i,"content")),我在此站点上的另一个问题中发现了preg_replace('//i', "\n", mysql_result($result,$i,"content")).它可以完成删除 元素的工作,但是由于它正在用新线代替它们,而且无论如何,新线本来都会保留下来,每次编辑帖子时,都会添加越来越多的新线,因此可以更间隔段
0 2023-05-28
编程技术问答社区
UTF 8 字符串删除除换行之外的所有不可见字符
我正在使用以下正则判处从UTF-8字符串中删除所有不可见字符: $string = preg_replace('/\p{C}+/u', '', $string); 这可以正常工作,但是如何更改它,以便它删除除新线以外的所有看不见的字符?我尝试了一些使用[^\ n]等的东西.但是它不起作用. 感谢您的帮助! 编辑:newline字符为'\ n' 解决方案 使用"双重否定": $string = preg_replace('/[^\P{C}\n]+/u', '', $string); 说明: \P{C}与[^\p{C}]. 相同 因此,[^\P{C}]与\p{C}. 相同 由于我们现在有一个否定的字符类,因此我们可以从中划出其他字符. 其他解决方案 我使用负面断言您可以一个字符类,除了断言与什么相匹配,因此: $res = preg_replace('/(?!\n)\p{C}/', '', $input); (PHP的正则表
2 2023-05-28
编程技术问答社区
Laravel 5添加HTML到电子邮件
我目前正在尝试在Laravel 5中创建HTML电子邮件,并且我想在电子邮件中插入一些文本(其中包含 元素).我使用以下代码发送电子邮件: Mail::send(array('html' => 'emails.newinvoice'), array('text' => $emailtext), function($message) use ($email, $subject, $contact_company) { $message->to($email, $contact_company)->subject($subject); }); 因此,$emailtext变量包含一些带有HTML标签的文本.在我的emails.newinvoice布局视图中,我有以下内容:
0 2023-05-28
编程技术问答社区
如何从php字符串中删除新行和返回?
php变量包含以下字符串: text text2 item1 item2 我想删除此字符串中的所有新系列字符,因此字符串看起来像这样: text text2> item1 item2 我尝试了以下情况而没有成功: str_replace('\n', '', $str); str_replace('\r', '', $str); str_replace('\r\n\', '', $str); 有人知道如何解决这个问题? 解决方案 您需要将\n放在双引号中. 在单引号中,它被视为2个字符'\',其次是'n' 您需要: $str = str_replace("\n", '', $str); 更好的选择是使用PHP_EOL as: $str = str_replace(PHP_EOL
0 2023-05-28
编程技术问答社区
Windows上的PHP错误日志文件格式(PHP.ini Error_log指令)
示例: php.ini文件 ... ; Log errors to specified file. error_log = c:/php/php.log ... 错误日志文件(c:/php/php.log)包含此格式的每个条目: [12-Jun-2011 12:58:55] PHP Notice: Undefined variable: test in C:\www\phpinfo.php on line 2\r\r\n [12-Jun-2011 12:59:01] PHP Notice: Undefined variable: test in C:\www\phpinfo.php on line 2\r\r\n [12-Jun-2011 13:01:12] PHP Notice: Undefined variable: test in C:\www\phpinfo.php on line 2\r\r\n [12-Jun-2011 13:02:11] PHP No
2 2023-05-27
编程技术问答社区
PHP新行不工作
可能的重复: 为什么php echo echo echo text text丢失其格式? 我无法获得新的线路来正常工作.它只是一行.像这样 - Make: Sony Model: a Processor: Intel Core 2 Duo 这是它的代码--- $message="Make: " . $_POST['make'] . "\r\n Model: " . $_POST['model'] . "\r\n Processor: " . $_POST['processor']; 当发送给电子邮件时,它可以很好地工作,但是当我做 时 echo $message; 它只是上述内容 - 这一切都在一行上.我该如何做这项工作? 谢谢 解决方案 您大概正在回荡在网页上. 浏览器不(或至少不应该)尊重文字新行,您必须使用HTML 标签. 尝试以下操作: echo str_replace(array("\r\n","\r","
0 2023-05-27
编程技术问答社区
用一个换行符替换多个新行
如何用一个newline替换多个连续的新线.彼此之间最多可能有20个新线.例如 James said hello\n\n\n\n Test\n Test two\n\n 应以: 最终 James said hello\n Test\n Test two\n 解决方案 尝试这个: $str = "Hello\n\n\n\n\nWorld\n\n\nHow\nAre\n\nYou?"; $str = preg_replace("/\n+/", "\n", $str); print($str); 其他解决方案 改进Marc B的答案: $fixed_text = preg_replace("\n(\s*\n)+", "\n", $text_to_fix); 应该匹配初始新线,然后至少一组任何数量的白线,然后是newline,然后用单个newline替换. 其他解决方案 $fixed_text = preg_replace("\n+", "\n
0 2023-05-27
编程技术问答社区
PHP-删除多余的空白处,但不包括新行
我正在寻找一种方法来从字符串内删除多余的空格(即,如果两个或更多空格彼此下一个,仅留下1个并删除其他空间),我发现此 rememove从字符串中中的多余whitespace ,我想使用此解决方案: $foo = preg_replace( '/\s+/', ' ', $foo ); ,但这在我想保留它们的同时消除了新的线条. 有什么方法可以在删除多余的空格时保持新线? 解决方案 http:///www.php.net/手册/en/en/regexp.Reference.escape.php 定义\h any horizontal whitespace character (since PHP 5.2.4) 所以您可能正在寻找 $foo = preg_replace( '/\h+/u', ' ', $foo ); ,或者您可以明确列出要影响的所有字符 $foo = preg_replace( '/\t +/', ' ', $foo ); 其他解决方案
0 2023-05-27
编程技术问答社区
PHP新行将无法工作
嗨,我正在尝试创建一些代码,该代码首先读取文件的现有内容,然后在新行中添加新的代码行现有行而不是新行... 这是我正在使用的代码: 我尝试了各种不同的想法,但没有任何效果,任何帮助将不胜
0 2023-05-26
编程技术问答社区
使用PHP检测EOL类型
参考:这是一个自我解决的问题.它的目的是分享知识,问答方式. 如何检测 line的结束 php? 中的字符 ps:我已经从头开始编写此代码了很长时间,所以我决定分享它,此外,我敢肯定有人会找到改进的方法. 解决方案 /** * Detects the end-of-line character of a string. * @param string $str The string to check. * @param string $default Default EOL (if not detected). * @return string The detected EOL, or default one. */ function detectEol($str, $default=''){ static $eols = array( "\0x000D000A", // [UNICODE] CR+LF: CR (U+000D) fol
0 2023-05-26
编程技术问答社区