我在一个歌词网站工作。在管理面板中有一个textarea
,用于插入新歌。我该如何做以下的事情?
- 每行首字母大写
- 在每行末尾添加一个空格
我尝试了ucfirst(strtolower($str))
,它只大写整个单词集的第一个字母,因为其中没有句号。我知道如何删除不必要的连字符,额外的空格和html标签,如果有的话。我该怎么办?使用nl2br
并将<br/>
替换为'n
可以做任何事情,但每个新行都要大写。
编辑:
<style>
textarea { width:200px; height:300px; }
</style>
<form action="/t" method="post">
<textarea name="txt"><?php echo $_POST["txt"]; ?></textarea>
<input type="submit" value="OK"/>
<input type="reset" value="reset"/>
</form>
<?php
$text = $_POST["txt"];
$lines = explode("'n", $text);
foreach($lines as $line)
{
$line = ucfirst(strtolower($line)) . " ";
}
$goodtext = implode("'n", $lines);
echo "<textarea>$goodtext</textarea>";
?>
编辑2
用户在文本区输入的示例文本:
Sithsoi asdigoisad
aASDF asdgdguh asudhg
sadg asdg AAFA ASFA
期望输出:
Sithsoi asdigoisad[sapce]
Aasdf asdgdguh asudhg[sapce]
Sadg asdg aafa asfa[sapce]
注意每行首字母大写,每行末尾有[空格]
你可以这样做:
<?php
$text = "your lyrics";
$lines = explode("'n", $text);
$goodLines = array();
foreach($lines as $line)
{
array_push($goodLines, ucfirst(strtolower($line)) . " ");
}
$goodText = implode("'n", $goodLines);
?>
简化为array_map():
<?php
if(isset($_POST['txt'])) {
$text = $_POST["txt"];
$text = str_replace("'r'n", "'n", $text);
$lines = explode("'n", $text);
$goodLines = array_map('ucfirst', array_map('strtolower', $lines));
$goodText = implode(" 'n", $goodLines);
echo nl2br($goodText);
}
?>
下面是证明它有效的php文件:
http://phpfiddle.org/main/code/trr-dgu