• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

php help, string aus variable entfernen

Mitglied seit
21.07.2002
Beiträge
1.525
Reaktionen
0
gibt es ne möglichkeit
ein zeichen aus einem in einer variablen enthaltenen text in php zu entfernen?

also variable
$text="<font color=\'#000000\'>"

so und aus $text will ich die \ raushaben
 
Mitglied seit
02.08.2002
Beiträge
2.781
Reaktionen
0
du suchst also die funktion stripslashes() :)
 
Mitglied seit
21.07.2002
Beiträge
1.525
Reaktionen
0
hm.... das problem ist, die variable wird extern geladen, muss ich die vorher öffnen?
einfach
stripslashes($text);
klappt nicht
 
Mitglied seit
08.07.2000
Beiträge
707
Reaktionen
0
PHP:
function unsuck(& $text)
{
   if (strpos($text, "\'")){
      do{
         $text = str_replace("\'", "'", "$text");
      }while(strpos($text, "\'"));
   }else if (strpos($text, "\"")){
      do{
         $text = str_replace('\"', '"', "$text");
      }while(strpos($text, '\"'));
   }
   //$text = str_replace('\n', '', "$text");
  return($text);
}
hf gl
Das kannst du noch erweitern wie du möchtest. Es hat den Vorteil, dass du auch \' entfernen kannst/entfernst.
 

Morag

Guest
implode("",explode("\",$text))
müßte auch gehen, habs jetzt aber nicht explizit getestet.
 
Mitglied seit
21.07.2002
Beiträge
1.525
Reaktionen
0
jo danke euch, alle hier aufgeführten möglichkeiten funktionieren :p
 

Wiseguy3

Guest
Das fehlte noch:
Code:
<?
$old = "\"Hal\lo!\"";
$new = preg_replace(',\\\,',"",$old);
echo "<pre>".$old."\n".$new."</pre>";
?>
Das ergibt folgenden Output:
"Hal\lo!"
"Hallo!"

;)
 
Mitglied seit
08.02.2001
Beiträge
3.554
Reaktionen
2
oder noch einfacher:


$text = str_replace("/", "", $text);
 

Wiseguy3

Guest
Original geschrieben von zYkLuS[XdT]
oder noch einfacher:


$text = str_replace("/", "", $text);
Wenn überhaupt, dann schon so:
$text = str_replace("\\", "", $text);

Wär halt schön gewesen, wenn der Thread fehlerfrei geblieben wäre. :/
 
Mitglied seit
02.08.2002
Beiträge
2.781
Reaktionen
0
alle str_replace sachen sucken doch derbe, da da _alle_ "/" ersetzt werden, was ja wohl nicht geschehen sollte - stripslashes ersetzt wenigstens nur die slashes, die vor ', " und / stehen :) ausserdem wird str_replace wohl ein ganzes stück langsamer sein...
 

Wiseguy3

Guest
Original geschrieben von EnimaN
alle str_replace sachen sucken doch derbe, da da _alle_ "/" ersetzt werden, was ja wohl nicht geschehen sollte - stripslashes ersetzt wenigstens nur die slashes, die vor ', " und / stehen :) ausserdem wird str_replace wohl ein ganzes stück langsamer sein...
Stripslashes ist was für Turnbeutelvergesser, echte Männer schreiben sich das selbst:

Code:
<?
$old = "\\\"Hal\lo1\\\" \\'Ha\llo2\\' \\\Hall\o3\\\\";
$new = preg_replace(",\\\([\"'\\\]),","$1",$old);
echo "<pre>\$old: ".$old." \n\$new: ".$new."</pre>";
?>

ESCAPE ME BABY, ONE MORE TIME... *sing*


Ach ja, sollte das wirklich mal jemand nachvollziehen wollen:
$old: \"Hal\lo1\" \'Ha\llo2\' \\Hall\o3\\
$new: "Hal\lo1" 'Ha\llo2' \Hall\o3\
Frisch aus meinem Buch "13 Monate Regexps und ich". Demnächst in einer Buchhandlung in Ihrer Nähe... :D

Haha, selbst das Forum kommt nicht mit den ganzen Slashes klar. :D

Wenn ihr den Code also in der "richtigen" Form sehen wollt, müsst ihr das Post hier quoten und dann schauen, wies in der Textbox aussieht.
 
Mitglied seit
02.08.2002
Beiträge
2.781
Reaktionen
0
der übersicht halber würde ich trotzdem die funktion "stripslashes" vorziehen :P zumal ich behaupt, dass die performanz dort ebenfalls besser ist
 

Busta_inaktiv

Guest
Original geschrieben von Wiseguy
Wenn ihr den Code also in der "richtigen" Form sehen wollt, müsst ihr das Post hier quoten und dann schauen, wies in der Textbox aussieht.
von dir gequotetes wird nicht mitgequotet :)
 
Mitglied seit
08.07.2000
Beiträge
707
Reaktionen
0
Code:
<?
$old = "\\\"Hal\lo1\\\" \\'Ha\llo2\\' \\\Hall\o3\\\\";
$new = preg_replace(",\\\([\"'\\\]),","$1",$old);
echo "<pre>\$old: ".$old." \n\$new: ".$new."</pre>";
?>
n00b :D
 
Oben