5

SOにも同様の 質問がありますが、これとまったく同じものは見つかりませんでした。特定の区切り記号まで (および含む) すべてを削除する必要があります。たとえば、文字列 が与えられた場合、File:MyFile.jpgまでのすべてを削除して:、 のみが残るようにする必要がありMyFile.jpgます。前もって感謝します!

4

7 に答える 7

9

この preg_replace 呼び出しを使用します。

$str = 'File:MyFile.jpg';
$repl = preg_replace('/^[^:]*:/', '', $str); // MyFile.jpg

または、正規表現を避けて、次のように爆発を使用します。

$repl = explode(':', $str)[1]; // MyFile.jpg

編集:正規表現を回避するには、この方法を使用します(文字列に複数の : が存在する可能性がある場合):

$arr = explode(':', 'File:MyFile.jpg:foo:bar');
unset($arr[0]);
$repl = implode(':', $arr); // MyFile.jpg:foo:bar
于 2013-04-19T12:36:55.743 に答える
4

編集:これは正常に動作します。

$str = "File:MyFile.jpg";
$str = substr( $str, ( $pos = strpos( $str, ':' ) ) === false ? 0 : $pos + 1 );
于 2013-04-19T12:37:04.597 に答える
1

これを行うために使用できますexplode: link

何かのようなもの:

$string = "File:MyFile.jpg";
list($protocol,$content) = explode(":", $string);
echo $content;
于 2013-04-19T12:37:27.187 に答える
0

2 つの簡単な方法:

$filename = str_replace('File:', '', 'File:MyFile.jpg');

また

$filename = explode(':', 'File:MyFile.jpg');
$filename = $filename[1];
于 2013-04-19T12:37:29.747 に答える
0

サンプル文字列:

$string = 'value:90|custom:hey I am custom message|subtitute:array';

文字列を配列に変換する

$var = explode('|', $string);

チェック結果:

Array(
[0] => value:90
[1] => custom:hey I am custom message
[2] => subtitute:array)

配列変数を宣言する

$pipe = array();

文字列配列 $var をループする

foreach( $var as $key => $value ) {
  // get position of colon
  $position = strrpos( $value, ':' );
  // get the key
  $key = substr( $value, 0, $position );
  //get the value
  $value = substr( $value, $position + 1 );
  $pipe[$key] = $value; }

最終結果:

Array(
[value] => 90
[custom] => hey I am custom message
[subtitute] => array)
于 2015-03-30T15:24:40.210 に答える