2016-07-19 15 views
-1

編集:nvm、私の悪い、基本的に誤って再読み込みエラーを読んでください。日付をチェックし、ログを賢明にクリアすることを忘れないでください。PHPは、構文エラーを見つけることができません

Apacheのログは、予期しない "エコー"、 "スイッチ"、 "エコー"に関してもう一度慎重に行2,5と23のエラーを報告します。 私はすでにすべての可能性のあるセミコロンをチェックしていると思いますが、問題がどこにあるかはまだわかりません。

また

、ではない、私は問題のカップルを見セミコロンはヒアドキュメント

<?php 
if($_FILES){ 
$image = $_FILES['filename']['name']; 

switch ($_FILE['filename']['type']) { 
    case 'image/jpeg': $ext = 'jpg'; 
     break; 
    case 'image/png': $ext = 'png'; 
     break; 
    case 'iamge/gif': $ext = 'gif'; 
     break; 
    default: $ext = ''; 
     break; 
} 
if($ext) 
    move_uploaded_file($_FILES['filename']['name'], "images/$image.$ext"); 
} 

//$post_number = $post_number + 1; 
$name = $_POST['name']; 
$comment = $_POST['comment']; 

$text = echo <<<_END 
<article> 
    //<h3> '$post_number'</h3> 
    <h4>'$name'</h4> 
    <br> 
    <p> '$comment' </p> 
    <img src=images/'$image.$ext'> 
</article> 
_END; 

$file = fopen("index.php", 'r+'); 
fseek($file, -17, SEEK_END); 
fwrite($text); 
fclose($file); 
?> 
+0

heredoc構文を使用するときに 'echo'は必要ありません。それ以外はokです。 – iainn

+0

'echo'は何も返しませんhttp://php.net/manual/en/function.echo.php –

+0

どのように/このファイルが使用されていますか?それは他の何かに含まれていますか? –

答えて

0

後に追加されるべきかどうかわから:

第一:

$text = echo <<<_END 

この行を置き換えこの

$text = <<< "_END" 

エコーしたい場合は、echo $textを後で実行してください。また、にはがありません。また、閉じる行には_END;以外が指定されています。タブがありません。_END;see the docs)の前後に空白はありません。

第2:fwriteは、書き込みするテキストだけでなくファイルハンドルも必要とするため、エラーとなります。あなたがそれをしている間に、ファイルを書き込もうとする前にファイルが正常に開かれたことを確認する必要があります。ファイル操作を以下のコードに置き換えます。

if($file = fopen("index.php", 'r+')){ 
    fseek($file, -17, SEEK_END); 
    fwrite($file, $text); 
    fclose($file); 
}else{/* Todo: handle fopen failure */} 

ハッピーコーディング。

関連する問題