Avatar billede ale Nybegynder
03. februar 2002 - 18:19 Der er 14 kommentarer

Hjælp til redigering af script

Jeg har et script som jeg ikke kan få tilat virke på min server!...
Jeg har fået afvide af Azero.Dk (som jeg har min server ved) at:

Hej

Jeg har testet din opsætning og du har adgang til PHP4. Du skal
blot give filerne .php som ekstention. Jeg har lagt et eksempel
på dit website:
http://www.intercore.dk/azero/info.php

Hvis der er et script der ikke virker for dig kan det være PHP
på den server du er placeret på ikke har samme indstillinger som
den du sammenligner med. Husk på du er placeret på en windows
server og at PHP kører med Register_globals off, se mere:
http://azero.dk -> support -> programmering -> php -> register-globals

God fornøjelse.

Scriptet ser således ud:

<?
#-----------------------------------------#
# PHP Meta Search Engine          #
#                      #
# by Ericson C. Smith (2001)          #
# under the GPL                  #
# esconsult1@yahoo.com              #
#                       #
# If you need new to add new engines,    #
# I can do this for a small fee to cover  #
# my busy time! $US 25 to add each eng.  #
# Just e-mail me at the above address    #
# with the name of the site and a        #
# description of the results to be parsed.#
# Turnaround is normally in a few hours!  #
#                      #
# I can also make this over to completely #
# integrate within your site.          #
#                      #
#-----------------------------------------#

print "
<HTML>
<HEAD>
<TITLE>Meta Search Engine</TITLE>
</HEAD>

<BODY>

<font face=Verdana,Arial,Helvetica,sans-serif size=-1>
<FORM method=get>
Search: <input type=text name=search><input type=submit name=Search value=$search><br>
</FORM>
<hr size=1 noshade>";

#- Start search
if($search) {

$q = urlencode($search);

$start = time();

$eng[0]['url']  = "http://www.google.com/search?q=$q&hl=en&lr=&safe=off&start=0&sa=N";
$eng[0]['name'] = "Google";
$eng[0]['reg']  = "/<p><A HREF=(.*?)>(.*?)<\/A><font.*?<br>(.*?)<br>/";
$eng[0]['strip'] = "\n";

$eng[1]['url'] = "http://www.alltheweb.com/search?cat=web&lang=any&query=$q";
$eng[1]['name'] = "AllTheWeb";
$eng[1]['reg'] = '/<dt>.*?href=\"(.*?)\">(.*?)<\/a>.*?<dd>(.*?)<br>/i';
$eng[1]['strip'] = "\n";

$eng[2]['url'] = "http://altavista.com/sites/search/web?q=$q&enc=&kl=XX&search=Search";
$eng[2]['name'] = "Altavista";
$eng[2]['reg'] = "/<A .*?status='(.*?)'.*?\">(.*?)<\/A>.*?<BR>(.*?)<BR>/i";
$eng[2]['strip'] = "\n";

$eng[3]['url'] = "http://search.msn.com/results.asp?ba=(0.0)0&co=(0.10)4.1..2.1.4.1&FORM=MSNH&RS=CHECKED&q=$q&v=1";
$eng[3]['name'] = "MSN";
$eng[3]['reg'] = "/<A CLASS.*?href=\"(.*?)\">(.*?)<\/A><br.*?>(.*?)<br/i";
$eng[3]['strip'] ']= ']="";

$eng[4]['url'] ']= ']="http://search.excite.com/search.gw?c=web&search=$q&onload=";
$eng[4]['name'] ']= ']="Excite";
$eng[4]['reg'] ']= ']="/pos=.*?;(http.*?)onMouse.*?<b>(.*?)<br>.*?size8>(.*?)<\/span>/i";
$eng[4]['strip'] = "\n";

$eng[5]['url'] = "http://google.yahoo.com/bin/query?p=$q&hc=1&hs=4";
$eng[5]['name'] = "Yahoo";
$eng[5]['reg'] = "/href.*?\*(.*?)\">(.*?)<br>.*?<\/b>(.*?)<br>/i";
$eng[5]['strip'] = "\n";

$urls = array();
$out = array();
$y=0;

foreach($eng as $c)
  {
    $text1 = join("",file($c['url']));

    if($c[strip])
      $text1 = ereg_replace($c[strip],"",$text1);
     
    preg_match_all($c['reg'],$text1,$matches);
    $num = count($matches[0]);
   
    for($x=0;$x<$num;$x++) {
    $url = strip_tags($matches[1][$x]);
    $title = strip_tags($matches[2][$x]);
    $description = strip_tags($matches[3][$x]);
    $engine = $c[name];
   
    if($out["$url"])
      {
        $out["$url"][engine] .= ", $engine";
      }
    else
      {
        $out["$url"][title] = $title;
        $out["$url"][description] = $description;
        $out["$url"][engine] = $engine;
      } 
      $y++;
    }
     
  }#rof

$secs = time() - $start;

print "$y results returned in $secs seconds.<br><br>";
print "<OL>";
#print "<pre>";
#print_r($out);
#print "</pre>";

while(list($url,$rec) = each($out))
  {
    extract($rec);
    print "
    <li>
    <a href=$url><b>$title</b></a><BR>
      $description
    <FONT size=1><BR>$url<br></FONT>
    <FONT size=1 color=green>$engine</FONT>
    <BR><BR>";
  }

print "</OL>"; 

print "
    </font>
    </BODY>
    </HTML>
    ";   
} #end search
   
?>

Kan jeg få en til at lave det færdig så det virker på min server... Jeg vil godt give flere point!...

Med Venlig Hilsen
Ale
Avatar billede ncp Nybegynder
03. februar 2002 - 18:29 #1
du skal jo bare gemme det i en fil der hedder script.php ?
Avatar billede minijensen1 Nybegynder
03. februar 2002 - 18:33 #2
ved :
...

$eng[3]['url'] = "http://search.msn.com/results.asp?ba=(0.0)0&co=(0.10)4.1..2.1.4.1&FORM=MSNH&RS=CHECKED&q=$q&v=1";
$eng[3]['name'] = "MSN";
$eng[3]['reg'] = "/<A CLASS.*?href=\"(.*?)\">(.*?)<\/A><br.*?>(.*?)<br/i";
$eng[3]['strip'] ']= ']="";

...

den der $eng[3]['strip'] har jo en helt forkert variabel ..
Avatar billede ncp Nybegynder
03. februar 2002 - 18:40 #3
der skal stå
$eng[3]['strip'] = "\n"; istedet...
Avatar billede minijensen1 Nybegynder
03. februar 2002 - 18:41 #4
hmm .. hele scriptet er fyldt med fejl .. jeg ser lige om jeg kan rette dem  ;)
Avatar billede ale Nybegynder
03. februar 2002 - 18:51 #5
minijensen1 --> Hvis du vil rette den vil det være perfekt!... Jeg skal nok give dig flere point hvis du skal bruge det!
Avatar billede minijensen1 Nybegynder
03. februar 2002 - 19:44 #6
hmm .. jeg har siddet og rodet lidt med det nu ..
men jeg får et problem når jeg skal til at bruge JOIN .. jeg har ingen anelse om hvordan join bruges :( .. men jeg kan da se at den finder nogle resultater ..

nogen andre som kan løse problemmet herfra ..?
------------------------------------

<?
#-----------------------------------------#
# PHP Meta Search Engine          #
#                      #
# by Ericson C. Smith (2001)          #
# under the GPL                  #
# esconsult1@yahoo.com              #
#                      #
# If you need new to add new engines,    #
# I can do this for a small fee to cover  #
# my busy time! $US 25 to add each eng.  #
# Just e-mail me at the above address    #
# with the name of the site and a        #
# description of the results to be parsed.#
# Turnaround is normally in a few hours!  #
#                      #
# I can also make this over to completely #
# integrate within your site.          #
#                      #
#-----------------------------------------#

if (empty($search)) { $search = ""; }
?>
<HTML>
<HEAD>
<TITLE>Meta Search Engine</TITLE>
</HEAD>

<BODY>

<font face="Verdana,Arial,Helvetica,sans-serif" size="-1">
<FORM method="get">
Search: <input type="text" name="search"><input type="submit" name="Search" value="Search"><br>
</FORM>
<hr size=1 noshade>
<?

#- Start search
if(!empty($search)) {

$q = urlencode($search);

$start = time();

$eng[0]['url']  = "http://www.google.com/search?hl=en&q=$q&btnG=Google+Search";
$eng[0]['name']  = "Google";
$eng[0]['reg']  = "/<p><A HREF=(.*?)>(.*?)<\/A><font.*?<br>(.*?)<br>/";
$eng[0]['strip'] = "\n";

$eng[1]['url']  = "http://www.alltheweb.com/search?cat=web&lang=any&query=$q";
$eng[1]['name']  = "AllTheWeb";
$eng[1]['reg']  = '/<dt>.*?href=\"(.*?)\">(.*?)<\/a>.*?<dd>(.*?)<br>/i';
$eng[1]['strip'] = "\n";

$eng[2]['url']  = "http://altavista.com/sites/search/web?q=$q&enc=&kl=XX&search=Search";
$eng[2]['name']  = "Altavista";
$eng[2]['reg']  = "/<A .*?status='(.*?)'.*?\">(.*?)<\/A>.*?<BR>(.*?)<BR>/i";
$eng[2]['strip'] = "\n";

$eng[3]['url']  = "http://search.msn.com/results.asp?ba=(0.0)0&co=(0.10)4.1..2.1.4.1&FORM=MSNH&RS=CHECKED&q=$q&v=1";
$eng[3]['name']  = "MSN";
$eng[3]['reg']  = "/<A CLASS.*?href=\"(.*?)\">(.*?)<\/A><br.*?>(.*?)<br/i";
$eng[3]['strip'] = "\n";

$eng[4]['url']  = "http://search.excite.com/search.gw?c=web&search=$q&onload=";
$eng[4]['name']  = "Excite";
$eng[4]['reg']  = "/pos=.*?;(http.*?)onMouse.*?<b>(.*?)<br>.*?size8>(.*?)<\/span>/i";
$eng[4]['strip'] = "\n";

$eng[5]['url']  = "http://google.yahoo.com/bin/query?p=$q&hc=1&hs=4";
$eng[5]['name']  = "Yahoo";
$eng[5]['reg']  = "/href.*?\*(.*?)\">(.*?)<br>.*?<\/b>(.*?)<br>/i";
$eng[5]['strip'] = "\n";

$urls = array();
$out = array();
$y = 0;

foreach($eng as $c) {
  $text1 = join(" ", file($c['url']));

  if($c['strip']) { $text1 = ereg_replace($c['strip'], "", $text1); }
     
  preg_match_all($c['reg'], $text1, $matches);
  $num = count($matches[0]);
   
  for($x=0;$x<$num;$x++) {
    $url = strip_tags($matches[0][$x]);
    $title = strip_tags($matches[1][$x]);
    $description = strip_tags($matches[2][$x]);
    $engine = $c['name'];
   
    if($out["$url"])
      {
        $out["$url"]['engine'] .= ", $engine";
      }
    else
      {
        $out["$url"]['title'] = $title;
        $out["$url"]['description'] = $description;
        $out["$url"]['engine'] = $engine;
      } 
      $y++;
    }
     
  }#rof

$secs = time() - $start;

print "$y results returned in $secs seconds.<br><br>";
print "<OL>";
#print "<pre>";
#print_r($out);
#print "</pre>";

while(list($url,$rec) = each($out))
  {
    extract($rec);
    print "
    <li>
    <a href=$url><b>$title</b></a><BR>
      $description
    <FONT size=1><BR>$url<br></FONT>
    <FONT size=1 color=green>$engine</FONT>
    <BR><BR>";
  }

print "</OL>"; 

print "
    </font>
    </BODY>
    </HTML>
    ";   
} #end search
   
?>
Avatar billede ale Nybegynder
03. februar 2002 - 21:09 #7
HJÆLP MIG!
Avatar billede ale Nybegynder
03. februar 2002 - 21:12 #8
Jeg kan godt sende scriptet til jer som en *.php fil...
Jeg har testet den på en anden server hvor det virker!...
Azero.Dk sagde bare at det var fordi deres server ikke understøtter register-globals...
Kig på http://azero.dk/support/programmering/php/register-globals/ for at se hvad i skal gøre for at hjælpe mig!
Avatar billede ale Nybegynder
03. februar 2002 - 21:16 #9
Hjælp mig nu!...
Avatar billede ale Nybegynder
03. februar 2002 - 21:26 #10
Den der kan få invinsibleman til at joine dette spørgsmål får 15 point!
Avatar billede invisibleman Nybegynder
03. februar 2002 - 22:10 #11
Niels, jeg har ikke hverken tid eller lyst til at hjælpe dig med det. Men jeg kan da henvise dig til nogle der med glæde vil lave det for dig, betalt selvfølgeligt.
Avatar billede benzon Praktikant
04. februar 2002 - 10:31 #12
Udskyld Ale du er langt ude Læs da lige den forklaring der står på deres side !!!!!!!!
Avatar billede benzon Praktikant
04. februar 2002 - 10:33 #13
Du skal lave din variabler om til $HTTP_GET_VARS["type"];

Det vil sige $url skal være $HTTP_GET_VARS["url"];

Så simpelt er det lille mand men syntes du råber for meget op når du selv sider og dummer dig Invisibleman holder med dig !!!!

LÆS NU DEN SIDE FRA AZERO.DK ELLER DROP AT KODE PHP DE SKRIVER KLART OG TYDELIGT HVORDAN DU SKAL GØRE
Avatar billede ale Nybegynder
04. februar 2002 - 14:54 #14
benzon --> Jeg har også droppet at kode PHP... Det er jeg en idiot til... Det er derfor jeg vil have jer til at lave det!.. Så derfor vil jeg meget gerne have dig til at lave det for mig... Du har fået koden øverst i spørgsmålet, så du kan vel godt sætte $HTTP_GET_VARS["url"]; ind istedet for $url

... Tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester