انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: rahmani در 15 امرداد 1392، 03:14 بظ
-
سلام
ان شا... همه بندگی هاتون پسند حضرت حق باشد...
یک سایت با نشانی هست http://isbndb.com (http://isbndb.com) که وقتی isbn یک کتاب را در آن جستجو می کنیم ویژگی های کلی آن کتاب را در صورتی که در پایگاه داده اش موجود باشد بر می گرداند.
اکنون ما شمار زیادی isbn داریم که می خواهیم برخی ویژگی های کلی آن ها را از این سایت با برنامه نویسی php به دست بیاوریم.
بنابراین من یک دستور php لازم دارم که یک isbn مانند 1-56924-607-6 را در یک field خاص سایت http://isbndb.com (http://isbndb.com) جستجو و نشانی صفحه یا محتوی آن را بازگرداند.
پیشاپیش از لطف شما متشکرم...
-
محتویات این صفحه (query) رو واکشی کنید:
http://isbndb.com/search/all?query=querystring
که در عبارت بالا querystring همون چیزی هست که دنبالش هستید. مثلا این:
http://isbndb.com/search/all?query=0201327554
یا این:
http://isbndb.com/search/all?query=how+to+program+in+python
-
محتویات این صفحه (query) رو واکشی کنید:
http://isbndb.com/search/all?query=querystring
که در عبارت بالا querystring همون چیزی هست که دنبالش هستید. مثلا این:
http://isbndb.com/search/all?query=0201327554
یا این:
http://isbndb.com/search/all?query=how+to+program+in+python
سلام
عذر می خواهم
یعنی اگر بنویسیم $path = 'http://isbndb.com/search/all?query=0201327554';
$html = file_get_html($path);
آنگاه html$ شامل محتویات یا نشانی صفحه ای میشود که اگر کاربری در سایت مقدار را وارد می کرد نشانی یا محتویات آن صفحه همین html$ بود. برداشت من درست است؟
خیلی خیلی ممنونم
-
file_get_html برای من جواب نداد. اگه میخواید فقط محتویات صفحه رو داشته باشید (بدون نیاز به parse کردنش) از این کد استفاده کنید:
<?php
$path = "http://isbndb.com/search/all?query=0201327554";
$content = file_get_contents($path);
echo $content;
?>
و اگه میخواید محتویات صفحه رو پردازش کنید باید صفحه رو در قالب DOMDocument ببرید. مثلا کد زیر آدرس همه لینکهای صفحه مقصد رو بهمون میده:
<?php
$path = "http://isbndb.com/search/all?query=0201327554";
$content = file_get_contents($path);
$doc = new DOMDocument();
$doc->loadHTML($content);
$links = $doc->getElementsByTagName('a');
foreach($links as $link)
echo $link->getAttribute('href')."<br/>";
-
سلام با عرض تسلیت و آرزوی قبولی
بنده چند ماه پیش در مورد جستجوی شناسه کتاب در سایت isbndb سوالی پرسیدم که جناب Vandu پاسخ مفیدی ارائه دادند و بنده هم استفاده کردم. اکنون من پرسش مشابهی در مورد جستجوی شناسه مقاله دارم. اگر در سایت http://www.crossref.org/guestquery#xmlsearch (http://www.crossref.org/guestquery#xmlsearch) یا http://www.crossref.org/guestquery/ (http://www.crossref.org/guestquery/)شناسه مقاله را در کادر DOI وارد کنید می توانید ویژگی های همان مقاله را در کادر پایین صفحه ببینید. در مورد قبلی جناب Vandu فرمودند که شناسه مورد نظرمان را با این روش جشتجو http://isbndb.com/search/all?query=querystring
کنیم اما به گمانم در مورد سایت crossref این روش کاربرد ندارد
مثال : با روش های زیر ویزگی های مقاله نشان داده نمی شود اما اگر مقدار 10.2308/ajpt-10290 یا 10.2308/aud.2010.29.1.267 را در کادر doi وارد کنید ویژگی های مقاله نشان داده می شود
<?php $URL = "http://www.crossref.org/guestquery#xmlsearch?query=10.2308/aud.2010.29.1.267";
$URL = "http://www.crossref.org/guestquery#xmlsearch/search/all?query=10.2308/ajpt-10290";
$URL = "http://www.crossref.org/guestquery/search/all/query=10.2308/aud.2010.29.1.267";
?>
گفتنی است شناسه های مقاله که ما می خواهیم جستجو کنیم یک رشته است که / نیز در آن وجود دارد
بفرمایید برای جستجوی شناسه مقاله در سایت چه باید کرد؟ یا چه آرگومانی به تابع file_get_html بدهیم؟
در ضمن code of html form که شناسه را در آن جستجو می کنیم به صورت زیر است:
<table width="90%" border="0"><tr><td width="20"> </td><td >
<script language="JavaScript">
blackrule();
</script>
<b><i id="doisearch">A DOI query</i></b>
<form enctype="application/x-www-form-urlencoded" method="POST" name="form5" onSubmit="return validate_form5();">
<input type="hidden" name="queryType" value="doi">
<table>
<tr><td colspan="2">Select result format -- xml-xsd:<input type='radio' name='restype' value='xsl_xml' checked> OR unixref:<input type='radio' name='restype' value='unixref' ></td></tr>
<tr><td>DOI: </td><td><textarea style='font-size:14px;' name='doi' rows='1' cols='80'></textarea></td></tr>
<tr><td colspan=8 align=center><input style='font-weight:normal;font-size:10px;' type='submit' name='doi_search' value='Search'></tr>
</table>
</form>
</td></tr>
</table>
-
سلام
جایگزینی character / با %2F
<?php $path = "http://www.crossref.org/guestquery?queryType=doi&restype=unixref&doi=10.1002%2Fanie.200905978&doi_search=Search"; ?>