2013-05-23 4 views
1

.txt 파일을 편집하는 데 사용되는 응용 프로그램이 있습니다. 선택한 파일을 열고 파일에 쓰고 파일을 닫습니다. 편집해야하는 각 파일에는 과 같은 특수 문자가 있습니다. [, ', =, _,;. 편집 할 필요가 없으므로 파일을 열 때 웹 페이지에 표시되지 않습니다. 그 특수 문자 사이에 텍스트가 존재합니다. 편집 할 부분이 있습니다. 내가 성취하고자하는 것은 파일이 열릴 때 특수 용맹 선원이 숨겨지며 파일의 글자 만 표시되고 여기에 내가하려고하는 것입니다. 성취는 파일이 저장 될 때 특수 용선자는 여전히 편집 된 텍스트가있는 파일에 원래 위치에있게됩니다. 파일의 모든 현재 내가 explode(); 기능과 str_replace() 기능 하지만 지금까지 내가 특별한 용선을 제거하고 파일을 저장할 때 문자로 저장하지에만 수 있어요와 장난하고이기호 덮어 쓰기 및 숨기기

['text'] = ['some_,more_text'] 

처럼 보인다 삭제 된 텍스트

는 일부 기능 또는 내가 그 내가 크게 나는 여전히 PHP 매뉴얼을 통해 갈거야하지만 난 아파트 필요한 가까이 아무것도 찾을 수 없습니다

을 평가하는 모든 리플레이를 목표로하고있는 결과를 얻을 수 있습니다 덩어리로 만들어진 방법이 있나요

:이 파일에 기록 하나입니다

$fileHandle = fopen($relPath, 'r') or die("Failed to open file $relPath go and make me a sandwich! "); 

echo '<form action="updatefile.php" method="post">'; 

while(!feof($fileHandle)) 
    { 
    $line = fgets($fileHandle); 
    $lineArr = explode('=', $line); 

    if (count($lineArr) !=2){ 

     continue; 
    } 
    $part1 = trim($lineArr[0]); 
    $part2 = trim($lineArr[1]); 

    //$simbols = array("$", "[", "]", "'", ";"); 

    //echo "<pre>$part1 $part2</pre>"; 

      echo '<pre><input type="text" name="content_prt1[]" size="50" value="' .str_replace($simbols, "",$part1).'"> <input type="text" name="content_prt2[]" size="50" value="' .str_replace($simbols, "",$part2).'"></pre>'; 
    } 
    echo '<input type="submit" value="Submit" name="submit1">'; 
    echo '<form />'; 

    fclose($fileHandle) or die ("Error closing file!"); 

: explode() 여기

str_replace().에서 내 파일을 열려면이를 사용하여 내 코드입니다

if(isset($_POST['submit1'])){ 
    ini_set('auto_detect_line_endings', TRUE); 

    $file = "test_file_1.php"; 

    if(is_file($file)) 
    { 
     $handle = fopen($file, "w") or die ("Error opening file! {$file}"); 
    } 
    else 
    { 
     die($file . ' Dose Not Exist!'); 
    } 

    $content_prt1 = $_POST['content_prt1']; 
    $content_prt2 = $_POST['content_prt2']; 

    $data = ''; 

    foreach ($content_prt1 as $key => $value) { 
     $data .= $value . " = ". $content_prt2[$key]. PHP_EOL; 
    } 

    //$file_contents = $_POST["content_prt1" . "content_prt1"]; 

    fwrite($handle, $data) or die ("Error writing to file {$file}!"); 
    fclose($handle) or die("Error closing file!"); 

    header('Location:../index.php') ; 

} 
+0

이렇게 스트레이트를 얻으려면 ...파일에'foo [ 'bar'] baz'가 포함되어 있으면 "foo bar baz"로 사용자에게 표시하고 "42 glob bar bar"로 편집하면 42 glob [ 'bar'] bar' ? 아니면 42 glob [ 'bar'] [ 'bar']'입니까? – deceze

+0

내가 원하는 42 glob [ 'bar'] 표시 줄의 파일 구조는 파일의 텍스트 만 변경해서는 안됩니다. – user2362103

+0

@deceze 간단히 말해, 나는 OP가'FileWriter' 클래스를 필요로한다고 생각합니다. ini 파일 리더/라이터와 같습니다. – BlitZ

답변

2

이 작업을 수행하는 기능이나 클래스를 찾을 수 없습니다. 아카이브하려고하는 것이 훨씬 더 복잡합니다.

just+a=sample으로 시작하여 just a sample으로 시작한다고 가정 해 보겠습니다.

사용자가 이것을 what으로 변경합니다. 특수 문자는 어디에 배치해야합니까?

+what= 또는 +=what 또는 what+=은 모두 유효한 해결책입니다.

당신은 세 가지 옵션이 있습니다 : 자바 스크립트와

  1. 사용하는 많은 작은 텍스트 영역 (추한) 자신의 "textare"createyour
  2. 을하고 사용자가 위치 커서 추적 (을 아주 아주 나쁜 생각)
  3. 전 편집 후 문자열을 비교하는 복잡하고 오류가 발생하기 쉬운 논리를 만들

보통 사람들이 을 게시하는 경우 "do do this do"라고 대답하면 답을 얻을 수 있지만이 문제는 해결할 수있는 기회가 없습니다.

행운을 빌어 당신은 해결책이나 다른 접근 방법을 찾길 바랍니다.

+0

Tnx입니다. 당신이 그것을 묘사하는 방식은 복용량이 매우 복잡해 보입니다. 나는 이것이 내가 아프다고 생각하는 것보다 더 힘들다고 생각합니다. 나는이 기능을 쉽게 해결할 수 있기를 바랬다. :) – user2362103