2013-03-18 87 views
0

這是我news.php文件:無法使get_file_contents讀取西里爾文件名。 PHP

<form action="create_file.php" method="post" class="form-horizontal"/> 
    <label class="control-label">Заглавие:</label> 
     <div class="controls"> 
     <input name="name" type="text" width="40" class="span6 m-wrap" /> 
     <input type="submit" value="Продължи..." class="btn red"></input> 
     </div> 
</form> 

這是我create_file.php

<?php 
$pre_file_name = $_POST['name']; 

$ext = ".txt"; 

$file_name = $pre_file_name.$ext; 

fopen($file_name,'w'); 
?> 
<form action="edit_file.php" method="post" class="form-horizontal"/> 
    <label class="control-label">Въведете новината (текст):</label> 
     <div class="controls"> 
     <span class="field"><textarea class="span6 m-wrap" name="edit" cols="1600" rows="10"></textarea></span><p> 
     <input type="hidden" name="file_name" value="<?php echo $file_name; ?>"> 
     <input class="btn red" type="submit" value="Създай!"> 
     </div> 
</form> 

這是我edit_file.php:

<?php 
$edit = $_POST['edit']; 

$file_name = $_POST['file_name']; 

$file = fopen($file_name, 'w'); 

fwrite($file,$edit); 

fclose($file); 

header("Location: news-success.php"); 



?> 

delete.php

<?php 
$file = $_GET['name']; 
unlink($file); 

header('Location: news-delok.php'); 

?> 

edit.php

<?php 
$file_name = $_GET['name']; 

$file_read = fopen($file_name,"r"); 
$contents = fread($file_read, filesize($file_name)); 
fclose($file_read); 


?> 
<html> 
<form action="edit_file.php" method="POST"> 
    <label>Title:</label> 
    <input class="span6 m-wrap" type="text" placeholder="<?php $array = explode(".",$file_name); echo $array[0] ?>" disabled=""><br> 
    <label>Text:</label> 
    <textarea class="span6 m-wrap" name="edit" cols="420" rows="10"><?php echo $contents ?></textarea><p> 
    <input type="hidden" name="file_name" value="<?php echo $file_name ?>"> 
    <input class="btn red" type="submit" value="Update!"> 
          </form> 

如何讓腳本檢查文件名中是否有空格(例如,新聞1.txt)並用+(例如News + 1.txt)替換它們?先謝謝你。

+0

您是否使用普通字符對其進行了測試?即:英文文本? – 2013-03-18 09:44:30

+0

另外,請教一個類似的問題,我問了我的答案和工作> http://stackoverflow.com/questions/15440105/czech-characters-encoding-in-php – 2013-03-18 09:46:39

+0

我剛剛檢查過,它給我的名字的文件:新建1.是否因爲有 (SPACE)? – user2171820 2013-03-18 09:47:34

回答

0

爲文件名之間用空格刪除str_replace函數() 以下行後 $pre_file_name = $_POST['name'];

你的代碼將

$pre_file_name = $_POST['name']; 

$new_file_name = str_replace(" ", "+", $pre_file_name); 
+0

而不是什麼,我代替以下'$ file_name = $ pre_file_name。$ ext; fopen($ file_name,'w'); ' – user2171820 2013-03-18 10:45:31

+0

你的問題是什麼?其實我想過你用+來替換空格的問題。因爲我建議在** create_file.php中使用該代碼** – 2013-03-18 10:50:53

+0

執行此代碼您將得到您的答案 '<?php $ tmp =「go to」; $ new = str_replace(「」,「+」,$ tmp); echo $ new; ?>' – 2013-03-18 10:55:21

2

爲了您create_file.php做以下(測試) 。

例如:如果你的頁面的標題是「頁1」中間有空隙,它會創建頁面「page_1.txt」之間添加下劃線。下劃線可以代替「+」(如果需要)或任何其他有效的字符。

<?php 
$ext = ".txt"; 
$pre_file_name = $_POST['name']; 
$file_name = $pre_file_name.$ext; 
$file_name = str_replace(" ", "_", $pre_file_name.$ext); 
fopen($file_name,'w'); 
?> 
<form action="edit_file.php" method="post" class="form-horizontal"/> 
<label class="control-label">Enter the new (text):</label> 
<div class="controls"> 
<span class="field"><textarea class="span6 m-wrap" name="edit" cols="1600" rows="10"></textarea></span><p> 
<input type="hidden" name="file_name" value="<?php echo $file_name; ?>"> 
<input class="btn red" type="submit" value="Create one!"> 
</div> 
</div> 
</form> 
+0

如您所知,我將您的語言翻譯成英語。 ;-) – 2013-03-18 12:06:07

+0

另外,我不太清楚你的其他文件是如何集成到你的新聞腳本中的,但從我可以告訴你不應該修改你的其他文件,因爲一旦創建了初始文件,它就會被編輯之後。至少,這是我的想法。 – 2013-03-18 12:12:08