2016-01-08 3 views
-8

Привет, у меня есть текстовые файлы, как показано ниже.Как перестроить текстовые файлы с помощью php

0 // means Type 
0 1 1 "Kris" 
1 1 1 "Short Sword" 
2 1 1 "Rapier" 
3 1 1 "Katache" 
4 1 1 "Scimitar" 
5 1 1 "Blade" 
6 1 1 "Gladius" 
end // end of first type 


1 // type 
0 1 1 "Small Axe" 
1 1 1 "Hand Axe" 
2 1 1 "Double Axe" 
3 1 1 "Tomahawk" 
4 1 1 "Fairy Axe" 
end // end of 2nd type 

Продолжение более 1000 строк. вопрос в том, как я могу восстановить THAM спасаясь пустые строки и «конец» слова и поставить первую строку как число типа, как сильфонных

0 0 1 1 "Kris" 
0 1 1 1 "Short Sword" 
0 2 1 1 "Rapier" 
0 3 1 1 "Katache" 
0 4 1 1 "Scimitar" 
0 5 1 1 "Blade" 
0 6 1 1 "Gladius" 
1 0 1 1 "Small Axe" 
1 1 1 1 "Hand Axe" 
1 2 1 1 "Double Axe" 
1 3 1 1 "Tomahawk" 

Спасибо за любую помощь заранее.

+1

Пожалуйста, покажите, что вы уже пробовали. Мы поможем вам исправить ваш код, но мы не собираемся писать его для вас. – Barmar

ответ

0

Если вы вообще не заботитесь о преформации и просто хотите перестроить файл, откройте файл, используя file("path"), который читает весь файл inn в виде массива. Пройдите через массив и прочитайте все перед двойной цитатой. Разделите все пробелы и преобразуйте их в целое число. Затем проверьте, является ли это значение наибольшим значением, если оно хранит его. Затем используйте самое большое значение, которое у вас есть, и добавьте подходящий 0, который вы хотите.

Попробуйте это:

$file = file("test.txt"); 

$bigValue = 0; 

foreach($file as &$value) 
{ 
    $end = strpos($value, '"'); 

    if($end !== false) 
    { 
     $subStr = substr($value, 0, $end); 

     $subStr = trim($subStr, " "); 

     $value = $subStr . substr($value, $end, strlen($value)); 

     if(intval($subStr) > $bigValue) 
      $bigValue = intval($subStr); 

    } 
} 

echo $bigValue; 

//add the 0. 
foreach($file as &$value) 
{ 
    $end = strpos($value, '"'); 

    if($end !== false) 
    { 
     $subStr = substr($value, 0, $end); 

     $zero = ""; 

     if(strlen($subStr) < $bigValue) 
     { 
      for($x = 0; $x < ($bigValue- strlen($subStr)); $x++) 
      { 
       $zero .= "0"; 
      } 
     } 

     $subStr = $zero . $subStr; 
     $newStr = ""; 

     //add the spaces. 
     for($x = 0; $x < strlen($subStr); $x++) 
     { 
      $newStr .= $subStr{$x} . " "; 
     } 

     $value = $newStr . substr($value, $end, strlen($value)); 
    } 

} 


print_r($file); 
Смежные вопросы