查看完整版本 : php讀取資料

hkhome 2017-2-10 16:22

etc({"Data":"\a1\b1\b4647\b0\b84\b30\a1\b1\b10689\b10689\b85\b900\a1\b1\b5634\b0\b85\b800"});

output

1 1 4647 0 84 301 1 10689 10689 85 9001 1 5634 0 85 800
請問各位,如果我想用PHP 讀到data裏面既資料,應該怎做?


謝謝各位

arthursml 2017-2-10 22:46

先用SPLIT 分 "\"
[url]http://php.net/manual/en/function.split.php[/url]
再用preg_match_all
[url]http://stackoverflow.com/questions/6278296/extract-numbers-from-a-string[/url]

form5 2017-2-10 23:13

interesting :lol

>>>
>>>
>>> s = r"\a1\b1\b4647\b0\b84\b30\a1\b1\b10689\b10689\b85\b900\a1\b1\b5634\b0\b85\b800"
>>> ''.join([ c for c in s  if  c not in ('\\', 'a') ]).replace('b', ' ')
'1 1 4647 0 84 301 1 10689 10689 85 9001 1 5634 0 85 800'
>>>

煙民母親生賤種

*** 作者被禁止或刪除 內容自動屏蔽 ***

煙民母親生賤種

*** 作者被禁止或刪除 內容自動屏蔽 ***

煙民母親生賤種

*** 作者被禁止或刪除 內容自動屏蔽 ***

marlin12 2017-2-11 08:18

咁會唔會再好啲[code]<!--?php
$json = '{"Data":"\a1\b1\b4647\b0\b84\b30\a1\b1\b10689\b10689\b85\b900\a1\b1\b5634\b0\b85\b800"}';
//replace unacceptable char \
$json = str_replace('\\', ",", $json);
//echo $json;
$data = json_decode($json);
$result = str_replace(array(',a', ',b'), ' ', $data->{'Data'});
$resultArray = explode(' ', $result);
foreach($resultArray as $entry) {
echo $entry . ' ';  
}
?>[/code]

marlin12 2017-2-11 08:53

仲有一個嗱喳招[code]<!--?php
$input = 'etc({"Data":"\a1\b1\b4647\b0\b84\b30\a1\b1\b10689\b10689\b85\b900\a1\b1\b5634\b0\b85\b800"});';

preg_match_all( '!\d+!', $input, $result );

foreach( $result[0] as $entry ) {
    echo $entry . ' ';
}
?>[/code]

hkhome 2017-2-11 11:28

嘩,好多謝各位師傳回復,我消化下先。
真係好感謝各位

hkhome 2017-2-11 12:23

因我PHP無json,所以只能用marlin12師兄方法。

想請教下!\d+!係咩意思?

因為我用

<!--?php
$input = 'etc({"Data":"\a1\b1\b4647\b0\b84\b30\a1\b1\b10689\b10689\b85\b900\a1\b1\b5634\b0\b85\b800"});';

preg_match_all( '!\d+!', $input, $result );

foreach( $result[0] as $entry ) {
    echo $entry . ' ';
}
?>

是可以OUPUT出來,但有些數值如45.8,就只能出到45,450/1557就只能出到450。

再次感謝各位

marlin12 2017-2-11 13:33

[quote]原帖由 [i]hkhome[/i] 於 2017-2-11 12:23 PM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=456199124&ptid=26437155][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
因我PHP無json,所以只能用marlin12師兄方法。
想請教下!\d+!係咩意思? ... [/quote]
!\d+! 係一句regular expression,意思係抽取>=1個連續既數字。

如果除咗整數外,仲要攞埋分數、點數,你可以試吓下面個方法。但係咁樣(乜都唔理)抽資料,有些少變化都會錯,你考慮清楚用唔用。:smile_41:[code]<!--?php
$input = 'etc({"Data":"\a1\b1\b4647\b0\b84\b30.5\a1\b1\b106/89\b10689\b85\b900\a1\b1\b5634\b0\b85\b800"});';

preg_match_all( '!(\d+\.\d+)|(\d+\/\d+)|(\d+)!', $input, $result );

foreach( $result[0] as $entry ) {
    echo $entry . ' ';
}
?>[/code]

hkhome 2017-2-11 17:03

marlin12兄,我用preg_match_all( '!(\d+\.\d+)|(\d+)!', $resultdata, $pieces );,經已順利OUTPUT到,謝謝你的幫忙。

多謝其餘師兄的教導。

goodmap 2017-2-12 00:11

可以學到野!!

煙民母親生賤種

*** 作者被禁止或刪除 內容自動屏蔽 ***

煙民母親生賤種

*** 作者被禁止或刪除 內容自動屏蔽 ***
頁: [1]
查看完整版本: php讀取資料