PHP: Bir yol şartname kuralı var mı?

3 Cevap

Ben her yerde görmek Bir sorun büyük soru şu: "Ben bir yol önünde bir / koymak, ya da ben değil gerekir gerekir"

Sorry if this appears subjective, but for my framework it's an important question: Do you think that it's more logical to put a "/" in front of every path when specifying one, or do you think the "/" prefix should be avoided?

Yoksa ilk karakter "/" olup olmadığını kontrol edin ve değilse, otomatik olarak eklemek gerekir?

Bağlam: yolları almak Çerçeve fonksiyonları.

3 Cevap

Eğer her yolun önünde bir / koyarsanız, o zaman bu yolları mutlak vardır. Onsuz, onlar göredir. Ne peşinde emin, ama bu / başında bunun için var değildir.

Geçerli dizin /var/www/html/ ve sen foo/bar/ olarak yol vermek Örneğin, yol olur /var/www/html/foo/bar/.

Eğer /foo/bar/ olarak yol verirseniz, o zaman yol önüne hiçbir şey, sadece olmasıdır.

Yani eğik sadece dosyaları arıyoruz nerede bir konudur ve bir işleve bir argüman olarak yolları kullanarak yapıyorsanız, muhtemelen (framework dizinine) göreli olarak geçmek istiyorum.

En iyi kongre size yol göreli veya mutlak olmak niyetinde olsun ya da değildir. Genel olarak, bir lider '/' bir dosya sistemi, veya bir web sitesinin kök kök, mutlak yolunu belirtir.

Mysite.com / files / css / info.css at bulunan bir örnek CSS dosyası, atın

...
background-image:url('/bg.png'); /* absolute - use mysite.com/bg.png */
background-image:url('bg.png');  /* relative to info.css - use mysite.com/files/css/bg.png */
...

Eğer bir lider eğik çizgi ommitting da dahil, bir seçenek olduğunda kendi kodu, benzer bir kongre takip edebilirsiniz:

<?php

// $uri - the relative/absolute uri to link to, ie /posts or 'show/id'
// $text - the text link
function link_to($uri, $text) {

  if ($uri[0] == '/') {
    // assume absolute
    $href = $uri;
  } else {
    // assume relative to current uri; remove last segment and replace
    $uri_segments = get_uri_segments();
    array_pop($uri_segments);
    array_push($uri_segments, $uri);
    $href = implode('/', $uri_segments);
  }

  return "<a href=\"$href\">$text</a>";
}

//
// elsewhere, assuming current URL is 'myself.com/users'
//

// relative link to 'create'
link_to("create", "Show User"); // mysite.com/users/create

// absolute link to '/products'
link_to("/products", "Products"); // mysite.com/products

?>

Onu daha kolay dosyaları eklemek için yapar ve her zaman sahip olmak karışıklığı önler, çünkü ben ona sahip olmak ister. Örneğin:

http://example.com/ + file.php IS http://example.com/file.php = path
http://example.com + file.php IS http://example.comfile.php = error