2013-05-16 6 views
0

J'ai un fichier texte comme:Choisissez-code du pays et domaine correspondant du fichier texte

en-US -> www.google.co.uk 
en-UK -> www.bbc.co.uk 
es-CO -> www.somedomain.com 

Je veux être en mesure de choisir le pays/type de langue, par exemple en-US et le nom de domaine correspondant sur la même ligne. Comment puis-je faire cela?

A départ:

$file = "data.txt"; 
$f = fopen($file, "r"); 

while ($line = fgets($f, 1000)) { 

    if (preg_match('/^-> .*$/', $line)) { 
     fwrite($out, $fh); 
    } 
    print $line; 
} 
+0

substr ($ ligne, 0, strpos ($ ligne, '->')) Semble choisir la langue/le code du pays seulement. Comment puis-je choisir le domaine et le code de pays/langue separateley? – Malcr001

Répondre

0
list($code, $domain) = array_map('trim', explode('->', $line, 2)); 
  • Ligne de séparation par -> en deux parties
  • Supprimer principaux/espaces qui se terminent
  • Extrait comme variables
+0

Cela fonctionne mais pour une raison quelconque j'obtiens l'erreur: Offset non défini: 1 – Malcr001

+0

C'est parce que l'une des lignes n'a pas -> Y at-il un moyen pour php de ne pas lancer et erreur ou simplement ignorer la ligne si '->' hasent été a trouvé? – Malcr001

+0

Ajoutez un chèque: 'if (strpos ($ line, '<-')! == false) {...' –

0

Pourquoi faire quand vous pouvez simplement utiliser un format existant et obtenir un meilleur contrôle:

fichier ini

en_US = www.google.co.uk 
en_UK = www.bbc.co.uk 
es_CO = www.somedomain.com 

PHP

$domains = parse_ini_file('data.ini'); 

print_r($domains); 

PHP Sortie

Array(
    'en_US' => 'www.google.co.uk', 
    'en_UK' => 'www.bbc.co.uk', 
    'es_CO' => 'www.somedomain.com' 
) 
+0

Ceci est une façon très pratique de le faire. – Malcr001

Questions connexes