2016-08-08 1 views
0

を比較UNTIL以下のPHPコードを1つのファイルを読み込み、別のファイルに同じ内容を書くために働く細かいファイルに書き込みます:PHPコードの読み取りと私は、サブストリングに

<?php 

$input = @fopen("./temp.def", "r"); 
$output = @fopen("./temp.tpc","w"); 

if ($input) { 

    while (!feof($input)) { 
     $buffer = fgets($input); 
     fputs($output, $buffer); 
    } 
    if (!feof($input)) { 
     echo "Error: unexpected fgets() fail\n"; 
    } 

    fclose($input); 
    fclose($output); 

} 

しかし、私はいくつかのコンテンツを交換するためのコードを追加するとき部分文字列が特定のテキストであるかどうかに基づいて動作しません。コードに変更唯一のものが追加部分である、黄色で強調表示

<?php 

$input = @fopen("./temp.def", "r"); 
$output = @fopen("./temp.tpc","w"); 

if ($input) { 

    while (!feof($input)) { 
     $buffer = fgets($input); 

     //check to see if it is a `row` line 
     $isrow = mb_substr($buffer, 0, 5, 'UTF-8'); 
     if ($isrow == "row=:") { 
      $data = str_ireplace("row=:", "base=:[loc^nb]" . chr(10) . "row=:", $buffer); 
      else { 
       $data = $buffer; 
      } 
     } 

     fputs($output, $data); 
    } 
    if (!feof($input)) { 
     echo "Error: unexpected fgets() fail\n"; 
    } 

    fclose($input); 
    fclose($output); 

} 

、および変数名の変更、青くハイライト...

color-highlighted code

+1

'} else {' maybe ... – AbraCadaver

+0

あなたは間違った中かっこがあります。 if文と 'else'の間に1つもありません。その下にブレースが浮かんでいます。 – aynber

+0

私はここでは不安ですが、' str_ireplace() 'です。マルチバイト文字セットを認識していますか? – RiggsFolly

答えて

0

:ここではそのためのコードです。そこには奇妙なブレースがあります。試してください:

if ($isrow == "row=:") { 
    $data = str_ireplace("row=:", "base=:[loc^nb]" . chr(10) . "row=:", $buffer); 
} else { 
    $data = $buffer; 
} 
+0

チャームのように働いた...ありがとう。 – larryb

関連する問題