2010-10-18 11 views

Répondre

3

Essayez ceci:

$pieces = explode('.', $filename); 
$morePieces = explode('-', $pieces[0]); 
$cityname = $morePieces[1]; 
+0

Je pense que ce serait plus facile. Dans cet ordre, vous pouvez simplement utiliser une combinaison de substr() et strpos() pour obtenir le nom de la ville, comme $ city = substr ($ filename, 0, strpos ($ filename, '-')); – Jeremy

3

Combiner strpos() et substr().

$filename = "location-cityName.xml"; 

$dash = strpos($filename, '-') + 1; 
$dot = strpos($filename, '.'); 

echo substr($filename, $dash, ($dot - $dash)); 
1

Il y a quelques façons ... celui-ci est sans doute pas aussi efficace que le combo strpos et substr mentionné ci-dessus, mais son plaisir:

$string = "location-cityName.xml"; 
list($location, $remainder) = explode("-", $string); 
list($cityName, $extension) = explode(".", $remainder); 

Comme je l'ai dit ... il y a beaucoup de méthodes de manipulation de chaînes dans php et vous pouvez le faire de nombreuses autres façons.

1

Voici une autre façon de saisir l'emplacement aussi bien, si vous voulez:

$filename = "location-cityName.xml"; 
$cityName = preg_replace('/(.*)-(.*)\.xml/', '$2', $filename); 
$location = preg_replace('/(.*)-(.*)\.xml/', '$1', $filename); 
1

Voici une approche fondée sur l'expression régulière:

<?php 
$text = "location-cityName.xml"; 
if (preg_match("/^[^-]*-([^.]+)\.xml$/", $text, $matches)) { 
    echo "matched: {$matches[1]}\n"; 
} 
?> 

Cette imprimera:

matched: cityName 
Questions connexes