Suche auf lima-city
-
in: Dropdown Menü mit Rechten/ MySql Daten
geschrieben von wgames
keine Ahnung wie Du Deine "Rechte" gespeichert hast, als String oder als Int
aber vom Prinzip her doch ganz einfach so:
if ( $navtop_rechte == 'admin') { echo $navtop_admin; }
also den Menü-Teil, der nur für Admin zu sehen sein soll
in eine eigene Variable ablegen ($navtop_admin)
und diese nur ausgeben, wenn entsprechende Rechte vorhanden.
-
in: subid an href url mit preg_replace anfügen ?
geschrieben von wgames
vielen Dank, das ist Spitze !!!
ich habe das jetzt aber noch in einen einzelnen Funktions-Aufruf zusammen geführt
iden ich einfach die img Prüfung mit in die linkcallback() Funktion am Ende rein habe.
// ---------------------------------------------------- function linkcallback($match) { global $SUBID; $url = str_replace('&', '&', $match[3]); if(strpos($url, 'mailto:') !== false) return $match[0]; $oldurl = $url; $url = preg_replace('/([?&])subid=([^&]+)/i', "\\1subid=$SUBID", $url); if($oldurl == $url) { $url .= ((strpos($url, '?') === false) ? '?' : '&') . "subid=$SUBID"; } $url = str_replace('&', '&', $url); // ---------------------- if (preg_match('|<img (.+?)([/]?)>|i', $match[5], $imgmatch)) { $imgbody = trim($imgmatch[1]); if(strpos($imgbody, ' alt=') === false) { $imgbody .= ' alt=""'; } $match[5] = "<img $imgbody />"; } // ---------------------- return "<a {$match[1]}href={$match[2]}$url{$match[2]}{$match[4]}>{$match[5]}</a>"; } // ----------------------------------------------------
so muss ich nicht 2 verschiedene Funktionen aufrufen .... :=)
DANKE !!!
-
in: subid an href url mit preg_replace anfügen ?
geschrieben von wgames
Super, vielen Dank
das funktioniert soweit schon ganz gut, jetzt habe ich aber noch das Problem,
wenn in der URL schon eine &subid=yyyyy drin ist,
dann wird mit dem Code oben nochmal &subid=xyz dazu angehängt
zudem möchte ich das Ergebnis valide für XHTML 1.0 Transitional haben
bisher habe ich
+ das mit den & anstatt nur & in URL Parameter
+ und dem Close IMG Tag mit Slash am Ende />
+ und wenn fehlendes alt="" in IMG Tag einfügen
- aber "falsche" subids werden nicht ersetzt ?
habe ich jetzt so gemacht:
<?php // -------------------------------------------------------------- header("Content-Type: text/html; charset=utf-8"); // -------------------------------------------------------------- $text = ' <br /> Test1 <a href="test123.php?subid=zzz&aaa=bbb"><img src="bild123.jpg" alt="Info / Test" border="0"></a> <br /> Test2 <a href="test456.php?x=yyy&subid=xxxxx"><img src="bild456.jpg" /></a> <br /> Test3 <a href=\'test789.php\'><img src=\'bild789.jpg\' border=\'0\'></a> '; $pattern = '/<a (.*)href=([\'"])(.+)\\2([^>]*)>(.*)<\/a>/iU'; $SUBID = 'xyz'; function match_callback($match) { global $SUBID; ## print "<br /> DEBUG \$match \n"; ## print "<pre style=\"background:#DEDEDE;\">".htmlentities(print_r($match,true))."</pre>\n"; ## print "<br />\n"; $url = $match[3]; if(strpos($url, 'mailto:') !== false) { $out = $match[0]; } else { if (strpos($url,'subid=') === false) { $url .= ((strpos($url, '?') === false) ? '?' : '&') . 'subid='.$SUBID.''; } else { $url = preg_replace('/subid=(.+)([\'" &])/iU', 'subid='.$SUBID.'\\2', $url); } if (!preg_match('/<img(.*)(\/)>/Ui', $match[5])) { $match[5] = str_replace('>','/>',$match[5]); } if (!preg_match('/alt=/Ui', $match[5])) { $match[5] = str_replace('/>',' alt="" />',$match[5]); } $out = "<a {$match[1]}href={$match[2]}$url{$match[2]}{$match[4]}>{$match[5]}</a>"; $out = preg_replace('/ {2,}/', ' ', $out); $out = str_replace('&','&',$out); $out = str_replace('&amp;','&',$out); } return $out; } // -------------------------------------------------------------- $text_new = preg_replace_callback($pattern, 'match_callback', $text); // -------------------------------------------------------------- print "<br />\n"; print "<br /> Vorher: \n"; print "<br />\n"; print "<pre>".htmlentities(print_r($text,true))."</pre>\n"; print "<br />\n"; print "<br /> Nachher: \n"; print "<br />\n"; print "<pre>".htmlentities(print_r($text_new,true))."</pre>\n"; print "<br />\n"; print "<br />\n"; print "<br />\n"; // -------------------------------------------------------------- ?>
die Ausgabe ist
Vorher: <br /> Test1 <a href="test123.php?subid=zzz&aaa=bbb"><img src="bild123.jpg" alt="Info / Test" border="0"></a> <br /> Test2 <a href="test456.php?x=yyy&subid=xxxxx"><img src="bild456.jpg" /></a> <br /> Test3 <a href='test789.php'><img src='bild789.jpg' border='0'></a> Nachher: <br /> Test1 <a href="test123.php?subid=zzz&aaa=bbb"><img src="bild123.jpg" alt="Info / Test" border="0"/></a> <br /> Test2 <a href="test456.php?x=yyy&subid=xxxxx"><img src="bild456.jpg" alt="" /></a> <br /> Test3 <a href='test789.php?subid=xyz'><img src='bild789.jpg' border='0' alt="" /></a>
soweit ja ganz OK ... bis auf das nicht Ersetzen der "falschen" subids
ich verstehe nicht warum das nicht funktioniert:
// --------------------------- if (strpos($url,'subid=') === false) { $url .= ((strpos($url, '?') === false) ? '?' : '&') . 'subid='.$SUBID.''; } else { $url = preg_replace('/subid=(.+)([\'" &])/iU', 'subid='.$SUBID.'\\2', $url); } // ---------------------------
.... EDIT ....
?!? komisch, wenn ich das auf den kompletten HTML anwende, nicht auf die url, dann geht's ?!?
$text_new = preg_replace_callback($pattern, 'match_callback', $text); $text_new = preg_replace('/subid=(.+)([\'" &])/iU', 'subid='.$SUBID.'\\2', $text_new);
dann werden "falsche" subids zu meiner "xyz" ersetzt ... ?
<br /> Test1 <a href="test123.php?subid=xyz&aaa=bbb"><img src="bild123.jpg" alt="Info / Test" border="0"/></a> <br /> Test2 <a href="test456.php?x=yyy&subid=xyz"><img src="bild456.jpg" alt="" /></a> <br /> Test3 <a href='test789.php?subid=xyz'><img src='bild789.jpg' border='0' alt="" /></a>
hä? ... warum geht das an der Stelle aber nicht bei Anwendung auf $url ... ?
... EDIT 2 ...
weil die $url nach dem Wert von subid= ggf. kein Zeichen mehr besitzt, das aber im Pattern verlant wird.
so gehts dann doch:
// --------------------------- if (strpos($url,'subid=') === false) { $url .= ((strpos($url, '?') === false) ? '?' : '&') . 'subid='.$SUBID.''; } else { $url .='"'; $url = preg_replace('/subid=(.+)([\'" &])/iU', 'subid='.$SUBID.'\\2', $url); $url = rtrim($url,'"'); } // ---------------------------
einfach ein Zeichen an $url dran hängen,
dann preg_replace laufen lassen und
dann das angehängte Zeichen dann wieder entfernen
:) ... oOo ... -
in: Liste mit deutschen Social-Bookmark Diensten
geschrieben von wgames
das kommt auf die XX vor EURO an .. also auf die Kosten
Wenn man halbwegs flink mit Copy+Paste ist, kann man das selber sicher auch machen
das Eintragen geht also relativ flott, schätze so ca. 2 bis 3 Minuten je Eintrag
also BSP für je 2 Link-Einträge bei 50 Dienste = ca. 2-3 Stunden (inkl. je Login mit Captcha)
allerdings muss man sich auch vorher bei den Social-Bookmark-Diensten anmelden
und bei vielen auch noch Aktivierungs-Link in Anmelde-Email klicken
da würde ich je DIenst ca. 2 bis 5 Minusten rechnen ... mindestens (inkl. Captcha)
(je nachdem wie lange es dauert bis die Aktivierungs-Email an-kommt)
also BSP für 50 Anmeldungen bei SB-Dienste = auch ca. 2-3 Stunden
alles zusammen schätze ich den Aufwand für 50x Anmeldung + je 2 Links eintragen
auf ca. 4 - 6 Stunden ... habs aber auch nicht ausprobiert
ist dann halt die Frage, ob man die Zeit selber "arbeiten" will (kann)
oder jemand Anderes dieses für Geld machen lassen
Aber wenn es jemand Anderes macht, weiss man nicht ob und wie "gut" es gemacht wird
selber machen hat man halt mehr "Kontrolle" über das, was letztlich eingetragen wird.
-
in: subid an href url mit preg_replace anfügen ?
geschrieben von wgames
Hallo
ich möchte in einem HTML-Code (String)
an alle Links (href=) eine SubId hinten an den Link anffügen.
leider bekomme ich es nicht hin mit preg_replace()
bisher versucht habe ich:
preg_replace('/href=["|\'](.*)["|\']/i', '{$1}&subid=xyz', $img_htm);
also ich will an die URL innerhalb href einen Parameter &subid=xyz anfügen
das funktioniert aber so nicht
Beispiel ...
aus einem String wie:
<br /> Tipp: <a href="ziel1.php" target="_blank">Empfehlung1</a> <br /> Tipp: <a href="ziel2.php?info=bla" target="_blank">Empfehlung2</a> <br /> Tipp: <a href='ziel3.php' target='_blank'>Empfehlung3</a>
soll sowas werden:
<br /> Tipp: <a href="ziel1.php?subid=xyz" target="_blank">Empfehlung1</a> <br /> Tipp: <a href="ziel2.php?info=bla&subid=xyz" target="_blank">Empfehlung2</a> <br /> Tipp: <a href='ziel3.php?subid=xyz' target='_blank'>Empfehlung3</a>
Problem ist auch, wenn der Link noch keine Parameter wie ?info=bla hat,
dann muss ich den SubID Parameter ja mit ? anhängen, also so ?subid=xyz
ansonsten mit &subid=xyz also einen URL-GET-Patameter hinzufügen
ausserdem soll es für Links funktionieren die mit href="..." oder href='...' geschrieben sind
also egal ob einfaches oder doppeltes Anführungszeichen (oder auch gar keins?)
jemand ne Idee, wie ich das angehen soll ?!