2010-06-17 3 views
9

Не уверен, что если есть способ проверить переменную, если она взорвется, может или нет ...Проверьте переменную, если взрываются-состоянии в PHP

У меня есть база данных названий городов некоторые из них одно слово и города некоторые из них несколько городов слово

EX: Чикаго, Лос-Анджелес

Я получаю сообщение об ошибке при использовании «взрываются», когда название города одно слово, так что я попытался с помощью «подсчет» и используя, если заявление. .. не повезло

$citi = explode(' ', $row['city']); 
$count = count($citi); 
if ($count > 1) { 
    $city = implode('+', $citi); 
} 
else { 
    $city = $citi; 
} 
+1

Какая ошибка возникает у вас? – Sjoerd

ответ

22
if(strpos($row['city'], ' ') !== false) { 
    // explodable 
} else { 
    // not explodable 
} 
+0

Большое вам спасибо за ваш быстрый ответ! – ZaneDeFazio

0

explode() всегда возвращает массив, внедрил ли он что-то или нет.

$a = explode(' ', 'Chicago'); 
print_r($a); 
// output: array('Chicago') 
0

Да, определенно может быть сделано. Попробуйте stristr()

if(stristr($row['city'], ' ')) 
    // It has a space, therefore explodable 

Это Лоос, как вы пытаетесь превратить пространства в «+».

Я бы просто использовать использование str_replace()

$city = str_replace(' ', '+', $row['city']); 
+0

HA! Я даже не думал использовать str_replace, что было бы намного проще. Спасибо за ваш ответ. – ZaneDeFazio

+0

Добро пожаловать :) –

6

взрываются себя, чтобы увидеть, если это взрываемый

$a = explode(" ","Where Am I?"); 
if(count($a)>1) { 
    echo "explodable"; 
} 
else { 
    echo "No use of exploding"; 
} 
+0

Очень приятно. его гораздо удобнее, чем другие методы. – YumYumYum

0

Это наиболее эффективный способ. Я реализовал это.

$name = $_POST["address_name"]; 
if(strpos($row['city'], ' ') !== false) { 
    // explodable 
    list($fname, $lname) = explode(' ', $name); 
} else { 
    // not explodable 
    $fname = $name; 
    $lname = $name; 
}