web-dev-qa-db-fra.com

quelle est la différence entre site_url () et base_url ()?

Comme j'ai lu dans certaines ressources, les fonctions base_url() et site_url() dans codeigniter sont presque identiques, bien que ma version de codeigniter (2.1.3) ne contienne pas site_url () dans son fichier config.php (dans le répertoire config).

Pourtant, y a-t-il des différences entre eux de quelque manière que ce soit depuis que j'ai vu site_url () avec des paramètres et que je n'ai jamais vu base_url () n'en contenir aucun?

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

si vous voulez un accès URL à une ressource (telle que css, js, image), utilisez base_url(), sinon, site_url() est préférable.

pour une référence détaillée Cochez cette fonction dans 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;
    }

Fonction URL de base.

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

site_url: retourne base_url + index_page + uri_string

base_url: retourne base_url + uri_string

Voir le code source des deux fonctions sur: https://github.com/EllisLab/CodeIgniter/blob/606fee0e2e0aa6a906db82e77090e91f133d7378/system/core/Config.php

15
sikander

1. site_url

Le but de site_url est que vos pages deviennent plus portables au cas où votre URL changerait. Le site_url apparaît avec le fichier index.php.

Les segments peuvent éventuellement être transmis à la fonction sous forme de chaîne ou de tableau.

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

cela donnera: http://ci.com/index.php/news/local/123

vous pouvez même passer des segments sous forme de tableau:

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

2. base_url

base_url est sans que index_page ou url_suffix ne soit ajouté . comme site_url, vous pouvez fournir des segments sous forme de chaîne ou de tableau.

Si vous souhaitez que l'URL accède à une ressource, utilisez base_url, vous pouvez fournir une chaîne de caractères à un fichier, telle qu'une image ou une feuille de style. site_url suffit.

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

Vous pouvez également créer le fichier .htaccess dans le dossier racine CodeIgniter en regard de son fichier index.php.

ajoutez simplement ce code sur le fichier .htaccess:

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

ce code fera que Word index.php reste invisible.

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

sera changé pour cela

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

site_url () est execute index.php c'est pourquoi site_url est préférable à base_url.

1
zohaib malik

Je voudrais ajouter quand utiliser base_url () et le site_url (). Fondamentalement, on peut utiliser site_url () lors de la création de liens pour les contrôleurs, tandis que base_url () peut être utilisé lorsque nous devons créer des URL pour les actifs, comme le chargement d’un fichier css ou js ou d’une image.

Ce que je préfère toujours, c’est d’utiliser site_url () pour créer des liens vers des contrôleurs ou des URL ajax et base_url () pour charger des actifs.

0
Tom Freek

base_url() qui est couramment utilisé dans Codeigniter peut être utilisé même sans l'extension .php.

site_url() qui est couramment utilisé dans le modèle personnalisé Wordpress peut être utilisé même lorsque vous appelez simplement le post_title du blog ou le nom du fichier avec l'extension.

0
Archangel08