1

サーバーに画像を保存し、データベースに画像名を保存するphpアプリケーションがあります。私が抱えている問題は、画像名に保存元のパス/フォルダ(1220368812 / chpk2198933_large-2.jpgなど)が含まれているため、「1220368812 /」を削除して画像名を正しく保存するには、str_replaceパターンが必要です。 db。また、str_replaceパターンがどのように機能するか、または少なくとも使用するパターンがどのように機能するかを説明する適切なリンクを送っていただければ幸いです。

4

2 に答える 2

3

試す

  • basename—パスのファイル名コンポーネントを返します

例1basename()の例

$path = "/home/httpd/html/index.php";
$file = basename($path);         // $file is set to "index.php"
$file = basename($path, ".php"); // $file is set to "index"

パス部分が削除されるstr_replaceので、何もする必要はありません。basenameまた、パターンstr_replaceを許可しません。検索文字列のすべての出現箇所を置換文字列に置き換えるだけです。パターンによる置換は正規表現を使用して行われますが、ここでも必要ありません。

于 2010-05-06T18:55:05.587 に答える
0

実際、pathinfoの方が少し優れています。それはあなたにベースネームなどを与えます:

http://php.net/manual/en/function.pathinfo.php

<?php
$path_parts = pathinfo('/www/htdocs/index.html');

echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // since PHP 5.2.0
?>

上記の例では、次のように出力されます。

/www/htdocs
index.html
html
index
于 2010-05-06T19:06:25.987 に答える