pzh
جمعه 24 تیر 1384, 12:47 عصر
سلام.
من به یه جستجو گر سایت نیاز دارم که یک خط ( row ) در table HTML رو که شامل کلمه مورد جستجو هست ، پیدا کنه !
صفحه ASP هست ، ولی table به صورت HTML هست و اونو از دیتابیس نمیگیره .
البته کد لازم برای جستجوی معمولی رو دارم . ولی میخوام علاوه بر URL مقصد ، اون یک (یا چند ) row خاص رو هم نشون بده . ممنونم از کمکتون
javad_hosseiny
شنبه 01 مرداد 1384, 01:05 صبح
بسته به زبان برنامه نویسی اتان شما باید با استفاده از توابع سطح پایین فایل موردنظر را باز کنید و سپس شروع به خواندن محتویات فایل بصورت خط به خط و یا بصورت حجمی کرده و عبارت موردنظر را در هر کدام از آنها بخوانید (هرچند معمولا بعد از خواندن محتویات توسط توابع پیش فرض و یا طراحی شده توسط کاربر اطلاعات مربوط به تگهای Html حذف و فقط متون موردنظر جهت جستجو باقی گذاشته می شوند) معمولا از این روش جهت جستجو بر روی متون html که در بانک ذخیره نشده اند استفاده می شود
جهت راهنمایی بیشتر تابع مربوطه به زبان php را من در اینجا قرار می دهم با تشخیص الگوریتم به راحتی می توانید به زبان مورد استفاده خود آن را تغییر دهید.
function se_kol ($nof, $wordsearch, $pos_answer) {
$javabs = 0;
$found = false;
$wordsearch = ' ' . $wordsearch . ' ';
$wordsearch = eregi_replace('ی ', 'ى ', $wordsearch);
$wordsearch = trim($wordsearch);
$namefile = $nof;
$fl1 = fopen($namefile,'r');
if ($fl1 > 0) {
$tetrn = $nof;
$tetrok = true;
while (!feof($fl1)) {
$buffer = fgets($fl1,1024);
$buffer = eregi_replace('ی ','ى ', $buffer);
if ($tetrok) {
$m0 = eregi('title', $buffer) ;
if ($m0 != 0 ) {
$tetrok = false;
$tetrn = $buffer;
$tetrn = eregi_replace('title','' ,$tetrn);
$tetrn = chrt('<>/',' ',$tetrn);
}
}
$buffer = preg_replace ("'<[\/\!]*?[^<>]*?>'si", "", $buffer);
$buffer = preg_replace ("'[\/\!]*?[^<>]*?>'si", "", $buffer);
$m = eregi($wordsearch, $buffer) ;
if ($m != 0 ) {
$foundkol = true;
if (!$found) {
echo '<table align="center" border="0" width="95%" dir="rtl"><tr align="right"><td bgcolor="#66cc99" valign="top"> ';
echo ' <font size=+1 color =blue>' . $pos_answer . ' - ' . $tetrn . ' </font> <br></td></tr>' ;
}
$found = true;
if (strlen($buffer) > 150) {
$po = strpos($buffer, $word_search);
$tool = strlen($buffer);
$pos_word_left = strlen(strstr($buffer,$wordsearch));
$pos_word_right = $tool - $pos_word_left;
$pos = $pos_word_right;
if ($pos > 50) { $back = 50;}
else {$back = $pos; }
$start_iz = $pos - $back;
$end_iz = $start_iz + 110;
$buf = substr($buffer,$start_iz,110);
$buffer = ' ... ' . $buf . ' ... ';
}
$javabs++;
$wordreplace = '<font color=red>' . $wordsearch . ' </font>';
$buffer = eregi_replace($wordsearch,$wordreplace ,$buffer);
echo "<tr align='right'><td> <a href='$nof' > " . $javabs . " - $buffer </a><br></td></tr>" ;
}
}
fclose($fl1);
if ($found) {
echo '</td></tr></table>';
}
}
return $javabs;
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.