2013-07-16 2 views
0

MySQL 데이터베이스에서 이미지의 파일 경로를 추출하여 URL로 변환하려고합니다. 그러나 str_replace를 통해 전달하면 변경 사항이 적용되지 않습니다. 사전 설정된 경로로 테스트 문서를 설정했는데 문제없이 작동합니다. 데이터베이스에서 경로를 추출str_replace가 데이터베이스에서 추출한 URL을 대체하지 않습니다.

내 코드 출력 어느

function get_web_path($file_system_path) { 
    return str_replace(var_dump($_SERVER['DOCUMENT_ROOT']), '', var_dump($file_system_path)); 
} 

My test code is: 

<?php 
    echo "DOCUMENT_ROOT: {$_SERVER['DOCUMENT_ROOT']}"; 
    $image_sample_path = "C:/wamp/www/website/images/image123.jpg"; 
    $web_image_path = str_replace($_SERVER['DOCUMENT_ROOT'], '', $image_sample_path); 

    echo "<br /><br />CONVERTED PATH: {$web_image_path}"; 
?> 

을 편집 해

$user_image = get_web_path($row['user_pic_path']); 

입니다 :

/website/images/image123.jpg" 
,536,

그러나 데이터베이스에서 값을 추출 할 때 'user_pic_path'필드에서 C :/wamp/www를 바꿀 수 없습니다.

위해서 var_dump ('DOCUMENT_ROOT')는

string 'C:/wamp/www' (length=11) 

위해서 var_dump ($의 file_system_path가))

string 'C:/wamp/www/website/images/image123.jpg' (length=39) 
+0

당신이 무엇을 $ _SERVER 몇 이미지 경로 등을 제공 할 수 있습니다 [ 'DOCUMENT_ROOT'는] 응답 @anubhava 준 우리가 도움이 더 많은 통찰력이 작동하지 않을 경우 그렇다 :

하기로 치환하는 시도 문제를 해결할 수 있습니다. –

+0

당신은/var_dump $ user_image 변수를 echo하고 얻을 것을 볼 수 있습니까? 데이터베이스 쿼리 자체에서 올바른 값을 얻지 못하고 있습니까? 함수는 잘 작동하는 것 같다. – Maximus2012

+0

왜 데이터베이스에 절대 경로를 먼저 저장합니까? 데이터베이스에 저장된 경로가 나와 일치하지 않는 것처럼 보이므로 해당 값을 확인하십시오. 그럼에도 불구하고 자산의 상대 경로로 전환해야합니다 ... – nietonfir

답변

1

가 왜 $_SERVER['DOCUMENT_ROOT'] 주위에 중괄호가 있나요 제공 제공?

str_replace($_SERVER['DOCUMENT_ROOT'], '', $file_system_path); 
+0

중괄호 없이도 여전히 작동하지 않습니다. 테스트 코드를 설정 값으로 게시하여 그 방식으로 작동하는지 보여줍니다. – MorganJ

+1

못생긴 것처럼 보이지만 OP가 수행하는 데 아무런 문제가 없습니다. – Orangepill

+0

Orangepill에 동의합니다. 나는 내 시스템에서 그 기능을 시험해 보았고, 그대로 작동하고있다. 은'get_web_path' 내부 ';'와 '위해서 var_dump ($의 file_system_path) – Maximus2012

관련 문제