John Davidson

php - Need help extracting meta title from an URL using curl and DOM

0 comments
Message:


I need to extract the dollar amount e.g. $594 from the meta title of an URL. I am getting full meta title however i just need the $594 from it not the whole title. Here is my code. Thanks


<?php 

// Web page URL
$url = 'https://www.cheapflights.com.au/flights-to-Delhi/Sydney/';

// Extract HTML using curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

$data = curl_exec($ch);
curl_close($ch);

// Load HTML to DOM object
$dom = new DOMDocument();
@$dom->loadHTML($data);

// Parse DOM to get Title data
$nodes = $dom->getElementsByTagName('title');
$title = $nodes->item(0)->nodeValue;

// Parse DOM to get meta data
$metas = $dom->getElementsByTagName('meta');

$description = $keywords = '';
for($i=0; $i<$metas->length; $i++){
$meta = $metas->item($i);

if($meta->getAttribute('name') == 'description'){
$description = $meta->getAttribute('content');
}

if($meta->getAttribute('name') == 'keywords'){
$keywords = $meta->getAttribute('content');
}
}

echo "$title". '<br/>';
?>


My Answer:
To extract the dollar amount from the meta title, you can use regular expressions to search for the pattern "$XXX" in the title. Here's an updated version of your code that extracts the dollar amount from the meta title:

php

// Web page URL
$url = 'https://www.cheapflights.com.au/flights-to-Delhi/Sydney/';

// Extract HTML using curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

$data = curl_exec($ch);
curl_close($ch);

// Load HTML to DOM object
$dom = new DOMDocument();
@$dom->loadHTML($data);

// Parse DOM to get Title data
$nodes = $dom->getElementsByTagName('title');
$title = $nodes->item(0)->nodeValue;

// Parse DOM to get meta data
$metas = $dom->getElementsByTagName('meta');

$description = $keywords = '';
for($i=0; $i<$metas->length; $i++){
$meta = $metas->item($i);

if($meta->getAttribute('name') == 'description'){
$description = $meta->getAttribute('content');
}

if($meta->getAttribute('name') == 'keywords'){
$keywords = $meta->getAttribute('content');
}
}

// Extract dollar amount from title using regular expression
preg_match('/\$(\d+)/', $title, $matches);
$dollarAmount = isset($matches[1]) ? '$' . $matches[1] : '';

echo "$dollarAmount" . '
';

?>


This code uses the `preg_match` function to search for the pattern "$XXX" in the title and extract the dollar amount. The extracted dollar amount is then stored in the variable `$dollarAmount` and echoed out.

Rate this post

3 of 5 based on 5557 votes

Comments




© 2024 Hayatsk.info - Personal Blogs Platform. All Rights Reserved.
Create blog  |  Privacy Policy  |  Terms & Conditions  |  Contact Us