PDA

View Full Version : حرفه ای: گرفتن لینک های موجود در یک رشته



ghiravani
جمعه 07 مرداد 1390, 12:02 عصر
سلام دوستان خسته نباشید.من 2 ساعت هست که اکثر سایت های خارجی رو زیرو رو کردم اما جواب سوالم رو پیدا نکردم

مشکل اینه:
مثلا ما یه متغیر به اسم "" داریم که داخل این متغیر ، سورس کد html یه صفحه هست.مثلا داریم:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl" lang="fa-IR">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="generator" content="T" /> <!-- leave this for stats -->
<link rel="stylesheet" href="http://www.your-site.com/style.css" type="text/css" media="screen" />
<style type="text/css">
.wp-polls .pollbar {
margin: 1px;
font-size: 6px;
line-height: 8px;
height: 8px;
background-image: url('http://www.your-site.com/images/default/pollbg.gif');
border: 1px solid #c8c8c8;
}
</style>
<script type="text/javascript">
jQuery(document).ready(function($){
if (navigator.platform == "iPad") return;
jQuery("img").lazyload({
effect:"fadeIn",
placeholder: "http://www.your-site.com/images/grey.gif"
});
});
</script>
<script type="text/javascript" src="http://www.your-site.com/js-script/styleswitcher.js"></script>
</head>
<body>
span class="black-theme"><a href="#" onclick="setActiveStyleSheet('style'); return false;"><img src="www.your-site.comimages/black.jpg" title="Default Black" alt="Black"/></a></span>
<a href="www.your-site.com/?feed=rss2" class="rss"><span></span></a>
<a href="http://www.your-site.com/?page_id=29" title="123">123</a>
</body>
</html>

مثلا کد بالا در متغیر str هست.چجوری میشه با کمک PHP ، فقط لینک های موجود در این رشته رو در خروجی چاپ کرد؟
مثلا نتیجه کار این باشه:


http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
http://www.w3.org/1999/xhtml
http://gmpg.org/xfn/11
http://www.your-site.com/style.css
http://www.your-site.com/images/default/pollbg.gif
http://www.your-site.com/images/grey.gif
http://www.your-site.com/js-script/styleswitcher.js
www.your-site.comimages/black.jpg
www.your-site.com/?feed=rss2
http://www.your-site.com/?page_id=29

ممنون

mr.zenith
جمعه 07 مرداد 1390, 13:15 عصر
سلام
کاری که می خواهید به این راحتی نیست.
مثلا می توانید بگید هرکجا کارکتر http:// را دید خارج کنه تا آخر مثلا هر کجا .jpg دید.
ولی در کل کاره سختی هست.

ghiravani
جمعه 07 مرداد 1390, 19:52 عصر
دوستان کمکی از دستتون ساخته نیست؟

eshpilen
جمعه 07 مرداد 1390, 20:17 عصر
باید از RE (رگولار اکسپرشن) استفاده کنی دیگه.
دقیقا چه آدرسهایی با چه پروتکل هایی و با چه فرمتهایی رو میخوای بگیری؟
پروتکل های مختلفی هست: HTTP - HTTPS - FTP و ...
ضمنا آدرسهایی مثل www.your-site.com/?feed=rss2 (http://www.your-site.com/?feed=rss2) که پروتکل رو مشخص نکردن در href لینک ها درست کار نمیکنن. درحالیکه در مثال شما چنین آدرسهایی وجود دارن.
میخواید آدرسها رو فقط از تگهای HTML مثل تگ A و تگ Script بگیرید یا آدرسهایی رو هم که در متن نوشته های صفحه اومدن بگیرید؟
میخواید آدرسها از هر نوعی گرفته بشن؟ مثلا آدرس تصاویر رو هم میخواید؟ آدرس فایلهای CSS رو هم میخواید؟ ...
میخواید آدرسهای مربوط به همون سایت هم گرفته بشن یا فقط آدرسهایی که در سایت های دیگری قرار دارن گرفته بشن؟
میخواید فقط آدرسهای کامل گرفته بشن (یعنی نام دامین داشته باشن) یا آدرسهای بدون دامین مثل /scripts/main.js هم گرفته بشن؟ (طبیعتا هدف آدرسهای بدون دامین در همون سایت/دامین صفحهء مورد بررسی قرار داره).
...

ghiravani
جمعه 07 مرداد 1390, 23:42 عصر
سلام.ممنون بخاطر پاسختون

میخواید آدرسها رو فقط از تگهای HTML مثل تگ A و تگ Script بگیرید یا آدرسهایی رو هم که در متن نوشته های صفحه اومدن بگیرید؟
راستش تمام آدرس های موجود در صفحه رو نیاز دارم.حتی آدرس هایی که به این صورت هستن:
مثلا در صفحه "http://mysite.com/forum/forum.php?show" این کد در این صفحه قرار داره:


<div class='sites'><a href='../../index.php'>صفحه اصلي</a></div>

که باید آدرس موجود در کد بالا بصورت خودکار تبدیل بشه به
http://mysite.com/index.php
اما اگر آدرس صفحه ای که این کد در اون قرار داره به آدرس لینک بالا پیوند بزنیم نتیجه میشه:
http://mysite.com/forum/forum.php?show/../../index.php

اما آدرس بالا ، صفحه اصلی سایت یعنی http://mysite.com/index.php رو نشون نمیده و باز همون صفحه http://mysite.com/forum/forum.php?show نمایش داده میشه.

دوستان فکری به ذهنشون نمیرسه؟

ممنون

ghiravani
شنبه 08 مرداد 1390, 00:11 صبح
سلام.ممنون بخاطر پاسختون

راستش تمام آدرس های موجود در صفحه رو نیاز دارم.حتی آدرس هایی که به این صورت هستن:
مثلا در صفحه "http://mysite.com/forum/forum.php?show" این کد در این صفحه قرار داره:


<div class='sites'><a href='../../index.php'>صفحه اصلي</a></div>

که باید آدرس موجود در کد بالا بصورت خودکار تبدیل بشه به
http://mysite.com/index.php
اما اگر آدرس صفحه ای که این کد در اون قرار داره به آدرس لینک بالا پیوند بزنیم نتیجه میشه:
http://mysite.com/forum/forum.php?show/../../index.php

اما آدرس بالا ، صفحه اصلی سایت یعنی http://mysite.com/index.php رو نشون نمیده و باز همون صفحه http://mysite.com/forum/forum.php?show نمایش داده میشه.

دوستان فکری به ذهنشون نمیرسه؟

ممنون


دوستان ممنون مشکلات رو حل کردم.درست شد.مممممممممممممممممممممم منون :)