2017-12-01 2 views
1

PHP의 copy() 함수에 문제가 있습니다.PHP - URL (중괄호/괄호)에서 copy()가 실패합니다.

내 로컬 드라이브에 https://example.co.uk/{8d988e90-a325-4a1c-a340-a489166286b8}/{14409287-2c29-4b51-91e4-0891b5619659}/main/imgnew-(2).jpg과 같은 원격 URL을 복사해야합니다. 여기

$ RemoteURL 변수에 대한 몇 가지 상황과 함께, 실패 내 코드의 일부입니다

그것을 무엇
Warning: copy(https://example.co.uk/%7B8d988e90-a325-4a1c-a340-a489166286b8%7B/%7B14409287-2c29-4b51-91e4-0891b5619659%7B/main/imgnew-%282%29.jpg): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found 

그러나

$replace = array('%7B', '%7D','%28','%29'); 
$entities = array('{', '}','(',')'); 
$RemoteURL = str_replace($entities, $replace, "https://example.co.uk/{8d988e90-a325-4a1c-a340-a489166286b8}/{14409287-2c29-4b51-91e4-0891b5619659}/main/imgnew-(2).jpg"); 

$PicName = "new.jpg" 

if(copy($RemoteURL,"C:\Users\Me\Downloads\Pictures\" . $PicName)){ 
    echo "<script>console.log(\"(" . $RemoteURL . ") copied to waiting.\")</script>"; 
} else { 
    echo "<p class='float red'>READ ERROR</p>"; 
} 

,이 오류가 발생합니다 정확하게 여기에 누락되었거나 PHP가 URL 자체에 대해 좋아하지 않는 것은 무엇입니까?

+0

내 브라우저가 인코딩 {와},하지만() :

è는 특정 부분을 대체하는 기능을 만들어 고정 오류를주고 있었다 인코딩 –

+0

@ MaximKrizhanovsky 그냥()을 제거하지 않은 채 제안을 주셔서 감사합니다 – Cawley

답변

0

이 당신을 도울 것입니다 url_encode();

희망을 사용해보십시오.

감사합니다,

+0

이것이 작동하지 않을까합니다 - 모든 심볼을 교환하고 모든 복사본에 실패했습니다. 제안 해 주셔서 감사합니다. – Cawley

1

내가 문제였다 악센트 문자를 한 것이 었습니다 위의 오류가 발생 된 문제를 밝혀졌습니다. 당신이이 부분을 제거하려고 할 수 있도록

function URLEncodeRules($string) { 
    $replacements = array('%C3%A9','%C3%A8'); 
    $entities = array('é','è'); 
    return str_replace($entities, $replacements, $string); 
} 

$RemoteURL = URLEncodeRules($CaptureRow['URL']); 

if(copy($RemoteURL,"image.jpg")){ 
    echo "Success!; 
}