Folks,
Can you figure-out why the following script fails to find the banned words on the page when the banned words are listed in an array ?
<?php /* ERROR HANDLING */ //declare(strict_types=1); ini_set('display_errors', '1'); ini_set('display_startup_errors', '1'); error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // 1). $curl is going to be data type curl resource. $curl = curl_init(); // 2). Set cURL options. curl_setopt($curl, CURLOPT_URL, 'https://www.buzzfeed.com/mjs538/the-68-words-you-cant-say-on-tv?utm_term=.xlN0R1Go89#.pbdl8dYm3X'); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true ); // 3). Run cURL (execute http request). $result = curl_exec($curl); $response = curl_getinfo( $curl ); if( $response['http_code'] == '200' ) { //Set banned words. $banned_words = array("Prick","Dick","Fag"); //Separate each words found on the cURL fetched page. $word = explode(" ", $result); //var_dump($word); for($i = 0; $i <= count($word); $i++){ foreach ($banned_words as $ban) { if (stripos($word[$i],$ban) !== FALSE){ echo "word: $word[$i]<br />"; echo "Match: $ban<br>"; }else{ echo "word: $word[$i]<br />"; echo "No Match: $ban<br>"; } } } } // 4). Close cURL resource. curl_close($curl);
Remember the banned words exist on the page. And No. It is not because the banned words are not text but imgs as I checked the source code of the page and the banned words do exist as text. Check it out yourself, if you have any doubts.
I hope it is not because this was set to false:
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
Setting it to "true", how-ever, shows a complete blank page. Why ? Must it not be set to "true" since the page is "httpS" anyway!