php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.11.2009, 01:47  
Neuer Benutzer
 
Registriert seit: 06.11.2009
Beiträge: 4
PHP-Kenntnisse:
Anfänger
croxxx69 befindet sich auf einem aufstrebenden Ast
Standard Hilfe - php include?

hallo,

habe im netz eine suchfunktion fuer meine homepage gefunden...
doch moechte sie gerne auf meine page Kava portal - Svijet kave (oben rechts unterm header bild) einbinden... doch leider weiss ich nicht genau wie man das ganze includen kann/soll?! moechte nicht den ganzen code schnipsel auf meiner site kopieren, sondern halt mit include es "verschoenern"

also das script ist:

PHP-Code:
<?php
// Domain-Name für die Anzeige in den Resultaten
$DomainName "http://".GetParam("SERVER_NAME""S");

// Root-Verzeichnis für den Zugriff auf die Dateien am Server
// Beispiel: $RootDir=dirname("/htdocs");
$RootDir dirname(GetParam("SCRIPT_FILENAME""S"));

// Dateiname für die Protokollierung der Suchbegriffe
// (kein Dateiname zum deaktivieren der Protokollierung)
// z.B. "../../files/logs/search_words.log"
$SearchWordLog "";

// Länge der Textfragmente um die Fundstellen (in Zeichen)
$Found_Piece_Len 50;

// Erlaubtes Verzeichnis
// Z.B.: $AllowedDirs = $RootDir."/content";
$AllowedDir $RootDir;

// Erlaubte Erweiterungen als Array, getrennt mit einem Beistrich
// Z.B.: $AllowedExts=array(".php",".php3",".php4",".htm",".html",".ihtml",".shtm",".shtml",".txt");
$AllowedExts = array(".php",".html",".shtml");

// Deutsche Umlaute dekodieren (dadurch wird beispielsweise "&auml;" zu "ä")
$ActivateUmlaut true;

// Links zu den gefundenen Seiten in einem neuen Tab/Fenster öffnen
$LinkTargetBlank true;

// *****************************************************************************

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Suche</title>

<meta name="title" content="Suche">
<meta name="author" content="Werner Rumpeltesz">
<meta name="robots" content="noindex,nofollow">
<meta http-equiv="content-language" content="de-at">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel=stylesheet type="text/css" href="search.css">

</head>
<body>



<h4>Tražilica</h4>

<?php
  $SearchTerm 
FormatSearchString(stripslashes(GetParam("q""P")));
  if (!
$SearchTerm$SearchTerm FormatSearchString(stripslashes(GetParam("q""G")));
?>

<table border=0 cellspacing=0 cellpadding=0><tr><td>
<form class=formbox action="<?php echo GetParam("PHP_SELF""S"); ?>" method="post">
<table border=0 cellspacing=0 cellpadding=1>
<tr>
  <td class=formfield nowrap>Traži:&nbsp;</td><td><input type="text" name="q" size=40 maxlength=250 value="<?=$SearchTerm?>"></td></tr>
<tr><td></td><td class=formfield><input type="submit" value="Pronađi" name="submit"></td></tr>
</table>
</form>
</td></tr></table>

<br>

<?php

if($SearchTerm){
  
// Protokollierung der Suchbegriffe
  
if(file_exists($SearchWordLog)) {
    
$fp=@fopen($SearchWordLog,"a");
    if(
$fp) {
      
flock($fp,2);
      
fputs($fp,$SearchTerm."\r\n",256);
      
flock($fp,3);
      
fclose($fp);
    }
  }

  echo 
"<h4>Rezultati</h4>\n";

  
$files=ReadDirs($AllowedDir,$AllowedExts);

  
$ResultCount=0;
  if(
$files && $SearchTerm){
    foreach(
$files as $f){
      if(
SearchFile($f,$SearchTerm)){
        
$fn=$f;
        if(
substr($f,0,strlen($RootDir))==$RootDir$fn=$DomainName.substr($f,strlen($RootDir));
        
$ResultCount++;
        echo 
$ResultCount.". ";
        echo 
'<a href="'.$fn.'"';
        if (
$LinkTargetBlank) echo ' target="_blank"';
        echo 
"><b>".$Site_Title."</b></a><br>\n";
        if(
$Meta_Description) echo $Meta_Description."<br>\n";
        echo 
"<span class=small><span class=grey>".$Site_Content."</span></span><br>\n";
        echo 
"<span class=grey>Datei:</span> <span class=green>".$fn."</span>";
        echo 
" - ";
        echo 
"<span class=grey>Größe:</span> <span class=green>".round(filesize($f)/1024,2)." KB</span>";
        echo 
"<br>";
        echo 
"<br>\n";
      }
    }
    
clearstatcache();
  }
  echo 
"Pronađeni su: <b>".$ResultCount."</b> stranica.<br>\n";
}

function 
SearchFile($url,$search){
  global 
$Found_Piece_Len;
  global 
$ActivateUmlaut;
  global 
$RootDir;
  global 
$DomainName;

  global 
$Site_Title;
  global 
$Meta_Title;
  global 
$Site_Content;
  global 
$Meta_Description;
  global 
$Meta_Robots;

  
$Site_Title="";
  
$Meta_Title="";
  
$Meta_Keywords="";
  
$Site_Content="";
  
$Meta_Description="";
  
$Meta_Robots="";

  
// *** Meta-Angaben ermitteln ***
  
$gmtarray=get_meta_tags($url);
  while(list(
$key,$val)=each($gmtarray)){
    switch(
strtolower($key)){
      case 
"title"$Meta_Title=$val; break;
      case 
"keywords"$Meta_Keywords=$val; break;
      case 
"description"$Meta_Description=$val; break;
      case 
"robots"$Meta_Robots=strtolower($val); break;
      case 
"revisit"$Meta_Revisit=strtolower($val); break;
      case 
"revisit-after"$Meta_RevisitAfter=strtolower($val); break;
    }
  }
  
$Meta_Description="";

  
// *** Dateiinhalt einlesen (bzw. Ausgabe bei PHP) ***
  
$fp=@fopen($url,"r");
  if(!
$fp) return false;
  
$content="";
  while(!
feof($fp)){
    
$content.=fgets($fp,10240);
  }
  
fclose($fp);
  
  
$content preg_replace("/<\?.*?\?>/s"""$content);

  
$content $Meta_Title." ".$Meta_Keywords." ".$Meta_Description." ".trim($content);

  
// *** Seitentitel ermitteln ***
  
$Site_Title GetSiteTitle($content);
  if(!
$Site_Title$Site_Title $Meta_Title;
  if(!
$Site_Title$Site_Title basename($url);

  if (
substr($content0strlen($Site_Title)) == $Site_Title$content substr($contentstrlen($Site_Title));

  
$content strip_tags($content);
  
$content str_replace("\n"" "$content);
  
$content str_replace("\r"""$content);
  
$sc " ".trim($content);

  while(
strpos($sc,"  ")){
    
$sc=str_replace("  "," ",$sc);
  }
  
$content=$sc;

  
// Deutsche Umlaute konvertieren
  
if($ActivateUmlaut){
    
$content=str_replace("&auml;","ä",$content);
    
$content=str_replace("&ouml;","ö",$content);
    
$content=str_replace("&uuml;","ü",$content);
    
$content=str_replace("&Auml;","Ä",$content);
    
$content=str_replace("&Ouml;","Ö",$content);
    
$content=str_replace("&Uuml;","Ü",$content);
    
$content=str_replace("&szlig;","ß",$content);
  }
  
$content=str_replace("&euro;","€",$content);
  
$content=str_replace("&nbsp;"," ",$content);

  
// *** Suchen ***
  
$found=false;
  
$a=explode(" ",strtolower($search));
  
$lowcontent=strtolower($content);
  
$result_text="";
  foreach(
$a as $arg){
    
$p0=strpos($lowcontent,$arg);
    if(
$p0>0){
      
$p1=$Found_Piece_Len;
      
$p2=$Found_Piece_Len;
      if ((
$p0-$p1) < 0$p1=$p0;
      
$result_text.="...".substr($content,$p0-$p1,$p1)."<b class=red>";
      
$result_text.=substr($content,$p0,strlen($arg))."</b>".substr($content,$p0+strlen($arg),$p2);
      
$found=true;
    }else{
      
$found=false;
      break;
    }
  }

  if(!
$found) return false;
  if(
$result_text$result_text.="...";

  
$Site_Content=$result_text;

  return 
true;
}

function 
FormatSearchString($search){
  
$chars=".:-_,;!§$%&/()=#+*~'?\[|]{^°}²³µ@€ šđžćčäöüß1234567890abcdefghijklmnopqrstuvwxyz";
  
$s="";
  for(
$i=0;$i<strlen($search);$i++){
    
$a=substr($search,$i,1);
    if(
stristr($chars,$a)) $s.=$a;
  }
  while(
strpos($s,"  ")){
    
$s=str_replace("  "," ",$s);
  }
  return 
trim($s);
}

function 
ReadDirs($d,$ExtArray){
  
$fileArray=array();
  if(
$hDir opendir($d)){
    while(
$file=readdir($hDir)){
      if(!
is_dir($d."/".$file)){
        
// *** .*-Dateien (zB .htaccess) ignorieren ***
        
if(substr($file,0,1)!="."){
              foreach(
$ExtArray as $ext){
                if(
substr(strtolower($file),strlen($file)-strlen($ext),strlen($ext))==strtolower($ext)){
                    
array_push($fileArray,$d."/".$file);
                    continue;
                }
              }
          }
      }
    }
    
closedir($hDir);
  }
  return 
$fileArray;
}

function 
GetSiteTitle($content)
{
  
$p1=strpos(strtolower($content),"<title>");
  if(!
$p1) return false;
  
$p2=strpos(strtolower($content),"</title>",$p1);
  if(!
$p2) return false;
  return 
trim(substr($content,$p1+7,$p2-$p1-7));
}

function 
GetParam($ParamName$Method "P"$DefaultValue "") {
  if (
$Method == "P") {
    if (isset(
$_POST[$ParamName])) return $_POST[$ParamName]; else return $DefaultValue;
  } else if (
$Method == "G") {
    if (isset(
$_GET[$ParamName])) return $_GET[$ParamName]; else return $DefaultValue;
  } else if (
$Method == "S") {
    if (isset(
$_SERVER[$ParamName])) return $_SERVER[$ParamName]; else return $DefaultValue;
  }
}

?>



</body>
</html>
LG!
croxxx69 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.11.2009, 02:21  
Benutzer
 
Registriert seit: 13.08.2009
Beiträge: 32
PHP-Kenntnisse:
Anfänger
Larkin befindet sich auf einem aufstrebenden Ast
Standard

Ich hab' mir deinen Code jetzt nicht angeguckt, da ich viel zu müde bin, aber wieso nutzt Du nicht einfach die Suchfunktion von google auf deiner Seite?

Gute Nacht.
Larkin ist offline  
Alt 06.11.2009, 03:11  
Neuer Benutzer
 
Registriert seit: 06.11.2009
Beiträge: 4
PHP-Kenntnisse:
Anfänger
croxxx69 befindet sich auf einem aufstrebenden Ast
Standard

hmmm... darf ich fragen warum?
also finde eigentlich google suche nicht so uebersichtlich...
croxxx69 ist offline  
Alt 06.11.2009, 03:35  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
hmmm... darf ich fragen warum?
frag ruhig - darfst aber auch vorher drüber nachdenken.
Koala ist offline  
Alt 06.11.2009, 08:26  
Erfahrener Benutzer
 
Registriert seit: 07.07.2008
Beiträge: 208
homekiller befindet sich auf einem aufstrebenden Ast
Standard

Code für die Suchfunktion in eine Datei und dann an der richtigen Stelle im Layout
PHP-Code:
include("SuchfunktionsCodeInhalt.php"); 
das sollte klappen...
__________________

homekiller ist offline  
Alt 06.11.2009, 09:48  
Erfahrener Benutzer
 
Registriert seit: 17.07.2009
Beiträge: 223
PHP-Kenntnisse:
Fortgeschritten
Tiberius zeigte ein beschämendes Verhalten in der Vergangenheit
Tiberius eine Nachricht über ICQ schicken
Standard

das Script wird so nicht laufen, es werden Funktionen aufgerufen(z.B. GetParam) die erst weiter unten definiert sind
Tiberius ist offline  
Alt 06.11.2009, 12:51  
Erfahrener Benutzer
 
Registriert seit: 13.05.2009
Beiträge: 1.166
PHP-Kenntnisse:
Fortgeschritten
dennis81 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Tiberius Beitrag anzeigen
das Script wird so nicht laufen, es werden Funktionen aufgerufen(z.B. GetParam) die erst weiter unten definiert sind
Wir sind hier aber nicht in C.

PHP-Code:
huhu();

function 
huhu() {
    echo 
"it just works";

dennis81 ist offline  
Alt 06.11.2009, 13:31  
Erfahrener Benutzer
 
Registriert seit: 17.07.2009
Beiträge: 223
PHP-Kenntnisse:
Fortgeschritten
Tiberius zeigte ein beschämendes Verhalten in der Vergangenheit
Tiberius eine Nachricht über ICQ schicken
Standard

stimmt, hast recht dennis - das war beim require oder include ... is einfach zu lange her, dass ich globale Funktionen genutzt hab
Tiberius ist offline  
Alt 06.11.2009, 17:19  
Neuer Benutzer
 
Registriert seit: 06.11.2009
Beiträge: 4
PHP-Kenntnisse:
Anfänger
croxxx69 befindet sich auf einem aufstrebenden Ast
Standard

ok, habe es also dann so gemacht:
PHP-Code:
<?php
  
include("search.php");
?>
und es geht anscheinend alles super...
ausser:

1. wenn ich auf suchen klicke, moechte ich das meine suchergebnisse auf einer neuen seite erscheinen und nicht in der aktuellen, weil sich dann ja alles verschiebt...

2. wie kann ich das im suchfeld selbst automatisch z.bs. "suche" angezeigt wird? weil das suchfeld ist ja immer leer, wuerde aber gerne einen "anhaltspunkt" geben, und irgendwie in kursivschrift das immer im suchfeld "suche" steht...

3. und noch eine frage, wie kann man die suche in meinem bild "eingravieren"? damit ich mehr paltz bekomme, wuerde ich die suche in meinem bild unten rechts einbauen... macht man das mit css?

Geändert von croxxx69 (06.11.2009 um 18:08 Uhr).
croxxx69 ist offline  
Alt 10.11.2009, 18:33  
Neuer Benutzer
 
Registriert seit: 06.11.2009
Beiträge: 4
PHP-Kenntnisse:
Anfänger
croxxx69 befindet sich auf einem aufstrebenden Ast
Standard

wenn mir einer nur eklaeren kann wie ich die suchergebnisse in einer anderen seite oeffnen kann?!


lg!
croxxx69 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Indexdatei/Template include von PHP DarkOverride PHP Tipps 2009 4 12.06.2009 14:18
Fehler beim kompilieren von php 5.2.9 malio Server, Hosting und Workstations 11 05.06.2009 18:40
Formulare funktionieren nicht post kommt nicht an ronaldl PHP Tipps 2008 17 27.12.2008 07:46
Brauche eure Hilfe bei Include !! grossbeeren PHP Tipps 2008 3 30.05.2008 15:33
hinter include wird eine 1 angezeigt |~Râdîant~| PHP Tipps 2008 8 19.09.2007 13:52
include Dateien wieder ausängen o.Ä. netti PHP Tipps 2007 8 17.12.2006 15:14
include problem Canni PHP Tipps 2006 26 14.11.2006 14:24
include, nur bestimmten teil neu laden Calli PHP Tipps 2006 2 27.01.2006 15:57
Hilfe bei Page (include) PHP Tipps 2007 33 23.12.2005 13:58
Hilfe mit Include PHP Tipps 2005-2 18 16.08.2005 22:00
wiedermal n neuling der hilfe braucht !!! Thema: include PHP Tipps 2005-2 7 18.07.2005 09:57
HILFE mit Include PHP Tipps 2005 1 29.03.2005 05:44
[Erledigt] Sessions auch bei include aktiv? PHP Tipps 2005 1 28.02.2005 19:58
Ein ganz schlimmer Anfänger sucht Hilfe bei Include() PHP Tipps 2004 4 29.10.2004 14:11
Hilfe ich finde den Fehler nicht! PHP Tipps 2004 2 07.10.2004 17:40

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
<?php echo getparam(\'php_self\', \'s\'); ?>, und zeichen bei include php, $alloweddir = $rootdir, php umlaute in dateinamen include, $site_title=getsitetitle($content); if(!$site_title) $site_title=$meta_title; if(!$site_title) $site_title=basename($url);, $rootdir = dirname(getparam(\'script_filename\', \'s\'));, php include sonderzeichen ?page=, php include mit umlauten im dateinamen, suchfeld eingabe mit str_replace php -mysql, php include umlaute, hilfe php includen, if seiten öffnen, include ...., php fgets() deutsche umlaute, php include global, include, form, input, ä, ö, php suchfunktion inkludieren, includephp umlaute, $searchwordlog $searchterm, php protokollierung, $rootdir = dirname(getparam(\'script_filename\', \'s\');

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:42 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum