PHP -

2017-09-19 3 views
-2

特定の文字までの文字列をカットし、私はいくつかの以前のstackoverflowの質問を見て、私は、私はどこでも欲しかったものを見つけることができませんでした:PHP -

私は特定の文字まで$_GETを使用して得られた文字列を分割します。ここで

は、サンプルのURLです:後 mywebsite/savettimes.php?time=1%3A15%2E123

もの '時間=' 1のように、基本的にはちょうど時間である:13.123。この場合、1分だけ取得したいと思っています。私はちょうどsubstr()を使用することができますが、問題は分が何桁になるのか分かりません。それは1または2かもしれません。

私は複数のif文を使ってみましたが、もっと良い方法が欲しいです。

$time = $_GET['time']; 
if (strlen($time) == 6) {//If only 1 digit of minutes is there 
    $min = substr($time, 0, 1); 
} else if (strlen($time) == 7) { 
    $min = substr($time, 0, 1); 
} 

したがって、文字列を ':'まで分割します。これはどうすればいいですか?

$time = $_GET['time']; 
$timeParts = explode(":", $time); 
$minute = $timeParts[0]; 

注:

+0

は '%3A'または'によって爆発します: '' urldecode'の後に – C2486

+0

誰かが私の質問に間違っていたことを教えてもらえますか? – Cubetastic

+0

私は答えたので、私はdownvoteしませんでしたが、おそらく研究の努力と多くの同様のまたは正確な質問が見つかりませんでした。 – AbraCadaver

答えて

1

最初:発生する前にすべてを返すことができstrstrで簡単:

$min = strstr($_GET['time'], ':', true); 

または同様seconds.micro秒を取得する:

list($min, $sec) = explode(':', $_GET['time']); 
+0

マイクロ秒はドットで秒から区切られているので注意してください。代わりに 'list($ min、$ sec、$ mic)= sscanf($ _GET ['時間']、 '%d:%d。%s')'を実行することができます。しかし '$ mic'の先行ゼロを注意してください。 –

+0

@CasimiretHippolyte:私は感謝しなかった! – AbraCadaver

0
$url = "23:13.123."; 
$minute = substr($url, 0, strpos($url, ':')); 
0

あなたは、PHP explode機能を使用することができますreccomendedされていないフィルタなしで$_GET['']を使用していますが、この質問に関連していません。