উত্তর:
মূল সমস্যাটি হ'ল ব্রাউজারটি এমনকি খণ্ড খণ্ডের সাথে একটি অনুরোধ প্রেরণ করবে না। খণ্ড অংশটি ঠিক ঠিক সেখানে ব্রাউজারে সমাধান করা হয়েছে। সুতরাং এটি জাভাস্ক্রিপ্ট মাধ্যমে অ্যাক্সেসযোগ্য।
যাইহোক, আপনি parse_url () ব্যবহার করে টুকরা অংশ সহ বিটগুলিতে একটি URL টি বিশ্লেষণ করতে পারেন , তবে এটি অবশ্যই আপনার ক্ষেত্রে নয়।
সরল পরীক্ষা, অ্যাক্সেস করা http: // লোকালহোস্ট: 8000 / হ্যালো? Foo = বার # এটি-সার্ভারে প্রেরণযোগ্য নয়
python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"
Serving HTTP on 0.0.0.0 port 8000 ...
localhost - - [02/Jun/2009 12:48:47] code 404, message File not found
localhost - - [02/Jun/2009 12:48:47] "GET /hello?foo=bar HTTP/1.1" 404 -
সার্ভারটি # অ্যাপেন্ডেজ ছাড়াই অনুরোধটি গ্রহণ করে - হ্যাশ ট্যাগের পরে যে কোনও কিছুই কেবল ক্লায়েন্টের অ্যাঙ্কর লকআপ।
উদাহরণস্বরূপ জাভাস্ক্রিপ্টের মাধ্যমে ইউআরএল-এর মধ্যে ব্যবহৃত অ্যাঙ্কর নামটি খুঁজে পেতে পারেন:
<script>alert(window.location.hash);</script>
পিএইচপি-তে পার্স_আর্ল () ফাংশনটি যদি আপনার ইতিমধ্যে টুকরা ( http://codepad.org/BDqjtXix ) সহ প্রয়োজনীয় ইউআরএল স্ট্রিং থাকে তবে কাজ করতে পারে :
<?
echo parse_url("http://foo?bar#fizzbuzz",PHP_URL_FRAGMENT);
?>
Output: fizzbuzz
তবে আমি মনে করি না যে পিএইচপি খণ্ডের তথ্য গ্রহণ করে কারণ এটি কেবল ক্লায়েন্ট।
এটি জাভাস্ক্রিপ্ট থেকে পুনরুদ্ধারযোগ্য - হিসাবে window.location.hash
। সেখান থেকে আপনি এজ্যাক্স সহ এটি সার্ভারে উদাহরণস্বরূপ প্রেরণ করতে পারেন, বা এটি এনকোড করে ইউআরএলগুলিতে রাখতে পারেন যা পরে সার্ভারের পাশ দিয়ে যেতে পারে।
হ্যাশটি কখনই সার্ভারে প্রেরণ করা হয় না, তাই না।
হ্যাঁ এটি সত্য, সার্ভারটি অ্যাঙ্কর অংশটি পায় না। তবে কুকিগুলি ব্যবহার করে এক ধরণের কাজ রয়েছে। আপনি এটি এখানে খুঁজে পেতে পারেন: http://www.stoimen.com/blog/2009/04/15/read-the-anchor-part-of-the-url-with-php/
উত্তর না হয়।
হ্যাশটির মূল উদ্দেশ্য হল পৃষ্ঠার একটি নির্দিষ্ট অংশে স্ক্রোল করা যেখানে আপনি একটি বুকমার্ক সংজ্ঞায়িত করেছেন। যেমন পৃষ্ঠা লোড হওয়ার পরে এই অংশে স্ক্রোল করুন।
ব্রাউজটি এমনভাবে স্ক্রোল করবে যে লাইনের নীচে কতগুলি বিষয়বস্তু অনুসরণ করে তার উপর নির্ভর করে এই লাইনটি পৃষ্ঠায় প্রথম দৃশ্যমান সামগ্রী।
হ্যাঁ জাভাস্ক্রিপ্ট এটিকে অ্যাক্সেস করতে পারে এবং তারপরে একটি সাধারণ এজ্যাক্স কলটি যাদু করবে
কি সম্পর্কে:
গতিশীলভাবে # হ্যাশ ধরুন
<script>
var urlhash = window.location.hash, //get the hash from url
txthash = urlhash.replace("#", ""); //remove the #
//alert(txthash);
</script>
<?php
$hash = "<script>document.writeln(txthash);</script>";
echo $hash;
?>
এটিকে আরও সাবলীল করতে:
শুধু জাভাস্ক্রিপ্ট এবং পিএইচপি ব্যবহার করে সম্পূর্ণ উদাহরণ
<script>
var urlhash = window.location.hash, //get the hash from url
txthash = urlhash.replace("#", ""); //remove the #
function changehash(a,b){
window.location.hash = b; //add hash to url
//alert(b); //alert to test
location.reload(); //reload page to show the current hash
}
</script>
<?php $hash = "<script>document.writeln(txthash);</script>";?>
<a onclick="changehash(this,'#hash1')" style="text-decoration: underline;cursor: pointer;" >Change to #hash1</a><br/>
<a onclick="changehash(this,'#hash2')" style="text-decoration: underline;cursor: pointer;">Change to #hash2</a><br/>
<?php echo "This is the current hash: " . $hash; ?>
আমি মনে করি হ্যাশ-মানটি কেবল ক্লায়েন্ট-সাইড হিসাবে ব্যবহৃত হয়, সুতরাং আপনি এটি পিএইচপি দিয়ে পেতে পারবেন না।
আপনি এটি পিএইচপি যদিও জাভাস্ক্রিপ্ট সঙ্গে পুনর্নির্দেশ করতে পারে।
<?php
$url=parse_url("http://domain.com/site/gallery/1?user=12#photo45 ");
echo $url["fragment"]; //This variable contains the fragment
?>
এটি কাজ করা উচিত
একটি এর ম অংশ কোনো URI পর #
/ ক্লায়েন্ট সাইড প্রক্রিয়া (দেখুন "টুকরা" বলা হয় এবং শুধুমাত্র উপলব্ধ সংজ্ঞা দ্বারা হয় https://en.wikipedia.org/wiki/Fragment_identifier )।
ক্লায়েন্ট দিকে, জাভা স্ক্রিপ্ট এর সাহায্যে এটি ব্যবহার করা যেতে পারে window.location.hash
।
হ্যা, তুমি পারো:
ত্রুটি রোধ করতে এই পদ্ধতিটি ব্যবহার করুন:
<script>
query=location.hash;
document.cookie= 'anchor'+query;
</script>
এবং অবশ্যই পিএইচপি-তে, সেই কুকুরছানাটিকে বিস্ফোরণ করুন এবং মানগুলির মধ্যে একটি পান
$split = explode('/', $_COOKIE['anchor']);
print_r($split[1]); //to test it, use print_r. this line will print the value after the anchortag
আরেকটি সমাধান হ'ল পিএইচপি পৃষ্ঠায় একটি লুকানো ইনপুট ক্ষেত্র যুক্ত করা:
<input type="hidden" id="myHiddenLocationHash" name="myHiddenLocationHash" value="">
জাভাস্ক্রিপ্ট / jQuery ব্যবহার করে আপনি পৃষ্ঠা লোড বা একটি ইভেন্টের প্রতিক্রিয়া এই ক্ষেত্রের মান সেট করতে পারেন:
$('#myHiddenLocationHash').val(document.location.hash.replace('#',''));
সার্ভারে পিএইচপি-তে আপনি এই মানটি $ _POST সংগ্রহ ব্যবহার করে পড়তে পারেন:
$server_location_hash = $_POST['myHiddenLocationHash'];
আমরা এটি অন্য পদ্ধতির সাথেও করতে পারি, সবার আগে যেমন জেএস থেকে হ্যাশ মান পান এবং সেই পরামিতিটি ব্যবহার করে এজ্যাক্স কল করুন এবং আমরা যা চাই তা করতে পারি
www.example.com/?val=1#part2
আপনাকে এটির মতো সার্ভারে এটি পুনর্নির্দেশ করতে হবে:www.example.com/?redirectUrl=%2F%3Fval%3D1%23part2
এবং অবশ্যই আপনাকে অন্য পৃষ্ঠায় থাকা অন্য ইউআরএলে আপনাকে পুনঃনির্দেশ করার জন্য সমর্থন যোগ করতে হবে। দুর্দান্ত কিছু নয়, এবং অবশ্যই ব্যবহারের সমস্ত ক্ষেত্রে এটি কাজ করে না, তবে বুকমার্কগুলির জন্য কাজ করে। নোট করুন যে আপনি যদি এটি করেন তবে আপনি নিজেকে অনিরাপদ পুনর্নির্দেশের