Это мой код, где я хочу, чтобы ввод из текстового поля на новой строке. Например, если вводимый текст — это имя и фамилия, тогда я хочу, чтобы фамилия была в новой строке, и у меня есть только одно текстовое поле. Как я могу это сделать ?
if (isset($string) and (bool)preg_match('/[A-Z]/', $string) == TRUE) {
//if yes, it is writing it into file
$myfile = fopen("names.txt", "w") or die("Unable to open file!");
$txt = $string;
fwrite($myfile, $txt);
fclose($myfile);
}
else {
echo "Sorry, your name is not in correct format.";
}
Возможно это решение будет правдой
$names = [
's34S$2 John',
'John James Smith',
'stack overflow',
'John Smith',
'John Johnson',
'JohnWilliams',
'Stack Best Overflow',
'Smith'
];
$delimiter = '\n'; // "\n" for real use
foreach($names as $name){
$newName = preg_replace(
'/^([A-Z][a-z]+([\ ][A-Z][a-z]+)*)([\ ][A-Z][a-z]+)+$/',
"$1$delimiter$3",
$name
);
if ( $newName != $name ){
echo "'$name' => '$newName'\n";
// file_put_contents("names.txt", $newName); for real use
} else {
echo "'$name' => Sorry, your name is not in correct format.\n";
}
}
Выход:
's34S$2 John' => Sorry, your name is not in correct format.
'John James Smith' => 'John James\n Smith'
'stack overflow' => Sorry, your name is not in correct format.
'John Smith' => 'John\n Smith'
'John Johnson' => 'John\n Johnson'
'JohnWilliams' => Sorry, your name is not in correct format.
'Stack Best Overflow' => 'Stack Best\n Overflow'
'Smith' => Sorry, your name is not in correct format.
Других решений пока нет …