2010-06-17 28 views
9

Không chắc chắn nếu có một cách để kiểm tra một biến nếu nó có thể phát nổ ...Kiểm tra biến nếu phát nổ trong PHP

Tôi có một cơ sở dữ liệu tên thành phố một số là một thành phố từ và một số là nhiều thành phố từ

EX: Chicago, Los Angeles

tôi tiếp tục nhận được một lỗi khi sử dụng "nổ tung" khi tên thành phố là một từ, vì vậy tôi đã cố gắng sử dụng "đếm" và sử dụng một câu lệnh if. .. không có bất kỳ may mắn nào

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

Bạn gặp phải lỗi gì? – Sjoerd

Trả lời

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

Cảm ơn bạn rất nhiều vì đã trả lời nhanh chóng! – ZaneDeFazio

0

phát nổ() luôn trả về một mảng, cho dù nó có phát nổ một cái gì đó hay không.

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

Có, chắc chắn có thể được thực hiện. Hãy thử stristr()

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

Nó không giống như bạn đang cố gắng biến không gian thành '+'.

tôi sẽ chỉ sử dụng một dụng str_replace()

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

HA! Tôi thậm chí không nghĩ đến việc sử dụng str_replace dễ dàng hơn nhiều. Cảm ơn bạn đã trả lời. – ZaneDeFazio

+0

Bạn được chào đón :) –

6

nổ bản thân để xem nếu nó là bị nổ

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

Rất đẹp. tiện dụng của nó sau đó tất cả các phương pháp khác. – YumYumYum

0

Đây là cách hiệu quả nhất. Tôi đã thực hiện điều này.

$name = $_POST["address_name"]; 
if(strpos($row['city'], ' ') !== false) { 
    // explodable 
    list($fname, $lname) = explode(' ', $name); 
} else { 
    // not explodable 
    $fname = $name; 
    $lname = $name; 
} 
Các vấn đề liên quan