webentwicklung-frage-antwort-db.com.de

was ist der Unterschied zwischen site_url () und base_url ()?

Wie ich in einigen Ressourcen gelesen habe, sind die Funktionen von base_url() und site_url() in codeigniter fast gleich, obwohl meine Version von codeigniter (2.1.3) in der Datei config.php (im Verzeichnis config) kein site_url () enthält.

Gibt es Unterschiede zwischen ihnen, seit ich site_url () mit Parametern gesehen habe und Base_url () nie gesehen habe?

38
echo base_url(); // http://example.com/website
echo site_url(); // http://example.com/website/index.php

wenn Sie eine URL auf eine Ressource zugreifen möchten (z. B. css, js, image), verwenden Sie base_url(). Andernfalls ist site_url() besser.

für eine detaillierte Referenz Überprüfen Sie diese Funktion in CodeIgniter.

public function site_url($uri = '')
    {
        if (empty($uri))
        {
            return $this->slash_item('base_url').$this->item('index_page');
        }
        $uri = $this->_uri_string($uri);
        if ($this->item('enable_query_strings') === FALSE)
        {
            $suffix = isset($this->config['url_suffix']) ? $this->config['url_suffix'] : '';
            if ($suffix !== '')
            {
                if (($offset = strpos($uri, '?')) !== FALSE)
                {
                    $uri = substr($uri, 0, $offset).$suffix.substr($uri, $offset);
                }
                else
                {
                    $uri .= $suffix;
                }
            }
            return $this->slash_item('base_url').$this->slash_item('index_page').$uri;
        }
        elseif (strpos($uri, '?') === FALSE)
        {
            $uri = '?'.$uri;
        }
        return $this->slash_item('base_url').$this->item('index_page').$uri;
    }

Basis-URL-Funktion.

public function base_url($uri = '')
        {
            return $this->slash_item('base_url').ltrim($this->_uri_string($uri), '/');
        }
66
Fasil kk

site_url: Gibt base_url + index_page + uri_string zurück

base_url: Gibt base_url + uri_string zurück

Den Quellcode beider Funktionen finden Sie unter: https://github.com/EllisLab/CodeIgniter/blob/606fee0e2e0aa6a906db82e77090e91f133d7378/system/core/Config.php

15
sikander

1. site_url

Der Zweck von site_url ist, dass Ihre Seiten portabler werden, wenn sich Ihre URL ändert. Der site_url wird zusammen mit der index.php-Datei angezeigt.

Segmente können optional als String oder Array an die Funktion übergeben werden.

echo site_url("news/local/123");

es wird geben: http://ci.com/index.php/news/local/123

sie können sogar Segmente als Array übergeben:

$segments = array('news', 'local', '123');
echo site_url($segments);

2. base_url

base_url ist, ohne dass index_page oder url_suffix angehängt ist .____. Wie site_url können Sie Segmente als String oder Array angeben.

Wenn Sie möchten, dass eine URL auf eine Ressource zugreifen kann, verwenden Sie base_url. Sie können einer Datei eine Zeichenfolge angeben, z. B. ein Bild oder ein Stylesheet. Andernfalls reicht site_url aus.

echo base_url("/images/icons/image.png");
11

Sie können auch die Datei .htaccess im CodeIgniter-Stammordner neben der index.php-Datei erstellen.

fügen Sie einfach diesen Code in die .htaccess-Datei ein:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

durch diesen Code bleibt das Wort index.php unsichtbar.

http://localhost/CodeIgniter/index.php/controllersName/

wird daran geändert

http://localhost/CodeIgniter/controllersName/
1
Ulett

site_url () ist index.php ausführen, weshalb site_url besser ist als ein Vergleich mit base_url.

1
zohaib malik

Ich möchte hinzufügen, wann base_url () und site_url () verwendet werden sollen. Grundsätzlich kann site_url () beim Erstellen von Links für Controller verwendet werden, wohingegen base_url () dort verwendet werden kann, wo URLs für die Assets erstellt werden müssen, z.

Ich bevorzuge immer Site_url () zum Erstellen von Links zu Controllern oder Ajax-URLs und Base_url () zum Laden von Assets.

0
Tom Freek

base_url(), das üblicherweise in Codeigniter verwendet wird, kann auch ohne die Erweiterung .php verwendet werden.

site_url(), das üblicherweise in der benutzerdefinierten Wordpress-Vorlage verwendet wird, kann auch verwendet werden, wenn Sie einfach den post_title des Blogs oder den Dateinamen mit der Erweiterung aufrufen.

0
Archangel08