2016-06-10 56 views
1

我有一個PHP sscanf函數和逗號字符的問題。我需要提取4個值,因爲這工作示例作用:php sscanf和逗號字符

<?php 
$format = '%s %s, blabla %ih blabla %ih'; 
$input = 'blabla 08-06-2016 blabla 14h blabla 17h'; 
$result = sscanf($input, $format); 
var_dump($result); 

輸出:

array (size=4) 
    0 => string 'blabla' (length=10) 
    1 => string '08-06-2016' (length=10) 
    2 => int 14 
    3 => int 17 

但我的真實的例子涉及一個逗號,而我沒有得到它的工作:

<?php 
$format = '%s %s, blabla %ih blabla %ih'; 
$input = 'blabla 08-06-2016, blabla 14h blabla 17h'; 
$result = sscanf($input, $format); 
var_dump($result); 

輸出:

array (size=4) 
    0 => string 'blabla' (length=10) 
    1 => string '08-06-2016,' (length=11) 
    2 => null 
    3 => null 

這很簡單,但我找不到解決方案......逗號是保留字嗎?

更新1:

對不起,我忘了提及這一點: 我希望使用存儲在$格式字符串模板作爲模板的sprintf過:如果我修改,包括正則表達式,它不會sprintf兼容,我錯了嗎? 我已經找到了相同的字符串模板可以用於兩個方向:包裝和解包:非常有用!...也許不可能與逗號相關?

謝謝:)

+1

重複:http://stackoverflow.com/questions/26117192/wrong-results-by-using-sscanf-in-php – OSdave

+0

感謝您的回覆,但我有一個限制,我忘了提及......請看看更新1 – Katapofatico

+0

你可以擴展你想如何使用'sprintf'?請展示一個例子,以便我可以有一個更好的主意 – OSdave

回答