\n\n"; //begin html table formatting if (($handle = fopen($csvfile, "r")) !== FALSE) { $oldcatname=""; while (($data = fgetcsv($handle, 1000, ",",'"','\\')) !== FALSE) { //PREVENT ALL MALICIOUS PHP PAYLOADS FROM BEING EXECUTED FROM CSV FILES! $data[0] = htmlspecialchars($data[0]); $data[1] = htmlspecialchars($data[1]); $data[2] = htmlspecialchars($data[2]); $data[3] = htmlspecialchars($data[3]); $data[4] = htmlspecialchars($data[4]); $data[5] = htmlspecialchars($data[5]); $data[6] = htmlspecialchars($data[6]); $data[7] = htmlspecialchars($data[7]); $data[0]=preg_replace("/[^a-zA-Z0-9:\/.\ -✔️❌]/", "", $data[0]); $data[1]=preg_replace("/[^a-zA-Z0-9:\/.\ -✔️❌]/", "", $data[1]); $data[2]=preg_replace("/[^a-zA-Z0-9:\/.\ -✔️❌]/", "", $data[2]); $data[3]=preg_replace("/[^a-zA-Z0-9:\/.\ -✔️❌]/", "", $data[3]); $data[4]=preg_replace("/[^a-zA-Z0-9:\/.\ -✔️❌]/", "", $data[4]); $data[5]=preg_replace("/[^a-zA-Z0-9:\/.\ -✔️❌]/", "", $data[5]); $data[6]=preg_replace("/[^a-zA-Z0-9:\/.\ -✔️❌]/", "", $data[6]); $data[7]=preg_replace("/[^a-zA-Z0-9:\/.\ -✔️❌]/", "", $data[7]); $row++; $num = count($data); //echo "

" . $data[1] . "

"; //echo "

$num fields in line $row:

\n"; //echo $row; if ( $row == "2") { echo ""; }else{ if (str_contains(strtolower($data[5]), strtolower($query)) or str_contains(strtolower($data[3]), strtolower($query)) or str_contains(strtolower($data[2]), strtolower($query)) or str_contains(strtolower($data[1]), strtolower($query))) { $resultcount++; for ($c=0; $c < $num; $c++) { // iterate over each row if ($data[7] == 0.0){ continue; }else{ echo ""; // begin html table row for that Category // if the row is the first one (name url status score) only display (Name Status Score): // display the contents of a csv row if ( $c == "1" ){ //add http if its not already done in the URL if (!preg_match("~^(?:f|ht)tps?://~i", $data[3])) { $urllink = "http://" . $data[3]; }else{ $urllink = $data[3]; } //if ((($sensitive == 1) and ($data[4] == "✔️")) or (($sensitive == 0) and ($data[4] != "✔️")) ){ // ONLY display links if (sensitive equals to 1 and sensitiveCOLUMN equals to V) OR (sensitive equals to 0 and sensitiveCOLUMN is NOT equal to V) if (($data[4] != "YES") or (($sensitive == 1) and ($data[4] == "YES"))){ $rowcount++; if (strtolower($oldcatname) != strtolower($data[1])){ //echo ""; // skip a row if new category //echo ""; // skip a row if new category echo ''; // display the category as its the first row with this new category $oldcatname=$data[1]; }else{ echo "'; // category is already displayed so skip it (empty cell in category column) } echo ' \n"; // display the status and close the third cell } //if ($c == 2){ //} } } } } echo ""; // end html table row }} echo "\n
Category Name Description Score

' . $data[1] . '

" . '

' ; // begin the table cell of link title if(str_contains(strtolower($data[1]),'monero' )){ echo ' '; // display the link echo htmlspecialchars_decode($urllink ) . '"> '; // display the link echo $data[2] . '

'; // display the link title and close the a href and first cell, open the second cell echo $data[5] . " "; // OPTIONAL: display the description column echo $data[7] . " "; // display the score and close the second cell, open the third cell if($data[6] == "YES"){ echo "✔️" ; }else{ echo "❌" ; } echo "
"; fclose($handle); } echo "

" . $rowcount . " Result(s) found.

"; } function DisplayCategories($instancename, $path) { $resultcount=0; $row = 1; //echo $instancename; //$csvfilenames = "verified.csv unverified.csv"; $csvfilenames = "verified.csv"; $csvfilenames = explode(' ', $csvfilenames); foreach ($csvfilenames as $csvfilename){ //echo $csvfilename; $csvfile = $path . $csvfilename; //echo $csvfile; //echo "test"; echo "
\n\n"; //begin html table formatting if (($handle = fopen($csvfile, "r")) !== FALSE) { $oldcatname=""; while (($data = fgetcsv($handle, 1000, ",",'"','\\')) !== FALSE) { $num = count($data); $row++; if ( $row == "2") { echo "

| "; }else{ //PREVENT ALL MALICIOUS PHP PAYLOADS FROM BEING EXECUTED FROM CSV FILES! $data[0] = htmlspecialchars($data[0]); $data[1] = htmlspecialchars($data[1]); $data[2] = htmlspecialchars($data[2]); $data[3] = htmlspecialchars($data[3]); $data[4] = htmlspecialchars($data[4]); $data[5] = htmlspecialchars($data[5]); $data[6] = htmlspecialchars($data[6]); $data[7] = htmlspecialchars($data[7]); $data[0]=preg_replace("/[^a-zA-Z0-9:\/.\ -]/", "", $data[0]); $data[1]=preg_replace("/[^a-zA-Z0-9:\/.\ -]/", "", $data[1]); $data[2]=preg_replace("/[^a-zA-Z0-9:\/.\ -]/", "", $data[2]); $data[3]=preg_replace("/[^a-zA-Z0-9:\/.\ -]/", "", $data[3]); $data[4]=preg_replace("/[^a-zA-Z0-9:\/.\ -]/", "", $data[4]); $data[5]=preg_replace("/[^a-zA-Z0-9:\/.\ -]/", "", $data[5]); $data[6]=preg_replace("/[^a-zA-Z0-9:\/.\ -]/", "", $data[6]); $data[7]=preg_replace("/[^a-zA-Z0-9:\/.\ -]/", "", $data[7]); $resultcount++; for ($c=0; $c < $num; $c++) { // iterate over each row if ( $c == "1" ){ if (strtolower($oldcatname) != strtolower($data[1])){ if( str_contains(strtolower($data[1]),'monero' )){ echo '' . '' . $data[1] . ' | '; // display the category as its the first row with this new category $oldcatname=$data[1]; }elseif( str_contains(strtolower($data[1]),'simplex' )){ echo '' . '' . $data[1] . ' | '; // display the category as its the first row with this new category $oldcatname=$data[1]; }elseif (str_contains(strtolower($data[1]), 'sms')){ echo '' . '' . $data[1] . ' | '; // display the category as its the first row with this new category $oldcatname=$data[1]; }elseif (str_contains(strtolower($data[1]), 'games')){ echo '' . '' . $data[1] . ' | '; // display the category as its the first row with this new category $oldcatname=$data[1]; }elseif (str_contains(strtolower($data[1]), 'vps')){ echo '' . '' . $data[1] . ' | '; // display the category as its the first row with this new category $oldcatname=$data[1]; }elseif (str_contains(strtolower($data[1]), 'torproject')){ echo '' . '' . $data[1] . ' |'; $oldcatname=$data[1]; }elseif (str_contains(strtolower($data[1]), 'privacy front-ends')){ echo '' . '' . $data[1] . ' |'; $oldcatname=$data[1]; }elseif (str_contains(strtolower($data[1]), 'vpns')){ echo '' . '' . $data[1] . ' |'; $oldcatname=$data[1]; }elseif (str_contains(strtolower($data[1]), 'fediverse')){ echo '' . '' . $data[1] . ' |'; $oldcatname=$data[1]; }elseif (str_contains(strtolower($data[1]), 'torrents')){ echo '' . '' . $data[1] . ' |'; $oldcatname=$data[1]; }elseif (str_contains(strtolower($data[1]), 'forums')){ echo '' . '' . $data[1] . ' |'; $oldcatname=$data[1]; }elseif (str_contains(strtolower($data[1]), 'mail')){ echo '' . '' . $data[1] . ' |'; $oldcatname=$data[1]; }elseif (str_contains(strtolower($data[1]), 'radio')){ echo '' . '' . $data[1] . ' |'; $oldcatname=$data[1]; }elseif (str_contains(strtolower($data[1]), 'search engine')){ echo '' . '' . $data[1] . ' |'; $oldcatname=$data[1]; }elseif (str_contains(strtolower($data[1]), 'exchanges')){ echo '' . '' . $data[1] . ' |'; $oldcatname=$data[1]; }else{ echo '' . '' . $data[1] . ' | '; // display the category as its the first row with this new category $oldcatname=$data[1]; } } } } } } echo 'Display All Links |

'; fclose($handle); } } } $min_length = 1; $max_length = 32; $instance= $_SERVER['SERVER_NAME']; $participantpath="participants/" . $instance . '/'; $verifiedcsvpath="participants/" . $instance . '/verified.csv'; $unverifiedcsvpath="participants/" . $instance . '/unverified.csv'; DisplayCategories($instance, $participantpath); ?>

Update Frequency: every 3 hours