0

最後に「-」が出現する前に文字列の一部を取得したいのですが、

例えば、

$string1 = 'a-b-c-de-f-gfgh';

この部分を返したい:abc-de-f。もちろん、最後の部分の長さはわかりません。

それを行う簡単な方法は何ですか?

ありがとうございました

4

5 に答える 5

7
echo substr ($string1, 0, strrpos ($string1, '-'));

strrpos()は、サブ文字列の最後の出現を検出します。この場合、substr()は、元の文字列を0番目の文字からstrrpos()で定義されたn番目の文字まで分割します。

于 2012-05-11T22:11:29.740 に答える
1

strrpos()を使用して、最後の「-」の位置を取得し、それをsubstr()します。

echo substr($string1, 0, strrpos($string1, "-"));
于 2012-05-11T22:13:31.247 に答える
1

使用の最後のオカレンスを取得し、 を使用-して0から$xまでの決定された文字列を返します$x = strrpos($string1,'-');substr()

 echo substr ($string1, 0, $x);
于 2012-05-11T22:22:11.947 に答える
0

その最後の部分を削除することができます:

$string = preg_replace("|-[^-]+$|", "", $string);
于 2012-05-11T22:14:46.593 に答える
0

他のポスターの代わりとして:

preg_match('/(.*)-[^-]+/', 'a-b-c-de-f-gfgh', $result);

結果:

Array
(
    [0] => a-b-c-de-f-gfgh-a
    [1] => a-b-c-de-f-gfgh
)

私はJeroensソリューションがもっと好きですが。

于 2012-05-11T22:14:27.520 に答える