2014-04-04 72 views
2

我知道更換的空間,我可以使用:PHP替換第一空間分號

str_replace(' ', ';', $string); 

我的問題是...我怎麼只替換第一空間?

例如:firstword secondword thirdwordfirstword;secondword thirdword

+1

這可能是你所需要的:http://stackoverflow.com/questions/1252693/php-str-replace-that-only-actions-on-the-the-match –

回答

2

我會使用的preg_replace

$subject='firstword secondword thirdword'; 
$result = preg_replace('%^([^ ]+?)()(.*)$%', '\1;\3', $subject); 
var_dump($result); 
0

你可以使用正則表達式了preg_replace,或使用stripos。 所以,你會做到這一點:

<?php 
$original = 'firstword secondword thirdword'; 
$result = 
    substr($original,0,stripos($original,' ')) 
    .';' 
    .substr($original,stripos($original,' ')+1); 

    echo $result; 

看到它運行here

+0

爲什麼不用'str_replace()'? –

+0

@JackWilliams True ...會是更好的選擇。 –

6
preg_replace('/ /', ';', $string, 1) 
+1

43秒更快:) –

+0

我得到:致命錯誤:只有變量可以通過引用傳遞 – Satch3000

+0

編輯...對不起,這是錯誤的。 – dikesh

0

提供替換次數:

str_replace(' ', ';', $string,1); 

參考wiki

+0

正在獲取:致命錯誤:只能通過引用傳遞變量 – Satch3000