Gegen Bilderklau - Das Original

Registrierung Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Statistik Chat Karte Zur Startseite

Gegen Bilderklau - Das Original » Design, Website, Copyright » Homepagehilfe » Homepagehilfe - Archiv » [PHP & MySQL] preg_replace_callback() klappt irgendwie nit =/ » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen
Zum Ende der Seite springen preg_replace_callback() klappt irgendwie nit =/
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Black Katrin Black Katrin ist weiblich
Mitglied


Dabei seit: 22.11.2005
Beiträge: 7.125
Herkunft: Schweiz

preg_replace_callback() klappt irgendwie nit =/ Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo zusammen,

Ich würde folgendes gerne machen: in einem Text möchte ich nicht den vollständigen HTML Code schreiben um bilder einzufügen, sondern mit preg_replace das problem lösen im sinne von

{bild}bild_id,align,grosse{/bild}

nun ist folgendes, mit der bild_id kann ich das bild aus der datenbank abfragen, aber dafür müsste ich ja dazwischen eine datenbank abfrage schalten können... ist das in irgendeinerweise möglich? leider bin ich mit preg_replace noch nicht solange am basteln und üben und daher wenig erfahrung... und die seiten die hilfe geben sollen, haben das einfache deutsch leider nicht erfunden =/ daher hoffe ich das es mir hier jemand vielleicht einfach erklären könnte...

Schonmal Danke im Vorraus!

siehe unten

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Black Katrin: 30.06.2010 22:44.

30.06.2010 21:43 Black Katrin ist offline Homepage von Black Katrin Beiträge von Black Katrin suchen Nehmen Sie Black Katrin in Ihre Freundesliste auf
Oli
Server-Administrator


Dabei seit: 13.06.2010
Beiträge: 1.540

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hi,

schau dir mal preg_match() und preg_match_all() an. Damit kann man Inhalte "rausfischen" und sie weiterverwerten.

LG,
Oli
30.06.2010 21:52 Oli ist offline Beiträge von Oli suchen Nehmen Sie Oli in Ihre Freundesliste auf
Black Katrin Black Katrin ist weiblich
Mitglied


Dabei seit: 22.11.2005
Beiträge: 7.125
Herkunft: Schweiz

Themenstarter Thema begonnen von Black Katrin
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

uh dank deinen hinweisen hab ich noch was anderes gefunden smile mit preg_replace_callback() dürfte es auch funktionieren, da mach ich ja ne eigene funktion dafür... bist nen schatz, danke
30.06.2010 22:00 Black Katrin ist offline Homepage von Black Katrin Beiträge von Black Katrin suchen Nehmen Sie Black Katrin in Ihre Freundesliste auf
Oli
Server-Administrator


Dabei seit: 13.06.2010
Beiträge: 1.540

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Stimmt, das gibts auch noch, ist mir gar nicht eingefallen Augenzwinkern .
Gern geschehen Augenzwinkern .
30.06.2010 22:03 Oli ist offline Beiträge von Oli suchen Nehmen Sie Oli in Ihre Freundesliste auf
Black Katrin Black Katrin ist weiblich
Mitglied


Dabei seit: 22.11.2005
Beiträge: 7.125
Herkunft: Schweiz

Themenstarter Thema begonnen von Black Katrin
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
<?php

  function FunktionBild($treffer) {
    $bild_id $treffer[1];
    $align $treffer[2];
    
      $bilder_abfrage "SELECT * FROM galerie_bilder WHERE id='$bild_id'";
        $bilder_ergebnis=mysql_db_query($db,$bilder_abfrage,$verbindung);
       while($row mysql_fetch_object($bilder_ergebnis))
             {$url=$row->url;}

    $link "<a href='index.php?section=bild&bild_id=$bild_id'><img src='bilder_bild.php?pfad=../privi/bilder/$url' class='bilder' alt='Fotografie - &copy; Katrin Affolter' align='$align'></a>";
    return $link;
  }

$blog_id $_GET['blog_id'];


  $blog_abfrage "SELECT * FROM blog WHERE id='$blog_id'";
  $blog_ergebnis=mysql_db_query($db,$blog_abfrage,$verbindung);
  while($row mysql_fetch_object($blog_ergebnis))
  {
   $id $row->id;
   $titel=$row->titel;
   $anlese=$row->anlese;
   
   //{bild}bild_id,align{/bild}
   //{galerie}tag1,tag2,tag3{/gallery}
   $text=$row->text;
   $text preg_replace('#\{bild}(.*),(.*){/bild}#Uis''FunktionBild'$text);

   $daten=explode(".",$row->datum);
   if($daten[1]=="01"){$datum="$daten[0]. Januar $daten[2]";}
   if($daten[1]=="02"){$datum="$daten[0]. Februar $daten[2]";}
   if($daten[1]=="03"){$datum="$daten[0]. März $daten[2]";}
   if($daten[1]=="04"){$datum="$daten[0]. April $daten[2]";}
   if($daten[1]=="05"){$datum="$daten[0]. Mai $daten[2]";}
   if($daten[1]=="06"){$datum="$daten[0]. Juni $daten[2]";}
   if($daten[1]=="07"){$datum="$daten[0]. Juli $daten[2]";}
   if($daten[1]=="08"){$datum="$daten[0]. August $daten[2]";}
   if($daten[1]=="09"){$datum="$daten[0]. September $daten[2]";}
   if($daten[1]=="10"){$datum="$daten[0]. Oktober $daten[2]";}
   if($daten[1]=="11"){$datum="$daten[0]. November $daten[2]";}
   if($daten[1]=="12"){$datum="$daten[0]. Dezember $daten[2]";}
   
   $bild_id=$row->bild_id;
   $bilder_abfrage "SELECT * FROM galerie_bilder WHERE id='$bild_id'";
   $bilder_ergebnis=mysql_db_query($db,$bilder_abfrage,$verbindung);
   while($row mysql_fetch_object($bilder_ergebnis))
   {$url=$row->url;}

   echo"<a href='index.php?section=bild&bild_id=$bild_id'><img src='bilder_bild.php?pfad=../privi/bilder/$url' class='bilder' alt='Fotografie - &copy; Katrin Affolter' align='left'></a>
         <b class='gross'>$titel</b> vom $datum
         <br><b>$anlese</b>
         <br>$text
   ";

   }

echo"<br>";



?>



http://web271.zeta.ibone.ch/test/index.p...log=1&blog_id=1


klappt nicht unglücklich zweite bild erscheint nicht... welches mit der funktion ausgegeben werden müsste... ideen?
30.06.2010 22:42 Black Katrin ist offline Homepage von Black Katrin Beiträge von Black Katrin suchen Nehmen Sie Black Katrin in Ihre Freundesliste auf
Oli
Server-Administrator


Dabei seit: 13.06.2010
Beiträge: 1.540

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Auf die schnelle ist mir nicht viel aufgefallen.. abeeeeeer.. Wo wir hier von preg_replace_callback gesprochen haben,

php:
1:
$text preg_replace('#\{bild}(.*),(.*){/bild}#Uis''FunktionBild'$text);

sollte das nicht preg_replace_callback heißen?
30.06.2010 23:10 Oli ist offline Beiträge von Oli suchen Nehmen Sie Oli in Ihre Freundesliste auf
Black Katrin Black Katrin ist weiblich
Mitglied


Dabei seit: 22.11.2005
Beiträge: 7.125
Herkunft: Schweiz

Themenstarter Thema begonnen von Black Katrin
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

xD macht die sache nit besser...

php:
1:
$text preg_replace_callback('#\{bild}(.*),(.*){/bild}#Uis''FunktionBild(\1,\2)'$text);


jegliche art die mir einfällt... es geht nit unglücklich ich bin zu doofe
30.06.2010 23:23 Black Katrin ist offline Homepage von Black Katrin Beiträge von Black Katrin suchen Nehmen Sie Black Katrin in Ihre Freundesliste auf
Oli
Server-Administrator


Dabei seit: 13.06.2010
Beiträge: 1.540

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hm. Probiers mal so:
php:
1:
$text preg_replace_callback('#\{bild}(.*),(.*){/bild}#Uis''FunktionBild'$text);


Und die Funktion dazu:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function FunktionBild($treffer) {
    global $db$verbindung//notwendig!
    $bild_id $treffer[1];
    $align $treffer[2];
    
      $bilder_abfrage "SELECT * FROM galerie_bilder WHERE id='$bild_id'";
        $bilder_ergebnis=mysql_db_query($db,$bilder_abfrage,$verbindung);
       while($row mysql_fetch_object($bilder_ergebnis))
             {$url=$row->url;}

    $link "<a href='index.php?section=bild&bild_id=$bild_id'><img src='bilder_bild.php?pfad=../privi/bilder/$url' class='bilder' alt='Fotografie - &copy; Katrin Affolter' align='$align'></a>";
    return $link;
  }

Beachte das global $db, $verbindung, sonst hast du die Variablen nicht innerhalb der Funktion zur Verfügung.

EDIT: Falls auch das nicht geht, poste bitte die Fehlermeldungen, die bei diesem Code entstehen.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Oli: 30.06.2010 23:28.

30.06.2010 23:27 Oli ist offline Beiträge von Oli suchen Nehmen Sie Oli in Ihre Freundesliste auf
Black Katrin Black Katrin ist weiblich
Mitglied


Dabei seit: 22.11.2005
Beiträge: 7.125
Herkunft: Schweiz

Themenstarter Thema begonnen von Black Katrin
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

es geht smile keine ahnung wieso aber es klappt smile bist mein held des tages!!!
30.06.2010 23:30 Black Katrin ist offline Homepage von Black Katrin Beiträge von Black Katrin suchen Nehmen Sie Black Katrin in Ihre Freundesliste auf
Oli
Server-Administrator


Dabei seit: 13.06.2010
Beiträge: 1.540

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von Black Katrin
es geht smile keine ahnung wieso aber es klappt smile bist mein held des tages!!!

Wie ich geschrieben hatte. Dein Code war an sich richtig, du hattest nur nicht bedacht (oder vllt auch nicht gewusst), dass Variablen, die außerhalb einer Funktion existieren, nicht automatisch innerhalb einer Funktion vorhanden sind. Um diese Variablen zu erreichen, in deinem Fall $db und $verbindung (beide erforderlich, damit die Abfrage der Datenbank klappt), muss man sie vorher bei der Funktion "anmelden" (sie globalisieren).
30.06.2010 23:34 Oli ist offline Beiträge von Oli suchen Nehmen Sie Oli in Ihre Freundesliste auf
Black Katrin Black Katrin ist weiblich
Mitglied


Dabei seit: 22.11.2005
Beiträge: 7.125
Herkunft: Schweiz

Themenstarter Thema begonnen von Black Katrin
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

jein... ich sollte es wissen Augenzwinkern aber irgendwie... zuverwirrt aktuell wohl
30.06.2010 23:39 Black Katrin ist offline Homepage von Black Katrin Beiträge von Black Katrin suchen Nehmen Sie Black Katrin in Ihre Freundesliste auf
Oli
Server-Administrator


Dabei seit: 13.06.2010
Beiträge: 1.540

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Macht nichts, wir haben den Fehler ja schließlich gefunden Augenzwinkern
30.06.2010 23:42 Oli ist offline Beiträge von Oli suchen Nehmen Sie Oli in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Gegen Bilderklau - Das Original » Design, Website, Copyright » Homepagehilfe » Homepagehilfe - Archiv » [PHP & MySQL] preg_replace_callback() klappt irgendwie nit =/

Impressum

Forensoftware: Burning Board, entwickelt von WoltLab GmbH