PDA

View Full Version : سوال: تبدیل آدرس نسبی به مطلق



m_feyz
شنبه 28 دی 1387, 08:54 صبح
سوال در مورد تبدیل آدرس نسبی به مطلق
با سلام.
می خوام یه برنامه بنویسم که آدرس یه صفحه رو بگیره و تو لینک های اون صفحه جستجو کنه برای همین نیاز هست که برنامه ای بنویسم که آدرس لینک هایی که به طور نسبی آدرس دهی شده را به آدرس مطلق تبدیل کنه مثلا آدرس صفحه اینه:

http://www.site.com/dir1/dir2

و یه لینک به شکل زیر وجود داره:

dir3/file.jpg

حالا دو احتمال برای آدرس مطلق آن وجود داره:
1- آدرس نسبی نسبت به آخرین دایرکتوری آدرس صفحه باشه یعنی آدرس مطلقش میشه:

http://www.site.com/dir1/dir2/dir3/file.jpg

2- آدرس نسبی نسبت به صفحه اصلی سایت باشه یعنی آدرس مطلقش میشه:

http://www.site.com/dir3/file.jpg
و ما نمی دونیم کدومش میشه.
به نظر شما برنامه رو چطور بنویسم تا آدرس نسبی رو به طور صحیح به آدرس مطلق تبدیل کنه؟
با تشکر از همه.

kashaneh
شنبه 28 دی 1387, 10:55 صبح
دوست عزیز به نظر مم راه حل مشکل شما با این الگوریتم حل بشه :

1 - آدرس صفحه جاری رو از URL یا AddressBar بگیر
2 - به دنبال لینک ها بگرد و به ازای هر لینکی که پیدا کردی

2 - 1 : اگر در آدرس لینک مقدار www یا http:// وجود داشت این یک لینک مطلق هست
2 - 2 : اگر در آدرس لینک مقدار /.. پیدا نشد، این آدرس لینک را به انتهای URL در مرحله 1 بچسبان
2 - 3 : اگر در آدرس لینک مقدار /.. پیدا شد، به ازای هر مقدار یافت شده از انتهای URL تا رسیدن به مقدار / حذف کن و در نهایت مقدار آدرس لینک را به انتهای URL در مرحله 1 بچسبان

موفق باشی

m_feyz
شنبه 28 دی 1387, 14:08 عصر
2 - 2 : اگر در آدرس لینک مقدار /.. پیدا نشد، این آدرس لینک را به انتهای URL در مرحله 1 بچسبان

با سلام
اما همیشه این طور نیست مثلا تو سایت زیر رفتم:
http://news.yahoo.com/i/721
سورس کدشو باز کردن یه لینک داشت به این آدرس:
"/s/ap/20090115/ap_on_re_as/as_pakistan_india;_ylt=At9_rT6me0b5qSA4lqTPoqRvaA8 F"
طبق گفته شما باید آدرس مطلق بشه:
http://news.yahoo.com/i/721/s/ap/20090115/ap_on_re_as/as_pakistan_india;_ylt=At9_rT6me0b5qSA4lqTPoqRvaA8 F
ولی در واقع آدرس اصلی این بود:
http://news.yahoo.com/s/ap/20090115/ap_on_re_as/as_pakistan_india;_ylt=At9_rT6me0b5qSA4lqTPoqRvaA8 F

mehrang
شنبه 28 دی 1387, 22:13 عصر
سلام
توی این مثالی که زدید بنظرم بخاطر "/" اول آدرس نسبی باشه که از پوشه اصلی آدرس حساب شد.
راستی تگbase هم مهمه.پس همیشه صفحه فعال،صفحه ای نیست که آدرس های نسبی از آن حساب میشن.

m_feyz
سه شنبه 01 بهمن 1387, 22:10 عصر
از لطف همتون ممنونم. جوابمو گرفتم.:لبخندساده: