উত্তর:
খুব সহজ:
$id = substr($url, strrpos($url, '/') + 1);
স্ট্র্যাপপস স্ল্যাশের শেষ ঘটনাটির অবস্থান পায়; সাবস্ট্রিট সেই অবস্থানের পরে সবকিছু ফিরিয়ে দেয়।
যেমন রেডানিমালওয়ার উল্লেখ করেছেন যদি কোনও স্ল্যাশ না থাকে তবে এটি সঠিকভাবে কাজ করে না যেহেতু strrposমিথ্যা প্রত্যাবর্তন করে। এখানে আরও শক্তিশালী সংস্করণ:
$pos = strrpos($url, '/');
$id = $pos === false ? $url : substr($url, $pos + 1);
$str = basename($url)আরও উপায়ে পাওয়া যাচ্ছে না, আমার জন্য পুরোপুরি সূক্ষ্ম কাজ করে।
$str = basename($url);
আপনি "/" এর উপর ভিত্তি করে বিস্ফোরণ করতে পারেন এবং শেষ এন্ট্রিটি ফিরে আসতে পারেন:
print end( explode( "/", "http://www.vimeo.com/1234567" ) );
এটি স্ট্রিংকে পৃথক করে ফুটিয়ে তোলার উপর ভিত্তি করে তৈরি করা হয়েছে, যদি আপনি স্ট্রিংয়ের প্যাটার্নটি নিজেই জানেন যে খুব শীঘ্রই পরিবর্তন হবে না necessary আপনি বিকল্প হিসাবে স্ট্রিংয়ের শেষে সেই মানটি সনাক্ত করতে একটি নিয়মিত অভিব্যক্তি ব্যবহার করতে পারেন:
$url = "http://www.vimeo.com/1234567";
if ( preg_match( "/\d+$/", $url, $matches ) ) {
print $matches[0];
}
explodeআমার কাছে সবসময়ই বেশি ওভারহেডের মতো মনে হয়, যদিও আমি এটির তত দ্রুত তা দেখতে কখনই সময় নিই নি।
আপনি ব্যবহার করতে পারেন substrএবং strrchr:
$url = 'http://www.vimeo.com/1234567';
$str = substr(strrchr($url, '/'), 1);
echo $str; // Output: 1234567
$str = "http://www.vimeo.com/1234567";
$s = explode("/",$str);
print end($s);
দু'টি লাইনার - আমার সন্দেহ হয় প্রথমটি দ্রুততর তবে দ্বিতীয়টি সুন্দর এবং বিপরীত end()এবং array_pop()আপনি কোনও ফাংশনের ফলাফলটি সরাসরি current()কোনও নোটিশ বা সতর্কতা না দিয়েই পাস করতে পারেন কারণ এটি পয়েন্টারটি সরিয়ে দেয় না বা অ্যারে পরিবর্তন করে না।
$var = 'http://www.vimeo.com/1234567';
// VERSION 1 - one liner simmilar to DisgruntledGoat's answer above
echo substr($a,(strrpos($var,'/') !== false ? strrpos($var,'/') + 1 : 0));
// VERSION 2 - explode, reverse the array, get the first index.
echo current(array_reverse(explode('/',$var)));
end()পিএইচপি 5.4+ এবং এইভাবে ব্যবহার করা একটি নোটিশ ফেলে দেবে। ডক্স অনুসারে: " আপনাকে অবশ্যই এটি একটি আসল পরিবর্তনশীলটি পাস করতে হবে এবং কোনও অ্যারে ফেরত দেওয়ার কোনও ফাংশন নয় কারণ কেবল প্রকৃত ভেরিয়েবলগুলি রেফারেন্স দ্বারা পাস করা যেতে পারে। "
Url বা পাথের শেষ অংশটি সরাতে আমি এখানে একটি সুন্দর গতিশীল ফাংশন লিখেছি।
/**
* remove the last directories
*
* @param $path the path
* @param $level number of directories to remove
*
* @return string
*/
private function removeLastDir($path, $level)
{
if(is_int($level) && $level > 0){
$path = preg_replace('#\/[^/]*$#', '', $path);
return $this->removeLastDir($path, (int) $level - 1);
}
return $path;
}
s($str)->afterLast('/')যেমন পাওয়া যায় আপনি তেমন সহায়ক হতে পারেন ।