PDA

View Full Version : پیدا کردن تگ جدول از رشته



mostafa272
یک شنبه 29 اردیبهشت 1392, 19:38 عصر
با سلام

آقا من می خوام از محتوای یک سایت جدول ها رو خارج کنم و اول با تابع get_file_contents محتوا رو می گیرم ولی وقتی می خوام جدولها رو استخراج کنم جواب نمیده.به نظرم مشکل از regex است. لطفا یه regex مناسب برای پیدا کردن جدولها بنویسید. مثلا چیزی شبیه این:


$regex="#<table (.*?)>(.*?)</table>#s"

که تگ جدول رو با تمام خاصیتهایی که ممکنه داشته باشه پیدا کنه.

با تشکر

mahmod2000
یک شنبه 29 اردیبهشت 1392, 21:08 عصر
http://barnamenevis.org/showthread.php?397990-%DA%A9%D9%85%DA%A9-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%A7%D8%B2-%D8%B3%D8%A7%DB%8C%D8%AA-%D9%87%D8%A7%DB%8C-%D8%AF%DB%8C%DA%AF%D8%B1

sh.n.n786
دوشنبه 30 اردیبهشت 1392, 00:27 صبح
درود و ...
من پیشنهاد میکنم از DOM استفاده کنید ساختار ساده تری داره میتونید صفحرو به چند قسمت تقسیم کنید یعنی خورده خورده بخونید تا به مشکل بر نخورید :
اگه محتوا پخشه از تابع preg_match_all استفاده کنید آهان داشت یادم میرفت خوب این هم داکیومنت های DOM
http://simplehtmldom.sourceforge.net/manual.htm
موفق باشی

ravand
دوشنبه 30 اردیبهشت 1392, 09:33 صبح
<?php
$chap='ravandi<table><tr><td>متن اول</td></tr></table>mohammad <table><tr><td>متن دوم</td></tr></table> kashan <table><tr><td>متن سوم</td></tr></table>php<table><tr><td>متن چهارم</td></tr></table>pachenar.ir';
$regexp = "<table>*([^\" >]*?)\\1[^>]*>(.*)<\/table>";
if(preg_match_all("/$regexp/siU", $chap, $matches, PREG_SET_ORDER)) {
foreach($matches as $match) {
$tag=$match[0];
echo htmlentities($tag, ENT_QUOTES, "UTF-8")."<hr>";
}
}
?>