سعید شعبانی 2047 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 دوستان عزیز سلام بعد از مدت های زیادی برای من سعادت بزرگی هست که در جمع دوستان وردپرس پارسی هستم. راستش نیاز به یک کد دارم تا بتونه در یک string که داخل یک متغییر php ذخیره شده جستجو کنه و یک تگ با یک class خاص را پیدا و کل اون تگ با محتویات داخلش را برگردونه. مثل نمونه زیر : متغییر string با این مقدار هست: $string = '<div class="page><span>hello</span> <div class="one">one</div><div class="two">two</div><div class="ok">ok</div></div>'; حالا یه تابع باشه مثل تابع زیر کلاس تگ html را بهش بدیم و اون تگ و محتویاتش را برگردونه: $result = get_html_content('.two'); و در نهایت خورجی بشه: <div class="two">two</div> پیشاپیش از همه دوستانی که همکاری می کنند تشکر می کنم لینک به ارسال
mehran-b 2385 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 سلام و درود تابع get_html_content به شکل زیر میشه: function get_html_content($str, $selector) { $mode = substr($selector, 0, 1); switch($mode) { case "#": $id = ltrim($selector, "#"); $xpath_selector = "//*[@id='$id']"; break; case ".": $class = ltrim($selector, "."); $xpath_selector = "//*[@class='$class']"; break; default: $xpath_selector = "//$selector"; } $dom = new DOMDocument(); @$dom->loadHTML(mb_convert_encoding($str, 'HTML-ENTITIES', 'UTF-8')); $xpath = new DOMXpath($dom); $xpq = $xpath->query($xpath_selector); if($xpq->length === 0) return "هیچ موردی یافت نشد"; return trim(preg_replace('/^<!DOCTYPE.+?>/', '', str_replace(array('<html>', '</html>', '<body>', '</body>'), array('', '', '', ''), $dom->saveHTML($xpq->item(0))))); } و مثلا بخواید کل div هایی که کلاسشون two هست رو براتون نمایش بده این شکلی میشه: $str = '<div class="page"><span>hello</span><div class="one">one</div><div class="two">two</div><div class="ok">ok</div></div>'; $result = get_html_content($str, ".two"); البته سلکت بر اساس آیدی و نام تگ هم ساپورت میکنه. موفق باشید 2 لینک به ارسال
mehran-b 2385 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 در 7 دقیقه قبل، سعید شعبانی گفته است : خیلی ممنونم خواهش میکنم. موفق باشید لینک به ارسال
پست های پیشنهاد شده
لطفا برای ارسال دیدگاه وارد شوید
شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید
ورود به حساب کاربری