 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
14.03.2005, 16:51
|
#1
|
|
TP-Supporter
Registriert seit: Jun 2004
|
An die Reg Spezialisten
moing,
hab mich in die funktion nie richtig reinarbeiten können, deshalb frag ich mal einfach nach, da ihr immer so schnell helft
brauche folgendes:
Vorgabe:
...index.php?language=de&sid=xxxxxxxxxxx
...index.php?language=de&sid=xxxxxxxxxxx&bla=test
...index.php
...index.php?bla=test
Ergebnis:
soll alles übernommen werden und falls language oder sid vorkommt, diese rausgeschnitten werden.
__________________
Ich bin bereit, meinem Schöpfer gegenüberzutreten.
Ob mein Schöpfer ebenso bereit ist, diese Begegnung über sich ergehen zu lassen, ist eine andere Sache.
|
|
|
14.03.2005, 17:22
|
#2
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
Reg ... Regex?
Da gibts nichts zu regexen!
language, sid und bla kommen als Get-Variablen rein
Du musst nur prüfen, ob die einzelne jeweils reinkommt: isset()
- wenn ja, dann über nimm sie zB. in myLanguage, mySid, myBla
- wenn nein, lasse die my... wie sie ist oder setze evt. den Default-Wert
Danach arbeitest Du mit my...
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
14.03.2005, 17:34
|
#3
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
@321 das kommt darauf an, wie man die links verarbeitet.
Wenn es gesammelte links sind und man will z.B. die sessiondaten entfernen, damit man sie in einer DB ablegt, dann kann das schon sinnvoll sein.
Ich bin auch kein regspezialist, also würde ich die Url zerlegen
$params=substr($url,strpos($url,"?")+1);
$pars=explode("&",$params);
$newparams=substr($url,0,strpos($url,"?"));
for($i=0;$i<count($pars);$i++) {
if(!strpos($pars[$i],"sid=") && !strpos($pars[$i],"language=")) $newparams.=$pars[$i].'&';
}
$newparams=substr($newparams,0,strlen($newparams)-1);
|
|
|
14.03.2005, 17:47
|
#4
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
Du sagst $params und $newparams
ich sagte $my... die man meinetwegen auch in eine (1) Var. zusammenfügen kann
Wichtig scheint mir, dass er nicht Teile löscht, wenn sie nicht rein kommen
was er danach damit anstellt wissen wir (noch?) nicht.
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
14.03.2005, 17:52
|
#5
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
wie die heissen ist doch wurscht 
ich wollte nur zeigen, wie man die url zerlegen kann.
Wir wissen ja wirklich nicht, was er damit bezwecken will ... 
|
|
|
14.03.2005, 17:56
|
#6
|
|
TP-Supporter
Registriert seit: Jun 2004
|
hab ich was von links gesagt?
nur weil das so aussieht, muß es kein link sein...
stellt euch einfach vor, es ist ein string...
__________________
Ich bin bereit, meinem Schöpfer gegenüberzutreten.
Ob mein Schöpfer ebenso bereit ist, diese Begegnung über sich ergehen zu lassen, ist eine andere Sache.
|
|
|
14.03.2005, 18:03
|
#7
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
so, waehrend ihr euern netten smalltalk haltet  hab ich ein wenig probiert. leider stolpere ich ueber die wechsel der suchmuster. da reihenfolge und anzahl variieren (koennen), ist mein reg_exp ungeeignet.
vielleicht schaut ja der z.b. michl zufaellig mal rein. 
langsam interessiert mich die loesung auch sehr!
hardy
|
|
|
14.03.2005, 18:07
|
#8
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
ok, ich versuchs *** vorstell ***
ok ich habs : es ist ein string 
|
|
|
14.03.2005, 18:13
|
#9
|
|
TP-Supporter
Registriert seit: Jun 2004
|
Zitat:
|
Zitat von theo
vielleicht schaut ja der z.b. michl zufaellig mal rein. 
|
ich hab nur die lösung, dass man den string zerschneidet bei ? und &
und die einzelnen "cuts" überpfüft, ob da language oder sid drin steht. aber das hat einfach steinzeitcode beigeschmack 
__________________
Ich bin bereit, meinem Schöpfer gegenüberzutreten.
Ob mein Schöpfer ebenso bereit ist, diese Begegnung über sich ergehen zu lassen, ist eine andere Sache.
|
|
|
14.03.2005, 18:19
|
#10
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
ich schaffs in 2 zeilen:
$a=preg_replace("/language=(.*?)\&/si", "", $a);
$a=preg_replace("/sid=(.*?)\&/si", "", $a);
|
|
|
14.03.2005, 18:27
|
#11
|
|
TP-Supporter
Registriert seit: Jun 2004
|
wie gesagt, kein plan von reg, was pasiert wenn nach lang... oder sid.... kein & kommt?
__________________
Ich bin bereit, meinem Schöpfer gegenüberzutreten.
Ob mein Schöpfer ebenso bereit ist, diese Begegnung über sich ergehen zu lassen, ist eine andere Sache.
|
|
|
14.03.2005, 18:29
|
#12
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
dann gehts nicht mehr  aber vielleicht hilft der Ansatz den anderen regexern
|
|
|
14.03.2005, 18:32
|
#13
|
|
TP-Supporter
Registriert seit: Jun 2004
|
hoffen wir es mal
edit: wo wir schon bei fehlern sind, es gilt auch noch zu beachten, dass lang.. und sid.. garnicht vorhanden sein können
edit2: weils schon so spannend ist, ne kurze erklärung.
es soll auf ner startseite "boxen" geben, welche der kunde selber anlegt. in diesen boxen, kann er gewisse produkte, themen usw. "hervorheben" welche im momentan wichtig erscheinen.
das ganze soll natürlich so einfach wie möglich zu verwalten sein, also soll er einfach den text eingeben, der ihm vorschwebt und den link zu diesem "artikel".
den link bekommt er, in dem er selber das gewünschte ziel im browser auswählt, diesen kopiert und ins formular setzt. dabei kann ich von ihm nicht verlangen, dass er diese beiden sachen per hand entfernt.
ergo, muß man diese rausfiltern...
__________________
Ich bin bereit, meinem Schöpfer gegenüberzutreten.
Ob mein Schöpfer ebenso bereit ist, diese Begegnung über sich ergehen zu lassen, ist eine andere Sache.
Geändert von Weede (14.03.2005 um 18:44 Uhr).
|
|
|
14.03.2005, 18:46
|
#14
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Weyhe
|
Ich habe das auch mal für einen Referercounter gebraucht.
(das geht sicher eleganter, aber das klappt *g*)
Das Array $block_arguments kann beliebig erweitert werden - diese Argumente werden dann einfach gelöscht.
PHP-Code:
$block_arguments=ARRAY('s=','sid=','session=','phpsessid=','highlight=','highlightuser=','pagenum=',
'#post','threadview=','page=','styleid=','boardid=','postdays=','postorder=',
'start=','xid=');
$url=explode("/",$referer);
$domain=$url[0];
$d=explode("?",$url[1]); // Querystring extrahieren
$qstring=explode("&",strtolower($d[1]));
// unerwünschte URL-Parameter entfernen (um gleichmäßiges Zählen zu ermöglichen)
if (is_array($qstring))
{
$anzahl_argumente=sizeof($qstring);
for ($i=0;$i<$anzahl_argumente;$i++)
{
if (substr($qstring[$i],0,1)=="&") $qstring[$i]=substr($qstring[$i],1);
if (substr($qstring[$i],strlen($qstring[$i]),1)=="&") $qstring[$i]=substr($qstring[$i],0,strlen($qstring[$i])-1);
foreach ($block_arguments AS $b)
{
if (strpos($qstring[$i],$b)!==false) unset($qstring[$i]);
}
}
// und wieder zusammensetzen
$querystring="";
if (is_array($qstring)) $querystring=trim(implode("&",$qstring));
if (substr($querystring,0,1)=="&") $querystring=substr($querystring,1);
if (substr($querystring,strlen($querystring),1)=="&") $querystring=substr($querystring,0,strlen($querystring)-1);
$link=$d[0];
if (strlen($querystring>1)) $link.='?'.$querystring;
}
echo "Bereinigter String:".$link;
|
|
|
14.03.2005, 19:55
|
#15
|
|
TP-Supporter
Registriert seit: Jun 2004
|
wie weiter oben schon erwähnt, war mir diese lösungsmöglichkeit klar, wollte wissen ob und wie es mit regexp möglich ist.
aber danke für code, muß ich nicht selber schreiben, falls das mit reg ned klapt 
__________________
Ich bin bereit, meinem Schöpfer gegenüberzutreten.
Ob mein Schöpfer ebenso bereit ist, diese Begegnung über sich ergehen zu lassen, ist eine andere Sache.
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| 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.
HTML-Code ist aus.
|
|
| | |