Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

PHP: String und regulärer Ausdruck o.ä.

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
TheRob
PostRank 5
PostRank 5
Beiträge: 274
Registriert: 10.06.2008, 11:44
Wohnort: Wetzikon

Beitrag von TheRob » 29.01.2009, 02:20

Morgen zusammen
Nacht 3h G00glen muss ich jetzt doch mal hier schreiben bo jmd ne fixe Idee hat.
Es geht um Lightbox und die Bilder.
Bekomme einen Text in dem sind Bilder. Jetzt sollen um die Bilder Links gesetzt werden, so dass es mit Lightbox geht.

Code: Alles auswählen

<?php
//String der reinkommt
$str='<p>Das ist ein Text<img src="test.jpg" height="200" width="50" /><br />';
$str .='und noch mehr <img src="example.jpg" height="100" width="100" />Text</p>';



//String der rausgehen soll
?>
<p>Das ist ein Text<a href="test.jpg" rel="Lightbox&#91;serie&#93;"><img src="test.jpg" height="200" width="50" /></a><br />';
'und noch mehr <a href="example.jpg" rel="Lightbox&#91;serie&#93;"><img src="example.jpg" height="100" width="100" /></a>Text</p>';


Hatte schon mit regulären Ausdrücken hin und her gemacht, aber bin kein Meister darin...

Danke für sachdienliche Hinweise.

Gruss Rob

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

huah
PostRank 6
PostRank 6
Beiträge: 429
Registriert: 19.04.2007, 21:56

Beitrag von huah » 29.01.2009, 03:06

Wenn Du in den Strings wiederkehrende Muster hast, müsste das mit https://de.php.net/preg_replace zu schaffen sein.

Wenn Du nicht mal ein richtiges Besipiel postest, kann man dazu aber eh nicht viel sagen - ka was Lightbox is ;-)

TheRob
PostRank 5
PostRank 5
Beiträge: 274
Registriert: 10.06.2008, 11:44
Wohnort: Wetzikon

Beitrag von TheRob » 29.01.2009, 03:09

Moins
Grundsätzlich isses egal was LightBox ist. Geht "nur" darum, um ein Bild einen Link zu bauen, welcher im href das src des Bildes hat. Bsp. hab ich ja oben ($str).
//String der reinkommt
$str='<p>Das ist ein Text<img src="test.jpg" height="200" width="50" /><br />';
$str .='und noch mehr <img src="example.jpg" height="100" width="100" />Text</p>';



function litebox_rel($the_content) {

$preg = '/(<a(.*?)href="([^"]*.)(bmp|gif|jpeg|jpg|png)"(.*?)><img)/ie';
$repl = '(strstr("\2\5","rel=") ? "\1" : "<a\2href=\"\3\4\"\5 rel=\"lightbox\"><img")';
return preg_replace($preg,$repl,$the_content);

}
echo litebox_rel($str);

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

scysys
PostRank 8
PostRank 8
Beiträge: 741
Registriert: 06.12.2008, 22:07
Wohnort: Deutschland

Beitrag von scysys » 29.01.2009, 03:16

Verstehe nicht ganz was du nun möchtest, mag eventuell an der Uhrzeit liegen.

Aber so wie deine beiden Beispiele da kann der Code gar nicht funktionieren, da er fehler enthält.

Eventuell geht es einfacher, meistens denkt man einfach nur viel zu weit.

Poste mal die Webseite auf der du Lightbox nutzen möchtest.

EDIT:

Falls du aber nur Beispiele für eine Umsetzung mit PHP suchst, findest du solche auch direkt beim Hersteller.

TheRob
PostRank 5
PostRank 5
Beiträge: 274
Registriert: 10.06.2008, 11:44
Wohnort: Wetzikon

Beitrag von TheRob » 29.01.2009, 03:20

Website ist nur lokal bei mir.

Das Script an sich ist ohne Fehler.. bis halt das es nicht tut was ich mag ;-)

Vllt. nochmal kurz:

<img src="example.jpg" /> soll umgewandelt werden in
<a href="example.jpg" rel="Lightbox[bla]"><img src="example.jpg" /></a>

huah
PostRank 6
PostRank 6
Beiträge: 429
Registriert: 19.04.2007, 21:56

Beitrag von huah » 29.01.2009, 03:24

Mit https://de.php.net/manual/de/function.preg-match.php kannst Du das Bild src rausholen und in ein Array speichern. Dann könnte man mit einer for Schleife Bild und Link bauen. Wenn allerdings der Text auch noch mit übernommen werden soll, wüsste ich grad auch nicht weiter - muss aber was mit preg_replace sein.

TheRob
PostRank 5
PostRank 5
Beiträge: 274
Registriert: 10.06.2008, 11:44
Wohnort: Wetzikon

Beitrag von TheRob » 29.01.2009, 03:27

huah hat geschrieben:Wenn allerdings der Text auch noch mit übernommen werden soll, wüsste ich grad auch nicht weiter
Thats the problema :-( Das muss so sein. Na ich beschäftige mich mal weiter mit Internet. Irgendwo muss es das doch geben.
Gibt auch nen Haufen Codeschnipsel in der Richtung, aber die gehen alle nicht so recht.

huah
PostRank 6
PostRank 6
Beiträge: 429
Registriert: 19.04.2007, 21:56

Beitrag von huah » 29.01.2009, 03:31

Du könntest den String vorab in einzelne Strings, die je einen Text und einen Link enthalten, aufteilen und diese dann mit preg_match weiter verarbeiten...

scysys
PostRank 8
PostRank 8
Beiträge: 741
Registriert: 06.12.2008, 22:07
Wohnort: Deutschland

Beitrag von scysys » 29.01.2009, 03:43

Seite selber Programmiert oder benutzt du ein CMS, Blog etc.....dies sind alles dinge die man wissen sollte um den Code korrekt anpassen zu können. Ich kann doch jetzt nicht auf gut Glück dir ein Beispiel herzaubern ohne zu wissen auf was du aufbaust.

Mit str, str_replace() kannst du hier gar nicht Arbeiten wenn du sagen wir Hallo in <a href="#">Hallo</a> umwandeln möchtest. Verwende die PHP Funktion https://de2.php.net/manual/de/function.preg-replace.php
Diese ermöglicht dir den Einsatz von Regulären Ausdrücken (auch Regular Expressions bzw. abgekürzt RegExp), mit deren Hilfe man Mengen und Untermengen von Zeichenketten über bestimmte Regeln beschreiben kann.
Das hört sich nun sehr theoretisch an, doch so kompliziert sind Reguläre Ausdrücke in Wirklichkeit gar nicht.

TheRob
PostRank 5
PostRank 5
Beiträge: 274
Registriert: 10.06.2008, 11:44
Wohnort: Wetzikon

Beitrag von TheRob » 29.01.2009, 04:11

Nicht das gelbe vom Ei, aber es funktioniert erstmal

Code: Alles auswählen

function litebox_rel&#40;$content&#41; &#123;
	
	$searchfor = '/<img.*?&#40;alt="&#91;^"&#93;*"|src="&#91;^"&#93;*"&#41;.*?&#40;alt="&#91;^"&#93;*"|src="&#91;^"&#93;*"&#41;.*?\/>/';
	$replacewith = '<a rel="LightBox&#91;postimages&#93;" href="$1>$0</a>';
	if &#40;is_single&#40;&#41; === TRUE&#41;&#123;
		$content = preg_replace&#40;$searchfor, $replacewith, $content&#41;;
		$content = str_replace&#40;'href="src="','href="',$content&#41;;
	&#125;
	return $content;
&#125;
add_filter&#40;'the_content', 'litebox_rel'&#41;;

bloddy newbie
PostRank 4
PostRank 4
Beiträge: 171
Registriert: 18.05.2006, 20:15

Beitrag von bloddy newbie » 29.01.2009, 12:37

hier nimm mal den:

Code: Alles auswählen

$str = preg_replace &#40;
	"#&#40;<img.*src=&#91;\"'&#93;&#123;1&#125;&#40;&#91;^\"'&#93;*&#41;&#91;\"'&#93;&#123;1&#125;.*/?>&#41;#siU", 
	"<a href=\"$2\" rel=\"Lightbox&#91;serie&#93;\">$1</a>", 
	$str
&#41;; 
Der Ausdruck setzt jedoch voraus, dass die Verlinkung im SRC Attribut mittels umschließenden " oder ' geschieht.

Grüße BN

TheRob
PostRank 5
PostRank 5
Beiträge: 274
Registriert: 10.06.2008, 11:44
Wohnort: Wetzikon

Beitrag von TheRob » 29.01.2009, 12:44

bloddy newbie hat geschrieben:hier nimm mal den:

Code: Alles auswählen

$str = preg_replace &#40;
	"#&#40;<img.*src=&#91;"'&#93;&#123;1&#125;&#40;&#91;^"'&#93;*&#41;&#91;"'&#93;&#123;1&#125;.*/?>&#41;#siU", 
	"<a href="$2" rel="Lightbox&#91;serie&#93;">$1</a>", 
	$str
&#41;; 
Der Ausdruck setzt jedoch voraus, dass die Verlinkung im SRC Attribut mittels umschließenden " oder ' geschieht.

Grüße BN
Da ich unbekannte Wesen ungern küsse.... DANKE ICH DIR!!!

Funktioniert perfekt. Das was ich benötigte...

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag