したがって、これが私のサイトで修正しなければならない唯一の問題です。データベースから投稿を取得し、URL を解析/置換するために呼び出されると、問題が発生します。問題は、スペースを含む重複またはイメージ名のみです。
$result = mysql_query("SELECT * FROM posts ORDER BY postid DESC");
while($row = mysql_fetch_array($result))
{
$str = $row['post_content'];
$str = preg_replace_callback('#(?:https?://\S+)|(?:www.\S+)|(?:\S+\.\S+)#', function($arr)
{
if(strpos($arr[0], 'http://') !== 0)
{
$arr[0] = 'http://' . $arr[0];
}
$url = parse_url($arr[0]);
// images
if(preg_match('#\.(png|jpg|gif)$#', $url['path']))
{
return '<img src="'. $arr[0] . '" /><br /><br />';
}
最初にアップロードされた画像に対する処理は次のとおりです。
http://domain.com/server/php/files/filename.jpg
2 番目にアップロードされた画像に対する処理は次のとおりです。
http://domain.com/server/php /files/ファイル名http://(1).jpg
ファイルに名前を付ける方法の命名規則を制御するか、URL 内のスペースを読み取る方法を制御する必要があります。