关于PHP脚本中的两种换行符的区别和php脚本中的两种换行符的区别是什么的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Bash脚本中的换行符疯狂、C#中几种换行符之文本读取、Cron执行
关于PHP脚本中的两种换行符的区别和php脚本中的两种换行符的区别是什么的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Bash脚本中的换行符疯狂、C#中几种换行符之文本读取、Cron执行的Bash脚本中的PHP脚本序列未运行、html – HAML在没有换行符的情况下使用文本中的链接等相关知识的信息别忘了在本站进行查找喔。
本文目录一览:- PHP脚本中的两种换行符的区别(php脚本中的两种换行符的区别是什么)
- Bash脚本中的换行符疯狂
- C#中几种换行符之文本读取
- Cron执行的Bash脚本中的PHP脚本序列未运行
- html – HAML在没有换行符的情况下使用文本中的链接
PHP脚本中的两种换行符的区别(php脚本中的两种换行符的区别是什么)
在编写PHP脚本代码的时候,我们经常会看到 \n和
这两个字符,它们都有换行的作用,那么到底有什么区别呢?
1.\n是使源代码换行,而浏览器显示的内容不换行;
2.<br />是使浏览器显示的内容换行,而源代码不换行。
例子:
PHP代码1:
<?PHP
echo 0;
echo "\n";
echo 1;
?>
浏览器显示:
无换行
查看源码:
有换行
PHP代码2:
<?PHP
echo 0;
echo "<br />";
echo 1;
?>
浏览器显示:
有换行
查看源码:
无换行
好了,这就是\n和
的区别了,希望对大家有帮助。
Bash脚本中的换行符疯狂
然后我将它上传到运行parallels virtuozzo的centos 5 x86机器,每次,无论我如何上传它(FTP作为二进制文件,或通过parallels管理控制台),脚本都不会工作.当我通过parallels管理控制台查看脚本时,我发现最后一行,只有最后一行,其中有一个奇怪的字符.如果我从最后一行删除行终止符(让脚本以最后一个可打印字符结束)一切正常.
我的问题:
A)为什么只有LAST行终止符导致问题?
B)将来如何避免这种情况?
谢谢!
解决方法
ASCII /文本FTP在您不想要的时候也可以进行行结束转换.
C#中几种换行符之文本读取
1.Windows 中的换行符"\r\n"
2.Unix/Linux 平台换行符是 "\n"。
3.MessageBox.Show() 的换行符为 "\n"
4.Console 的换行符为 "\n"
换行符还因平台差异而不同。
为保持平台的通用性,可以用系统默认换行符 System.Environment.NewLine。
以下是一段读取大文本内容的方式。
StreamReader sr = new StreamReader(path, Encoding.UTF8);
try
{
char[] charData = new char[N];
string info = string.Empty;
while (sr.Read(charData, 0, N) > 0)
{
string ti = new string(charData);
info +=ti;
var lines=info.Split(new string[] { System.Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
info=lines.LastOrDefault();
if (ti.EndsWith(System.Environment.NewLine))
{
info += System.Environment.NewLine;
}
for (long i = 0; i < lines.LongLength-1; i++)
{
int sli = lines[i].IndexOf('':'');
if(cfile!=int.Parse(lines[i].Substring(0, sli)))
{
fline = 1;
cfile=int.Parse(lines[i].Substring(0, sli));
}
else
{
fline++;
cfile=int.Parse(lines[i].Substring(0, sli));
}
Console.WriteLine("==>文档信息:{0}.gz,第{1}个文件,地址信息:{2}", cfile, fline, lines[i].Substring(sli + 1, lines[i].Length - sli - 1));
}
}
Console.WriteLine(info);
sr.Close();
Console.ReadKey();
}
catch (Exception)
{
throw;
}
finally
{
sr.Close();
}
Cron执行的Bash脚本中的PHP脚本序列未运行
而不是为每个PHP脚本创建一个cron条目,我认为我会聪明并将其包装为Bash脚本,如下所示:
#!/bin/bash # set notification email. NOTIFYEMAIL="webmaster@example.com" # set PHP path. PHP="$(which PHP)" # set folder path. FOLDER="/var/www/example.com/processors/" # list of scripts. SCRIPTS=("script_1" "script_2" "script_3" "script_4") # execute each script. for i in "${SCRIPTS[@]}" do SCRIPT="$FOLDER/$i.PHP" printf "Processing: %s\n" $i chmod +x $SCRIPT $PHP $SCRIPT done echo "Scripts have been processed." | mail -s "Scripts Processed" $NOTIFYEMAIL
我已经单独测试了所有脚本,并且它们正常工作,将处理信息输出到终端.
/usr/bin/PHP /var/www/example.com/processors/script_1.PHP
我甚至测试了bash脚本,该脚本按顺序调用四个PHP脚本,通过终端手动调用,也可以正常工作.
/bin/bash /var/www/example.com/processors/run.sh
但由于某种原因,当我离开cron在root用户crontab上使用以下命令运行它们时,PHP脚本不会执行.
# process daily. 0 1 * * * /bin/bash /var/www/example.com/processors/run.sh > /dev/null
我知道crontab已被处理并且Bash脚本已经运行,因为我总是在脚本结束时每次都收到通知电子邮件.
权限如下:
-rwxr-xr-x 1 root root 510 Mar 11 09:21 run.sh -rwxrwxr-x 1 git git 2.8K Mar 8 10:17 script_1.PHP -rwxrwxr-x 1 git git 2.6K Mar 1 18:07 script_2.PHP -rwxrwxr-x 1 git git 717 Mar 1 18:07 script_3.PHP -rwxrwxr-x 1 git git 6.8K Mar 4 16:30 script_4.PHP
没有特定于cron的日志文件,例如/var/log/cron.log,但是当我运行grep CRON / var / log / syslog并返回以下通用输出时:
Mar 11 06:39:01 s00000000 CRON[11651]: (root) CMD ( [ -x /usr/lib/PHP5/maxlifetime ] && [ -d /var/lib/PHP5 ] && find /var/lib/PHP5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/PHP5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete) Mar 11 07:09:01 s00000000 CRON[12771]: (root) CMD ( [ -x /usr/lib/PHP5/maxlifetime ] && [ -d /var/lib/PHP5 ] && find /var/lib/PHP5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/PHP5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete) Mar 11 07:17:01 s00000000 CRON[13074]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
任何建议让我尝试的将不胜感激.
解决方法
>检查在crontab中是否正确设置了SHELL和PATH的值,例如:
SHELL=/bin/bash PATH=/bin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/local/sbin:/usr/sbin
>确保真正使用了预期的shell(例如bash).
>确保可以通过表示的PATH访问所有需要的二进制文件.
>检查crontab中是否没有未转义的%.有关详细信息,请参阅man 5 crontab.
>也许您还将环境变量MAILTO设置为认可值,例如:
MAILTO="webmaster@example.com"
确保您的crontab正常工作
确保您的crontab被正确解析的另一个小技巧是在末尾添加一个标记条目.
我正在使用这个标记条目
@daily logger -p local0.notice -t CRON ‘$Id: demo 7029 2012-11-27 09:27:39Z dirk $’
如果syslog中缺少标记条目,则表示crontab已损坏.这可能是由您未见过的一些奇怪的语法错误引发的.
如何调试cron作业
如果一个cron作业无法正常工作,请首先调查作业输出.
将您的crontab更改为:
0 1 * * * /bin/bash -x /var/www/example.com/processors/run.sh >>/tmp/cronTrace 2>&1
请调查生成的脚本输出以及跟踪输出(bash -x).
附加说明
chmod x $SCRIPT
$PHP $SCRIPT
chmod步骤不是必需的,应该避免.在下一行中,您通过显式使用interpreter命令来调用脚本.
html – HAML在没有换行符的情况下使用文本中的链接
但是我有一个FAQ页面,它有更长的文本段落,这不是问题。但在一些段落中,我想包括链接。使用纯HTML,这是非常容易实现的,并且仍然可读。
<p> I'm talking about <a href="http://ruby-lang.org">Ruby</a> in this text. </p>
有了HAML,我被这个新的段落所困扰,它们看起来像这样:
%p I'm talking about %a {:href => 'http://ruby-lang.org'}>Ruby in this text.
我认为这真的打破了工作流程。
在HAML中有没有办法只插入一个链接而不使用换行符?
解决方法
Expressing the structure of a document and expressing inline formatting are two very different problems. Haml is mostly designed for structure,so the best way to deal with formatting is to leave it to other languages that are designed for it.
哈姆尔使用空格和缩进来确定要做什么,没有任何换行符没有任何缩进,所以哈姆不能确定添加到页面中的元素。
如果您只想要静态文本块,可以像常见问题一样使用markdown filter:
:markdown I'm talking about [Ruby](http://ruby-lang.org) in this text.
正如其他答案已经指出的,如果你想从生成的HTML中删除换行符,那么你可以查看使用whitespace removal operators,但是请注意,它们将会删除所有的空格,以便例如
I'm talking about %a{:href => 'http://ruby-lang.org'}>Ruby in this text.
其使用>去除外部空白会产生:
I'm talking about<a href='http://ruby-lang.org'>Ruby</a>in this text.
这将显示为
I’m talking about07003in this text.
即在“Ruby”周围没有空格,这可能不是你想要的。
今天关于PHP脚本中的两种换行符的区别和php脚本中的两种换行符的区别是什么的介绍到此结束,谢谢您的阅读,有关Bash脚本中的换行符疯狂、C#中几种换行符之文本读取、Cron执行的Bash脚本中的PHP脚本序列未运行、html – HAML在没有换行符的情况下使用文本中的链接等更多相关知识的信息可以在本站进行查询。
本文标签: