ファイル名から特定の文字列の後に拡張子が付いた文字列を削除したい。上記のファイル名C14-IMAGE-BACK-PREVIEW-TEST-1349965063.docで、パーツ-1349965063を削除したい。ファイルを削除した後名前はC14-IMAGE-BACK-PREVIEW-TEST.docである必要があります
質問する
77 次
3 に答える
0
次を使用できます:http substr
://php.net/manual/en/function.substr.php
これは、文字列の最初の部分の長さが一定である場合にのみ機能します。
$string = 'C14-IMAGE-BACK-PREVIEW-TEST-1349965063.doc';
$start = 0;
$length = 27;
$first_part = substr($string, $start, $length);
次に、拡張機能を最後に追加し直します。
長さが一貫していない場合の代替案:
$string = 'C14-IMAGE-BACK-PREVIEW-TEST-1349965063.doc';
$ext = pathinfo($string);
$parts = explode('TEST', $string);
$filename = $parts[0] . 'TEST' . $ext['extension'];
名前が絶えず変化しているが、ハイフン構造が維持されている場合は、ハイフンで爆発する可能性があります。次に、タイムスタンプである最後の配列エントリを無視します。
$string = 'C14-IMAGE-BACK-PREVIEW-TEST-1349965063.doc';
$ext = pathinfo($string);
$parts = explode('-', $string);
$file = '';
for ($i = 0; $i < count($parts) - 1; $i++)
{
$file .= $parts[$i];
}
$file .= $ext['extension'];
于 2012-10-11T15:02:05.927 に答える
0
$str = 'C14-IMAGE-BACK-PREVIEW-TEST-1349965063.doc';
$str = preg_replace('/^(.*)-(\d+)(\.doc)$/',"$1$3",$str);
于 2012-10-11T15:02:07.890 に答える
0
これは私がしたことです:
<?php
$name = "C14-IMAGE-BACK-PREVIEW-TEST-1349965063.doc";
$new_name = $name;
$search = "TEST";
$position = strpos($name, $search);
$ext = pathinfo($name);
if($position !== false && !empty($ext['extension']))
{
$new_name = substr($name, 0, $position + strlen($search)) . '.' . $ext['extension'];
}
var_dump($new_name);
于 2012-10-11T15:08:59.540 に答える