$str = "./product/abc/product.htm";
$pos1 = strpos($str, "/");
$pos2 = strpos($str, "/",$pos1);
echo $pos2;
としても$POS1と同じ値しかでません。どうしたらいいでしょう?
phpのご質問ということでよろしいですよね。
下記のように'/'が見つかった次の位置から探させるために、2回目以降はoffsetを'+1'するのが簡単かと思います。:
$str = "./product/abc/product.htm";
$pos1 = strpos($str, "/");
$pos2 = strpos($str, "/", $pos1 + 1);
echo "$pos1,$pos2\n"; // 結果表示
または、explode() (http://php.benscom.com/manual/ja/function.explode.php) を以下のように使うのはいかがでしょうか?
list($dummy, $p1, $p2) = explode('/', $str);
echo implode(':', array($dummy, $p1, $p2)). "\n"; // 結果表示
preg_match_all() はいかがでしょうか?
http://jp2.php.net/manual/ja/function.preg-match-all.php
$str = "./product/abc/product.htm"; preg_match_all('/[^\/]+/', $str, $res); var_dump($res);
結果は
array(1) {
[0]=>
array(4) {
[0]=>
string(1) "."
[1]=>
string(7) "product"
[2]=>
string(3) "abc"
[3]=>
string(11) "product.htm"
}
}
コメント(0件)