मैं केवल https को अनुमति देना चाहता हूं:// मिश्रित सामग्री से बचने के लिए phpbb में दूरस्थ अवतार छवियों के रूप में उपयोग करने के लिए लिंक। ऐसा लगता है कि यह कोड यह जांचने के लिए प्रयोग किया जाता है कि दर्ज यूआरएल सही है (/phpbb/avatar/driver/remote.php में पाया जा सकता है):
if (!preg_match("#^(http|https|ftp)://(?:(.*?.)*?[a-z0-9-]+?.[a-z]{2,4}|(?:d{1,3}.){3,5}d{1,3}):?([0-9]*?).*?.(". implode("|", $this->allowed_extensions) . ")$#i", $url))
{
$error[] = "AVATAR_URL_INVALID";
return false;
}
मैं इस कोड से पहले एक if {} - शर्त जोड़ना चाहता हूंयदि उपयोगकर्ता ने एक गैर-सुरक्षित सर्वर से छवि का चयन किया है तो एक सूचनात्मक त्रुटि संदेश देने के लिए ब्लॉक करें। क्या कोई मुझे सही preg_match () स्ट्रिंग को परिभाषित करने में मदद कर सकता है?
उत्तर:
जवाब के लिए 0 № 1@Casimir द्वारा सुझाव के आधार पर, मैंने निम्नलिखित कोड का उपयोग किया और यह काम करता है:
$urlchk = parse_url($url);
$urlscheme = isset($urlchk["scheme"]) ? $urlchk["scheme"]."://" : "http://";
if ($urlscheme=="http://"){
// error message
}