str_replace

Sasser

Erfahrenes Mitglied
Wie kann ich eine Variable durchsuchen, ob am Anfang oder am Ende eine # ist und wenn ja diese entfernen? Zusaätzlich sollte der komplette Datensatz nach ## durchsucht werden und durch # ersetzt werden!

Das letztere habe ich bereits dadurch gelöst:

PHP:
$weaponprogress = str_replace("$var","",$row[weaponprogress]);
$weaponprogress = str_replace("##","#",$weaponprogress);
 
Ist das mein richtiger Ansatz?

PHP:
if (substr($weaponprogress, 0) == "#")
{
$weaponprogress = substr($weaponprogress,0,-1);
}
if (substr($weaponprogress, -1) == "#")
{
$weaponprogress = substr($weaponprogress,-1,-1);
}
 
Zuletzt bearbeitet:
Der Ansatz ist okay, aber komplizerit. Probier dein Problem mit einem regulären Ausdruck zu lösen.

Was steht noch so in deiner Variable?
 
Ich habe jetzt den folgenden Lösungsweg genommen, der ist zwar komplizierter, aber IO finde ich:

PHP:
if (substr($weaponprogress, -1) == "#")
{
$weaponprogress = substr($weaponprogress, 0, -1);
}
if (substr($weaponprogress, 0, 1) == "#")
{
$weaponprogress = substr($weaponprogress, 1);
}

Irgendwelche Einwände? :)
 
Sieht gut aus :)

Hab aber noch nen kleinen Vorschlag, wie das Ganze kompakter aussieht ^^

PHP:
if (substr($weaponprogress, -1) == "#")
  $weaponprogress = substr($weaponprogress, 0, -1);

if (substr($weaponprogress, 0, 1) == "#")
  $weaponprogress = substr($weaponprogress, 1);

Wenn eine Bedingung oder Schleife nur eine Abfolge im Inneren hat, können die geschweiften Klammern weggelassen werden :) Also auch wenn du z.B:
PHP:
for($i = 0; $i <= 10; $i++)
  if($i == 2)
    echo "i ist 2";
  else
    echo "i ist nicht zwei";

In dem Fall hat die for-Schleife auch nur eine Abfolge oder wie man das nennt

Greetz
ToXiC
 
Zurück