diff --git a/jstest.php b/jstest.php index 70f5551..104eaa2 100644 --- a/jstest.php +++ b/jstest.php @@ -1,89 +1,57 @@ (.*?)<\/div>\s*<\/div>/s', $html, $match); + libxml_use_internal_errors(true); + $dom = new DOMDocument('1.0', 'UTF-8'); + $dom->loadHTML('' . $content); + $xpath = new DOMXPath($dom); - // if (!isset($match[0])) return $html; + $panels = $xpath->query( + "//*[contains(@class,'wp-block-ub-tabbed-content-tab-content-wrap')]" + ); - $book_block = $match[0]; + if ($panels->length === 0) { + return $content; + } - $cover = extract_attr($book_block, '/]*src="([^"]+)"/'); - $title = extract_text($book_block, '/
\s*

(.*?)<\/h1>/'); - $author = extract_text($book_block, '/

(.*?)<\/p>/'); - $publisher = extract_text($book_block, '/

(.*?)<\/p>/'); - $imprint = extract_text($book_block, '/

(.*?)<\/p>/'); - $series = extract_text($book_block, '/

(.*?)<\/p>/'); - $isbn13 = extract_text($book_block, '/

(.*?)<\/p>/'); - $price = extract_text($book_block, '/

(.*?)<\/p>/'); - $format = extract_text($book_block, '/

(.*?)<\/p>/'); - $pubdate = extract_text($book_block, '/

(.*?)<\/p>/'); - $pages = extract_text($book_block, '/

(.*?)<\/p>/'); - $summary = extract_html($book_block, '/

(.*?)<\/div>/s'); - $description= extract_html($book_block, '/
(.*?)<\/div>/s'); - $reviews = extract_html($book_block, '/
(.*?)<\/div>/s'); + if ($panels->item(0)) { + replace_panel_html($dom, $panels->item(0), '

TEST AUTHOR CONTENT

'); + } + if ($panels->item(1)) { + replace_panel_html($dom, $panels->item(1), '

TEST SUMMARY CONTENT

'); + } - + if ($panels->item(2)) { + replace_panel_html($dom, $panels->item(2), '

TEST REVIEWS CONTENT

'); + } - - - - return str_replace($book_block, $new_block, $html); -} - -function extract_text($html, $pattern) { - preg_match($pattern, $html, $m); - return $m[1] ?? ''; -} - -function extract_attr($html, $pattern) { - preg_match($pattern, $html, $m); - return $m[1] ?? ''; -} - -function extract_html($html, $pattern) { - preg_match($pattern, $html, $m); - return $m[1] ?? ''; + return $dom->saveHTML(); } -?> - - -