2017-03-22 2 views
0

So habe ich einen Block von Text, den ich in ein PHP-Array konvertieren möchte. Das Endziel ist, Daten von über 40 Jahren so schnell wie möglich in die MySQL-Datenbank einzugeben.Konvertieren Sie einen Block von formatiertem Text in PHP-Arrays

Also ideal, wenn die Daten in die folgenden Arrays geparst werden könnten, damit ich die Daten verarbeiten kann. Irgendwelche Ideen wie man das macht? Ich dachte an preg_split. Hat jemand andere Ideen?

$chartpos[] = "1" 
$artist[] = "FRANK SINATRA" 
$track[] = "Strangers In The Night" 
$performancetype[] = "and charts"` 
+1

Verwenden Sie 'preg_match_all()'. – Barmar

+1

Viele Songtitel enthalten Klammern. Sie werden es schwer haben, die Klammern zu unterscheiden, die Teil des Titels sind und diejenigen, die den Leistungstyp enthalten. – Barmar

Antwort

1

Dieser reguläre Ausdruck würden Sie ein Array erhalten bei $ Spielen mit 'id' Element und ein 'Name' Element all die entsprechende Position enthält, wenn Ich habe Ihr Format richtig verstanden

$a = "(1) FRANK SINATRA – Strangers In The Night (and charts) 
(4) THE MERSEYS – Sorrow 
(19) PAUL & BARRY RYAN – I Love Her 
(NEW) EDDY ARNOLD – I Want To Go With You"; 

preg_match_all('/\((?<id>[0-9]|NEW)\) (?<name>.*)/', $a, $matches); 
print_r($matches); 
0

Dies wird Ihnen helfen, ...

$re = '/\(([0-9NEW]+)\)\s+([A-Z& ]+) – (.*)/m'; 
$str = '(1) FRANK SINATRA – Strangers In The Night (and charts) 
(4) THE MERSEYS – Sorrow 
(19) PAUL & BARRY RYAN – I Love Her 
(NEW) EDDY ARNOLD – I Want To Go With You'; 

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0); 

// Print the entire match result 
var_dump($matches); 
Verwandte Themen