2009-05-07 1 views

Antwort

4

Sie auch str_relpace mit dem $ count-Parameter verwenden: $ str = 'djriojnrwadaiaushd'; echo str_replace ('j', '', $ str, 1);

Ups, Entschuldigung .. mein Schlechter.


Hier ist eine echte Art und Weise:

$str = 'djriojnrwadoiaushd'; 
$pos = strpos($str, 'j'); 
if($pos !== FALSE) 
{ 
    echo substr_replace($str, '', $pos, 1); 
} 
+0

Das letzte Argument begrenzt nicht die Anzahl der Ersetzungen, es zählt sie. –

1

Versuchen Sie folgendes:

$needle = 'j'; 
if (($pos = strpos($str, $needle) !== false) { 
    $str = substr($str, 0, $pos) . substr($str, $pos+strlen($needle)); 
} 
+0

Eine Kombination dieser mit Antwort des mishac ordentlich sein würde. –

3

Verwenden Sie einfach Substrings:

<?php 

$str = 'djriojnrwadoiaushd'; 
$remove = 'j'; 

$index = strpos($str, $remove); 
if ($index !== false) 
    $str = substr($str, 0, $index) . substr($str, $index + 1); 

echo $str; 

?> 
0

strpos() gibt die Position der ersten Nadel im Heuhaufen zurück, d. das erste j in deiner Zeichenfolge. Es ist dann ziemlich einfach, diesen Brief einfach zu entfernen.

2

Stehen Sie zurück - ich kenne reguläre Ausdrücke;

$newString = preg_replace("/".preg_quote($stringToReplace)."/", '', $inputString, 1); 
+0

Sie sollten vielleicht in Erwägung ziehen, preg_quote() auf $ stringToReplace aufzurufen, andernfalls könnten seltsame Dinge passieren, z. wenn $ stringToReplace war. * –

+0

Sehr wahr. Danke Tom. Beitrag bearbeitet, um das zu reflektieren. – PaulJWilliams

0

Sie auch die Tatsache, dass Strings in PHP Arrays verwenden können, und entfernen Sie das Element mit dem 'j' entsprechen:

$str[strpos($str, 'j')] = null; 
+1

Interessanter Ansatz. Wenn es kein j gibt, wird dies wahrscheinlich versuchen, den ersten Buchstaben zu entfernen. – thomasrutter

+0

Wenn es gedruckt wird, zeigt es ein Zeichen, das Firefox nicht erkennt, aber für meinen Zweck funktioniert es. – Sam152

+0

Dies funktioniert nicht mit Multi-Byte-Zeichen. – Gumbo