Ben şu url varsa:
http://URL/products/38/293/bannana_cake/
veya
htp://URL/products/38/293/fruit_cake/
Nasıl ayırabilirsiniz sadece bannana_cake
ve fruit_cake
Yukarıdaki örneklerden?
Muhtemelen sadece özel bir durum için geçerlidir ve üretim için bir şey değil kolay yolu, kullanmak için basename-function:
<?php
echo basename("http://url/products/38/293/banana_cake/"); // Produces "banana_cake"
?>
"Banana_cake" url son parçasıdır ve son bölü arkasında hiçbir şey yoktur, çünkü bu sadece çalışır.
Bu kesinlikle bir arzu çözüm değildir ve sorgu dizesi sırayla ufak bir değişiklik şeyleri kıracak çünkü Luca MATTEIS 'cevabı, benim oyumu alacak.
Eğik çizgilere url bölünmüş ve son bölümünü almak:
$parts = explode('/', $url);
echo $parts[sizeof($parts) - 2];
Tek sorun, size url bölü olması gerekir. Böyle olduğu için bir kontrol yapabilir:
$parts = explode('/', $url);
echo ($parts[sizeof($parts) - 1])
? $parts[sizeof($parts) - 1]
: $parts[sizeof($parts) - 2];
Benim cevabım biraz daha uzun olacaktır. Bunu burada ben bunları yapar var (xs_Breakdown denir) bir sınıftan iki fonksiyonları bir pasajı var, URI Templates kullanarak benzer bir şey yapmak istiyorum gibi görünüyor. Kolayca (Ben yapmak için çok az muzdarip değilim gelecekte bir süre için yapılacaklar listesi üzerinde) joker karakterleri ve koşullu davranışı içerecek şekilde genişletilebilir. Kurulumu ve kullanımı ayarlama ilk ve örnek;
$br = new xs_Breakdown ( '{first}/{second}/{third}/{fourth}/{fifth}/{andsoon}' ) ;
// Pick out the template variable called 'third'
$third = $br->third ;
Kodu (kendi bazı toz kadar tekme yeterli olacaktır sadece temelleri;. Sizinle bütün mesele isterseniz tüm kod buraya göndermek için çok uzun olurdu bana bir mesaj Pop iç içe üç özellik / Java Bean- sınıflar gibi);
// Static variable to hold our tokens
$_tokens = null ;
// Input path (set in constructor)
$_path = null ;
// Results here
$values = array() ;
function parse ( $schema = '' ) {
// Sanitize input data : Regular Expression
$regexp = '/[^a-z0-9 +\-\/!$*_=|.:]/i' ;
// Break our path into little bits
$break = explode ( '/', $this->_path ) ;
// Find the tokens used from our schema template
$this->_tokens = $this->getSubStrs ( "{","}", $schema ) ;
// Loop through the path elements
foreach ( $break as $key => $value ) {
// Sanitize the value of the element
$value = urldecode ( trim ( preg_replace ( $regexp, '', $value ) ) ) ;
// Element not blank? (Meaning, real text)
if ( $value != '' )
// Index it!
@$this->values[$this->_tokens[$key]] = $value ;
}
}
function getSubStrs ( $from, $to, $str, &$result = array () ) {
if ( strpos ( $str, $from ) !== false ) {
$start = strpos ( $str, $from ) + 1 ;
$end = strpos ( $str, $to ) - 1 ;
$item = substr ( $str, $start, $end - $start + 1 ) ;
$rest = substr ( $str, $end + 2 ) ;
$result[] = $item ;
$this->getSubStrs ( $from, $to, $rest, $result ) ;
}
return $result ;
}