2016-05-06 2 views
-1

У меня возникают трудности с записью в новую строку в основном текстовом файле. Весь другой текст (включая запятую) выглядит просто отлично, но нет новой строки (без пробела или чего-то еще). Я бы очень признателен за любое направление.PHP - Трудности Написание новой строки

<?php 
session_start(); 
$user = $_SESSION['store']; 

function format($input) { 
$input = trim($input); 
$input = stripcslashes($input); 
$input = htmlspecialchars($input); 
return $input; 

} 

$file = "messages/reminder.txt"; 
$image; 
$secFreqLabel; 
$freqLabel; 
$uploadDirectory = "corpImages/"; 

if(!file_exists($file)) { 
$temp = fopen($file, "w"); // create file 
fclose($temp); 
} 

$con = new PDO("sqlite:bk.db"); 
if($_SERVER['REQUEST_METHOD'] == "POST") { 
$secFreqLabel = 'reminder.jpg'; 
$freqLabel = 'reminderHourly.jpg'; 
$thirdFreqLabel = 'reminderThree.jpg'; 
$fourthFreqLabel = 'reminderFour.jpg'; 

$freqUploadFile = $uploadDirectory . $freqLabel; 
$secFreqUploadFile = $uploadDirectory . $secFreqLabel; 
$thirdFreqUploadFile = $uploadDirectory . $thirdFreqLabel; 
$fourthFreqUploadFile = $uploadDirectory . $fourthFreqLabel; 

$statement = $con->prepare("INSERT INTO slides (image, label) VALUES (:image, :label)"); 

if(!empty($_FILES['freqImage'])) { 
$con->exec("DELETE FROM slides where label = 'reminder.jpg'"); 
} 

if(!empty($_FILES['secFreqImage'])) { 
$con->exec("DELETE FROM slides where label = 'reminderHourly.jpg'"); 
} 

if(!empty($_FILES['thirdFreqImage'])) { 
$con->exec("DELETE FROM slides where label = 'reminderThree.jpg'"); 
} 

if(!empty($_FILES['fourthFreqImage'])) { 
$con->exec("DELETE FROM slides where label = 'reminderFour.jpg'"); 
} 

$image = file_get_contents($_FILES['freqImage']['tmp_name']); 
move_uploaded_file($_FILES['freqImage']['tmp_name'], $freqUploadFile); 
$statement->bindParam(":label", $freqLabel); 
$statement->bindParam(":image", $image); 
$statement->execute(); 

$image = file_get_contents($_FILES['secFreqImage']['tmp_name']); 
move_uploaded_file($_FILES['secFreqImage']['tmp_name'], $secFreqUploadFile); 
$statement->bindParam(":label", $secFreqLabel); 
$statement->bindParam(":image", $image); 
$statement->execute(); 

$image = file_get_contents($_FILES['thirdFreqImage']['tmp_name']); 
move_uploaded_file($_FILES['thirdFreqImage']['tmp_name'], $thirdFreqUploadFile); 
$statement->bindParam(":label", $thirdFreqLabel); 
$statement->bindParam(":image", $image); 
$statement->execute(); 

$image = file_get_contents($_FILES['fourthFreqImage']['tmp_name']); 
move_uploaded_file($_FILES['fourthFreqImage']['tmp_name'], $fourthFreqUploadFile); 
$statement->bindParam(":label", $fourthFreqLabel); 
$statement->bindParam(":image", $image); 
$statement->execute(); 

$text = format($_POST['freq']) . "," . format($_POST['freqMessage']) . "\n" . format($_POST['secFreq']) . "," . format($_POST['secFreqMessage']) . "\n" . format($_POST['thirdFreq']) . "," . format($_POST['thirdFreqMessage']) . "\n" . format($_POST['fourthFreq']) . "," . format($_POST['fourthFreqMessage']); 

$writer = fopen($file, "w"); 
fwrite($writer, $text); 
fclose($writer); 

touch("update.txt"); 
} 

$handler = fopen($file, "r"); 

$firstReminder = fgetcsv($handler, ","); 
$secondReminder = fgetcsv($handler, ","); 
$thirdReminder = fgetcsv($handler, ","); 
$fourthReminder = fgetcsv($handler, ","); 
fclose($handler); 


?> 
+0

'\ r \ n' является тем, что вы ищете – cmorrissey

+0

Если я не являюсь m понимаете, не то, что я здесь сделал? \t $ text = format ($ _ POST ['freq']). ",". format ($ _ POST ['freqMessage']). "\ n". format ($ _ POST ['secFreq']). ",". format ($ _ POST ['secFreqMessage']). "\ n". format ($ _ POST ['thirdFreq']). ",". format ($ _ POST ['thirdFreqMessage']). "\ n". format ($ _ POST ['fourFreq']). ",". формат ($ _ POST [ 'fourthFreqMessage']); – KellyMarchewa

+0

* Hm ... *, я думаю, что функция 'format()' вашей может удалить их, я не могу быть уверен в этом на 100%, но по какой-то причине она меня раздражает. –

ответ

1

Вместо использования \n использовать константу с именем PHP_EOL, которая представляет конец строки в соответствии с вашей среде.

PHP_EOL (строка) Правильный символ «Конец строки» для этой платформы. Выпускается с PHP 5.0.2

$text = format($_POST['freq']) . "," . format($_POST['freqMessage']) . PHP_EOL . format($_POST['secFreq']) . "," . format($_POST['secFreqMessage']) . PHP_EOL . format($_POST['thirdFreq']) . "," . format($_POST['thirdFreqMessage']) . PHP_EOL . format($_POST['fourthFreq']) . "," . format($_POST['fourthFreqMessage']); 

PHP_EOL в окнах будет CR+LF и в системе UNIX LF

  • CR - возврат каретки, U + 000D
  • LF - линия подачи, U + 000A
Смежные вопросы