PHP – hoe maak je een teken voor een nieuwe regel?

In PHP probeer ik een teken voor een nieuwe regel te maken:

echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo '\r\n';

Daarna open ik het aangemaakte bestand in Kladblok en het schrijft de nieuwe regel letterlijk:

1 Jan Doe\r\n 1 Jan Doe\r\n 1 Jan Doe\r\n

Ik heb veel variaties van de \r\ngeprobeerd, maar geen enkele werkt. Waarom verandert de nieuwe regel niet in een nieuwe regel?


Antwoord 1, autoriteit 100%

Alleen dubbele aanhalingstekensinterpreteer de escape-reeksen \ren \nals respectievelijk ‘0x0D’ en ‘0x0A’, dus u wilt:

"\r\n"

Enkele aanhalingstekens, aan de andere kant, ken alleen de escape-reeksen \\en \'.

Dus tenzij je de enkelvoudige tekenreeks tussen aanhalingstekens samenvoegt met een regeleinde dat ergens anders is gegenereerd (bijvoorbeeld door dubbele aanhalingstekens "\r\n"te gebruiken of chrfunctiechr(0x0D).chr(0x0A)), de enige andere manier om een regeleinde te hebben binnen een enkele tekenreeks tussen aanhalingstekens is om het letterlijk met je editor te typen:

$s = 'some text before the line break
some text after';

Controleer uw editor voor zijn regeleinde-instellingen als u een specifieke tekenreeks nodig heeft (bijvoorbeeld \r\n).


Antwoord 2, autoriteit 37%

Gebruik de vooraf gedefinieerde PHP_EOLConstant:

echo $clientid, ' ', $lastname, PHP_EOL;

De constante waarde zal worden ingesteld volgens de lijnuiteinden van het besturingssysteem waar PHP uitvoert. Op Linux is het "\n"; Op Windows is het "\r\n".


Antwoord 3, Autoriteit 15%

De opdracht “ECHO” in PHP verzendt de uitvoer naar de browser als RAW HTML, dus zelfs als in dubbele aanhalingstekens de browser niet in twee regels parseert omdat een nieuwlijn in HTML niets betekent. Dat is waarom u nodig hebt om te gebruiken:

echo [output text]."<br>";

Bij gebruik van “echo” of in plaats daarvan fwrite …

fwrite([output text]."\n");

Hiermee wordt de HTML-newline uitgevoerd in plaats van “\ N”.


Antwoord 4, Autoriteit 7%

Gebruik de constante PHP_EOL om het juiste personage te krijgen, ongeacht het platform.

http://us3.php.net/manual/en/reserved. constanten.php

Een eenvoudig gebruiksvoorbeeld:

<?php
$data = 'First line' . PHP_EOL .
        'Second line' . PHP_EOL .
        'Third line';
file_put_contents("filename.txt", $data);
?>

Antwoord 5, Autoriteit 3%

Strings tussen dubbele aanhalingstekens ""Interpolate, wat betekent dat ze ontsnappende tekens converteren naar afdrukbare tekens.

Strings tussen enkele aanhalingstekens ''zijn letterlijk, wat betekent dat ze precies worden behandeld als de personages worden ingevoerd.

U kunt beide op dezelfde regel hebben:

echo '$clientid $lastname ' . "\r\n";
echo "$clientid $lastname \r\n";

Uitgangen:

$clientid $lastname
1 John Doe

Antwoord 6, Autoriteit 2%

U moet dit gebruiken:

"\n"

Je wilt misschien ook een kijkje nemen op PHP EOL .


Antwoord 7, Autoriteit 2%

Eigenlijk \r\nis voor de HTML-kant van de uitvoer. Met die tekens kunt u gewoon een nieuwe lijn in de HTML-code maken om het meer leesbaar te maken:

echo "<html>First line \r\n Second line</html>";

wordt uitgevoerd:

<html>First line
Second line</html>

Die bekijken van de pagina is:

First line Second line

Als je dit echt bedoelde hebt, heb je alleen maar om de enkele offerte te repareren met het citaat “”:

echo "\r\n";

Anders als u wilt splitsen de tekst, in onze voorbeeld ‘eerste regel’ en ‘tweede regel’, moet u de HTML-code gebruiken: <br />:

First line<br />Second line

Dat wordt uitgevoerd:

First line
Second line

Het zou ook beter leesbaar zijn als je het hele script vervangt door:

echo "$clientid $lastname \r\n";

Antwoord 8

w3school bood op deze manier aan:

echo nl2br("One line.\n Another line.");

met behulp van deze functie kun je het doen..ik heb andere manieren geprobeerd die hierboven zijn vermeld, maar ze zullen me niet helpen..


Antwoord 9

Om de een of andere reden vermeldt elk afzonderlijk bericht waarin wordt gevraagd naar ontsnappingen voor nieuwe regels in PHP niet het geval dat het eenvoudigweg invoegen van een nieuwe regel in strings met enkele aanhalingstekens precies doet wat u denkt:

ex 1.

echo 'foo\nbar';

Voorbeeld 1 drukt duidelijk niet het gewenste resultaat af, hoewel het waar is dat u niet kunt ontsnappen aan een nieuwe regel tussen enkele aanhalingstekens, u kunt er wel een hebben:

ex 2.

echo 'foo
 bar';

Voorbeeld 2 heeft precies het gewenste gedrag. Helaas is de nieuwe regel die wordt ingevoegd, afhankelijk van het besturingssysteem. Dit is meestal geen probleem, omdat webbrowsers/servers de nieuwe regel correct interpreteren, of het nu \r, \r\n of \n is.

Het is duidelijk dat deze oplossing niet ideaal is als u van plan bent het bestand op een andere manier dan via een webbrowser en naar meerdere besturingssystemen te distribueren. In dat geval zou je een van de andere antwoorden moeten zien.

opmerking: met behulp van een feature-rich text-editor zou u een nieuwe regel moeten kunnen invoegen als binaire tekens die een nieuwe regel vertegenwoordigen op een ander besturingssysteem dan degene die het bestand bewerkt. Als al het andere faalt, volstaat het om een hex-editor te gebruiken om het binaire ascii-teken in te voegen.


Antwoord 10

Gebruik de PHP nl2br om de nieuwe regels in een tekenreeks te krijgen.

$text = “Manu is een brave jongen.(Enter)Hij kan goed coderen.

echo nl2br($text);

Resultaat.

Manu is een brave jongen.

Hij kan goed coderen.


Antwoord 11

Niets werkte voor mij.

PHP_EOL

. "\r\n";

$NEWLINE_RE = '/(\r\n)|\r|\n/'; // take care of all possible newline-encodings in input file
$var = preg_replace($NEWLINE_RE,'', $var);

Werkt voor mij:

$admin_email_Body = $admin_mail_body .'<br>' ."\r\n";
$admin_email_Body .= 'This is line 2 <br>' ."\r\n";
$admin_email_Body .= 'This is line 3 <br>' ."\r\n";

Antwoord 12

Ik heb deze combinatie ook geprobeerd binnen zowel de enkele aanhalingstekens als de dubbele aanhalingstekens. Maar geen enkele heeft gewerkt. Gebruik in plaats van \nbeter <br/>tussen dubbele aanhalingstekens. Vind dit leuk..

$variable = "and";
echo "part 1 $variable part 2<br/>";
echo "part 1 ".$variable." part 2";

Antwoord 13

Gebruik chr (13) voor regelterugloop en chr (10) voor nieuwe regel

echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo chr (13). chr (10);

Antwoord 14

Voor eventuele echo-verklaringen gebruik ik altijd <br>in dubbele aanhalingstekens.


Antwoord 15

You Can Try This.
<?php
   $content = str_replace(PHP_EOL, "<br>", $your_content);
 ?>
<p><?php echo($content); ?></p>

Other episodes