使用php包含源代码中的不需要的换行符

时间:2017-02-26 12:33:25

标签: bash php

我正在使用此脚本生成包含int(my_string)

的常规更改电子邮件地址
qmail

我正在使用此php命令在我的网页中包含电子邮件地址:

#!/bin/bash

##### change these settings #####

qmailpath="/your/path/to/.qmail-"
wwwpath="/your/path/to/html/tempmail"
host="@my.host"
prefix="temp-"
length="16"

##### do not change the following #####

oldmail="$qmailpath"$(cat "$wwwpath" | cut -d@ -f1)
newmail="$prefix"$(date +%s%N | md5sum | cut -c 1-"$length")

rm "$oldmail"
touch "$qmailpath$newmail"
echo -n "$newmail$host" > "$wwwpath"

它工作正常,但如果我看一下网页的源代码,我会发现一个奇怪的换行符:

<a href="mailto:<?php include('tempmail');?>"><?php include('tempmail');?></a>

这是从哪里来的,如何删除它?

更新:我更新了脚本并在<a href="mailto:temp-rpwaa44hff5kch8smfuv3@myhost ">temp-rpwaa44hff5kch8smfuv3@myhost </a> 之后添加了-n。现在它有效。

1 个答案:

答案 0 :(得分:2)

看来有一个行尾,要在PHP中使用echo来解决这个问题:

rtrim(file_get_contents())

从php手册:

  

file_get_contents()是读取a内容的首选方式   将文件转换为字符串。如果支持,它将使用内存映射技术   通过您的操作系统来提高性能。

在bash方面,它是回声引入换行符,所以如果你不想要它只使用<a href="mailto:<?php echo rtrim(file_get_contents('tempmail'));?>"><?php echo rtrim(file_get_contents('tempmail'));?></a>

echo -n