У меня есть URL-адрес, который содержит различные POST-DATA в нем и файл изображения. Мой пример ссылки: http://img.ruphp.com/function/page=gf_signature&signature=565dbca63791e5.87676354.png
Я хочу отделить 565dbca63791e5.87676354.png
от url и отделить расширение (.png) от него.
Я пробовал это:
<?php $images = array(); $imagesNew = array(); $imgUrls = array( 'ptSignature' => 'http://img.ruphp.com/function/page=gf_signature&signature=5668695879dc84.35037895.png', 'pSignature' => 'http://img.ruphp.com/function/page=gf_signature&signature=5668694f80aa55.79055562.png', 'witness1Signature' => 'http://img.ruphp.com/function/page=gf_signature&signature=5668695875c6e5.03917128', 'witness2Signature' => 'http://img.ruphp.com/function/page=gf_signature&signature=5668695879dc84.35037895.png', ) function make_without_ext($str) { $regex = "/signature=(?<signature>[^&]+)/"; preg_match($regex, $str, $matches); $signature = $matches["signature"]; $ext = substr(strrchr($signature, '.'), 1); $without_extension = basename($signature, '.png'); return $without_extension; } foreach ($imgUrls as $imgUrl) { $imgWithoutExt = make_without_ext($imgUrl); array_push($images, $imgWithoutExt); } foreach ($images as $image) { $content = file_get_contents($image); $data = base64_encode($content); array_push($imagesNew, $data) } print '<pre>'; print_r ($imagesNew); print '<pre>';
Но он показывает syntax error, unexpected 'function' (T_FUNCTION)
У вас есть точка с запятой после:
$imgUrls = array( 'ptSignature' => 'http://img.ruphp.com/function/page=gf_signature&signature=5668695879dc84.35037895', 'pSignature' => 'http://img.ruphp.com/function/page=gf_signature&signature=5668694f80aa55.79055562', 'witness1Signature' => 'http://img.ruphp.com/function/page=gf_signature&signature=5668695875c6e5.03917128', 'witness2Signature' => 'http://img.ruphp.com/function/page=gf_signature&signature=5668695879dc84.35037895', )
Постановка точки с запятой устраняет проблему.