2016-11-22 3 views
0

Wenn eine Datei A.php die sicher einige Zeilen haben, und ich bestimmte Zeilen von A.php in eine neue Datei B.php exportieren oder kopieren möchte, so geht der Prozess so (Kopieren von Zeilen von x nach y in der A.php - Erstellen einer neue Datei mit dem Namen B.php - Vergangenheit und speichern B.php).Kann ich bestimmte Zeilen von Datei zu Datei exportieren?

Also, wenn ich Linien von 3 bis 8 extrahiert werden soll (zum Beispiel) in dem folgenden Code

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8" /> 
    <?php 
    $fname= basename(__FILE__,'php'); 
    ?> 
    <title><?php echo $fname; ?></title> 
</head> 
<body> 
    <p>This is a test Page</p> 
</body> 
</html> 

Wie kann ich dies tun in Details, wenn Sie können?

+0

den Code setzen Sie in separate Datei wiederverwenden möchten, dann 'include()' das? –

+0

Ich möchte nicht einschließen. Ich muss nur einige Zeilen extrahieren und neue Datei erstellen und dann diese Zeilen hinzufügen –

Antwort

1

Aus der Dokumentation hier:

http://php.net/manual/en/function.file.php

Dieser Befehl teilt die Datei in ein Array von Zeilen:

// substitute a local file for the URL 
$lines = file('http://php.net/manual/en/function.file.php'); 
echo $lines[0]; 
// <!DOCTYPE html> 
echo $lines[56]; 
// <![endif]--> 

Nachdem Sie die Linien haben Sie Sie eine neue Datei erstellen und Speichere es. Es gibt 100 Möglichkeiten, dies zu tun. Hier ist eine:

http://php.net/manual/en/function.file-put-contents.php

file_put_contents('fileInCurrentDirectory.php', $lines[3], FILE_APPEND | LOCK_EX); 

file_put_contents('fileInCurrentDirectory.php', $lines[4], FILE_APPEND | LOCK_EX); 

file_put_contents('fileInCurrentDirectory.php', $lines[5], FILE_APPEND | LOCK_EX); 
+0

Aber ich möchte die neue Datei automatisch generieren. Extrahiere die Zeile und erstelle die neue Datei und importiere automatisch diese Zeilen –

+0

Danke, ich habe meine Gedanken und endlich habe ich erreicht, was ich will. –

1

Sie file können Sie die Datei in ein Array von Zeilen konvertieren, dann array_slice die Linien erhalten Sie wollen und schließlich file_put_contents in die neue Datei exportieren. Wie folgt aus:

function A2B($a,$b,$from,$to){ 
    $f = file($a,FILE_IGNORE_NEW_LINES); 
    $n = array_slice($f,($from-1),($to-$from+1)); 
    file_put_contents($b,implode("\n",$n)); 
} 

und nennen Sie es wie

A2B("a.php","b.php",3,6); 
Verwandte Themen