-1
<input type="hidden" name="com_link" value="?dir=<?php echo 'gallery/'.urldecode($curr_image['dir']); ?>&pic=<?php echo substr(urldecode($curr_image['filename']), 0, -4); ?>">    

substr(urldecode($curr_image['filename']), 0, -4);なしでファイル名を送信したい.jpg

4

3 に答える 3

3

拡張子なしでパスを取得するために使用できる方法がいくつかあります。

1つは、PHPsubstr()strrpos()次のように使用することです。

$image = urldecode($curr_image['filename']);
$name = substr($image, 0, strrpos($image, '.'));

これにより$image、最後までの部分文字列が取得され.ます。

別の方法は、拡張子が常に4文字の長さ(を含む.)であることがわかっている場合、最後の4文字を切り落とすことです。

$image = urldecode($curr_image['filename']);
$length = strlen($image);
$name = substr($image, 0, $length - 4);

この最後の方法は、あなたが最初にやろうとしていたことのようです。

于 2012-08-18T13:24:22.557 に答える
0

http://php.net/basenameを試してはいけない理由

<?php echo basename($curr_image['filename'], '.jpg'); ?>
于 2012-08-18T13:23:29.857 に答える
0

試す

  urlencode(pathinfo($curr_image['filename'], PATHINFO_FILENAME));
于 2012-08-18T13:27:37.950 に答える