PDA

View Full Version : جستجوی یک عبارت در فایل



pary_daryayi
سه شنبه 16 خرداد 1396, 22:35 عصر
سلام.
من سورس کد یک صفحه html رو خوندم و در یک فایل txt ریختم .
حالا میخوام تو این سورس کد عبارتی مثل این رو پیدا کنم :


<a href="http://www.imdb.com/title/tt0050083/" title="اطلاعات بیشتر">


اونچه که از محتوای لینک برام مهمه سریال 9 رقمی بعد از title هست که با tt شروع میشه .
هر دفعه این سریال بنا به درخواست های متفاوت فرق میکنه .
این سریال رو با چه دستوری جستجو و استخراج کنم ؟

680100
چهارشنبه 17 خرداد 1396, 10:03 صبح
با این مثال که نوشتم کار کن به نتیجه میرسی
مقادیری که استخراج شده رو باید تحلیل کنی تا مقدار مورد نظر رو استخراج کنی






$sResource = '<html>
<head></head>
<body>
string string string string
string string string string
<a href="http://www.imdb.com/title/tt0050083/" title"asdas">link 1</a>
<a href="http://www.imdb.com/title/tt0333083/" title"asdas">link 2</a>
string string string string string string
<a href="http://www.imdb.com/title/tt0052283/" title"asdas">link 3</a>
<a href="http://www.imdb.com/title/tt0050083/" title"asdas">link 4</a>
string string string string
<a href="http://www.imdb.com/title/tt0050363/" title"asdas">link 5</a>
<a href="http://www.imdb.com/title/tt0025083/" title"asdas">link 6</a>
</body>
</html>';

preg_match_all("/<a (.*?)>(.*?)<\/a>/si", $sResource, $Result);

echo '<pre>';
print_r($Result[1]);
echo '</pre>';

pary_daryayi
چهارشنبه 17 خرداد 1396, 10:30 صبح
خیلی ممنونم . کد شما تمام لینک های یک صفحه رو میده . حتی لینک هایی که داخلش imdb نداره.
اینو نوشتم :


preg_match_all("(http:\/\/www.imdb.com.*?)", $sourcecode, $Result); echo '<pre>';print_r($Result);echo '</pre>';

ولی خروجیش اینه :


Array
(
[0] => Array
(
[0] => http://www.imdb.com
[1] => http://www.imdb.com
[2] => http://www.imdb.com
)

)

680100
چهارشنبه 17 خرداد 1396, 10:38 صبح
با این حتی مستقیم شناسه imdb رو از لینک میکشه بیرون





$sResource = '<html>
<head></head>
<body>
string string string string
string string string string
<a href="http://www.imdb.com/title/tt0050083/" title"asdas">link 1</a>
<a href="http://www.imdb.com/title/tt0333083/" title"asdas">link 2</a>
string string string string string string
<a href="http://www.imdb.com/title/tt0052283/" title"asdas">link 3</a>
<a href="http://www.imdb.com/title/tt0050083/" title"asdas">link 4</a>
string string string string
<a href="http://www.imdb.com/title/tt0050363/" title"asdas">link 5</a>
<a href="http://www.imdb.com/title/tt0025083/" title"asdas">link 6</a>
</body>
</html>';

preg_match_all("/<a href=\"http:\/\/www.imdb.com\/title\/(.*?)\/\" (.*?)>(.*?)<\/a>/si", $sResource, $Result);

echo '<pre>';
print_r($Result[1]);
echo '</pre>';