web-dev-qa-db-ja.com

textareaから各行を取得します

_<textarea> put returns between paragraphs
for linebreak add 2 spaces at end
indent code by 4 spaces
quote by placing > at start of line
</textarea>

$text = value from this textarea;
_

方法:

1)このテキストエリア(_$text_)から各行を取得し、foreach()を使用して操作します

2)_<br />_を各行の最後に追加します(最後の行を除く?

)各行を配列にスローします。

重要-textarea内のテキストは多言語にすることができます。


使用しようとしました:

_$text = str_replace('\n', '<br />', $text);
_

しかし、それは機能しません。


ありがとう。

45
James

PHP定数:

$array = explode(PHP_EOL, $text);

その他の注意事項:
1。私にとってこれはクロスプラットフォーム互換性があるため(Windows/Linuxなど)、最も簡単で安全な方法です。
2。より高速に実行するために、できる限り、PHP CONSTANTを使用することをお勧めします

39
Shah Erhan

古いトレッド...?誰かがこれにぶつかるかもしれません...

チェックしてください http://telamenta.com/techarticle/php-explode-newlines-and-yo

使用するのではなく:

$values = explode("\n", $value_string);

次のようなより安全な方法を使用します。

$values = preg_split('/[\n\r]+/', $value_string);
8
Temitope

わたしにはできる:

if (isset($_POST['MyTextAreaName'])){
    $array=explode( "\r\n", $_POST['MyTextAreaName'] );

これで、$ arrayに必要なすべての行が含まれます

    for ($i = 0; $i <= count($array); $i++) 
    {
        echo (trim($array[$i]) . "<br/>");
    }

(別の波括弧でifブロックを閉じてください)

}
4
profimedica

PHP DOMを使用して、<br/> その中に。このような:

$html = '<textarea> put returns between paragraphs
for linebreak add 2 spaces at end
indent code by 4 spaces
quote by placing > at start of line
</textarea>';

//parsing begins here:
$doc = new DOMDocument();
@$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName('textarea');

//get text and add <br/> then remove last <br/>
$lines = $nodes->item(0)->nodeValue;

//split it by newlines
$lines = explode("\n", $lines);

//add <br/> at end of each line
foreach($lines as $line)
    $output .= $line . "<br/>";

//remove last <br/>
$output = rtrim($output, "<br/>");

//display it
var_dump($output);

この出力:

string ' put returns between paragraphs
<br/>for linebreak add 2 spaces at end
<br/>indent code by 4 spaces
<br/>quote by placing > at start of line
' (length=141)
4
shamittomar

各行の_<br>_には、次を使用します

_<textarea wrap="physical"></textarea>
_

Textareaの値に_\n_ sを取得します。次に、nl2br()関数を使用して_<br>_ sを作成するか、_<br>_または_\n_に対してexplode()することができます。

お役に立てれば

$content = $_POST['content_name'];
$lines = explode("\n", $content);

foreach( $lines as $index => $line )
{
    $lines[$index] = $line . '<br/>';
}

// $lines contains your lines
3
Vincent Robert
$array = explode("\n", $text);
for($i=0; $i < count($array); $i++)
{
    echo $line;
    if($i < count($array)-1)
    {
         echo '<br />';
    }
}
2
cichy