Table of Contents

Add a search in another domain

If you have a website on one domain and the ahcrawler instance runs on another one then the next snippet might be interesting for you. Here is a very simple example for a PHP website that requests an url on the ahCrawler instance to show the form and results. It uses the function file_get_contents for lowest requirements.

See the file integration/searchform.php on your AhCrawler instance - maybe you want to make a copy of it and restyle the form.

Very simple means: There are no protections yet against unwanted requests to the search form and no error handling.

Set $sCrawlerUrl to reference the php file with the search form on the AhCrawler instance.

Set values in the array $aDefaults.

<!doctype html>
<html>
	<head>
		<title>Search example using integration/searchform.php</title>
		<style>
			body{font-family: verdana,arial;}
		</style>
	</head>
	<body>
		<h1>Search example using integration/searchform.php</h1>
		<?php

		// ----------------------------------------------------------------------
		// CONFIG
		// ----------------------------------------------------------------------
		
		// url to fetch
		$sCrawlerUrl="https://tools.example.com/ahcrawler/integration/searchform.php";
		
		// forced defaults by your own website
		// those cannot be overrided by $_GET params
		$aDefaults=[
			'siteid'=>1,      // set the project id in ahcrawler instance
			'guilang'=>'en',  // uses texts from lang/frontend.[your-language-code].json
		];


		// ----------------------------------------------------------------------
		// prepare URL
		// ----------------------------------------------------------------------
		$sParams='';
		foreach(array_merge($_GET, $aDefaults) as $sVar=>$sVal){
			$sParams.=($sParams ? '&' : '?')
				. $sVar.'='.urlencode($sVal);
		}
		$sCrawlerUrl.=$sParams;


		// ----------------------------------------------------------------------
		// prepare request header
		// ----------------------------------------------------------------------
		$options  = ['http' => [
			'user_agent' => isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '-',
			]];
		$context  = stream_context_create($options);


		// ----------------------------------------------------------------------
		// output
		// ----------------------------------------------------------------------
		echo '<div style="border: 1px dotted; padding: 1em;">'
				. file_get_contents($sCrawlerUrl, false, $context)
			.'</div>'
		;

		?>

	</body>
</html>