Supported Versions: PHP 4, PHP 5, PHP 7, PHP 8
Parse a URL and return its components
<?php parse_url(string $url, int $component = -1): int|string|array|null|false
<?php         }




        $scheme = parse_url($url, PHP_URL_SCHEME);

        $hostname = parse_url($url, PHP_URL_HOST);

        if (in_array($scheme, array('http', 'git', 'ftp', 'svn'))) {

            if ($this->get('secure-http')) {
<?php         $scheme = parse_url($url, PHP_URL_SCHEME);

        $hostname = parse_url($url, PHP_URL_HOST);

        if (in_array($scheme, array('http', 'git', 'ftp', 'svn'))) {

            if ($this->get('secure-http')) {

                if ($scheme === 'svn') {
<?php                 throw new TransportException("Your configuration does not allow connections to $url. See https://getcomposer.org/doc/06-config.md#secure-http for details.");

            }

            if ($io) {

                $host = parse_url($url, PHP_URL_HOST);

                if (!isset($this->warnedHosts[$host])) {

                    $io->writeError("<warning>Warning: Accessing $host over $scheme which is an insecure protocol.</warning>");

                }
<?php         $this->filesystem->emptyDirectory($path);

        $this->filesystem->ensureDirectoryExists($path);

        $this->filesystem->rename($this->getFileName($package, $path), $path . '/' . pathinfo(parse_url($package->getDistUrl(), PHP_URL_PATH), PATHINFO_BASENAME));



        if ($package->getBinaries()) {
<?php     protected function getFileName(PackageInterface $package, $path)

    {

        return rtrim($this->config->get('vendor-dir').'/composer/tmp-'.md5($package.spl_object_hash($package)).'.'.pathinfo(parse_url($package->getDistUrl(), PHP_URL_PATH), PATHINFO_EXTENSION), '.');

    }
<?php {

    protected function extract(PackageInterface $package, $file, $path)

    {

        $filename = pathinfo(parse_url($package->getDistUrl(), PHP_URL_PATH), PATHINFO_FILENAME);

        $targetFilepath = $path . DIRECTORY_SEPARATOR . $filename;
<?php             return true;

        }



        $bits = parse_url($value);

        if (empty($bits['scheme']) || empty($bits['host'])) {

            return false;

        }
<?php             $repoConfig['url'] = (extension_loaded('openssl') ? 'https' : 'http') . substr($repoConfig['url'], 6);

        }



        $urlBits = parse_url($repoConfig['url']);

        if ($urlBits === false || empty($urlBits['scheme'])) {

            throw new \UnexpectedValueException('Invalid url given for Composer repository: '.$repoConfig['url']);

        }
<?php     private function getPackagesJsonUrl()

    {

        $jsonUrlParts = parse_url($this->url);



        if (isset($jsonUrlParts['path']) && false !== strpos($jsonUrlParts['path'], '.json')) {

            return $this->url;
<?php             }



            if (!$gitLabUtil->authorizeOAuth($origin)

                && (!$this->io->isInteractive() || !$gitLabUtil->authorizeOAuthInteractively(parse_url($url, PHP_URL_SCHEME), $origin, $message))

            ) {

                throw new TransportException('Could not authenticate against '.$origin, 401);

            }
<?php     public function isPublicBitBucketDownload($urlToBitBucketFile)

    {

        $domain = parse_url($urlToBitBucketFile, PHP_URL_HOST);

        if (strpos($domain, 'bitbucket.org') === false) {
<?php             return true;

        }



        $path = parse_url($urlToBitBucketFile, PHP_URL_PATH);
<?php     private function handleRedirect(array $job, Response $response)

    {

        if ($locationHeader = $response->getHeader('location')) {

            if (parse_url($locationHeader, PHP_URL_SCHEME)) {


                $targetUrl = $locationHeader;

            } elseif (parse_url($locationHeader, PHP_URL_HOST)) {
<?php             if (parse_url($locationHeader, PHP_URL_SCHEME)) {


                $targetUrl = $locationHeader;

            } elseif (parse_url($locationHeader, PHP_URL_HOST)) {


                $targetUrl = parse_url($job['url'], PHP_URL_SCHEME).':'.$locationHeader;

            } elseif ('/' === $locationHeader[0]) {
<?php                 $targetUrl = $locationHeader;

            } elseif (parse_url($locationHeader, PHP_URL_HOST)) {


                $targetUrl = parse_url($job['url'], PHP_URL_SCHEME).':'.$locationHeader;

            } elseif ('/' === $locationHeader[0]) {


                $urlHost = parse_url($job['url'], PHP_URL_HOST);