2016-04-22 9 views
2

Ich frage mich, ob was ich brauche, ist sogar möglich. Ich habe eine Zeichenfolge, und ich möchte einen Teil davon durch eine andere Zeichenfolge ersetzen nichts hart aber die Zeichenfolge, die ich ersetzen möchte, hat einige 'dynamische' Zeichen.str_replace mit einem variablen Zeichen

Ich habe eine Zeichenfolge, die enthält:

http://someurl.com/whatever?page= *

wobei * eine beliebige Anzahl

sein kann ich haben müssen:

http://someurl.com/whatever?page= * #/Strauß

wo #/somestring fest einprogrammiert ist

+2

Wenn Sie einen dynamischen String-Abschnitt dort haben Sie bei 'preg_replace()' aussehen wollen und eine einfache regex verwenden für es. – Rizier123

+0

Werden die zusätzlichen Zeichen immer am Ende der Zeichenfolge angezeigt? Wenn dies der Fall ist, können Sie einfach den zusätzlichen Teil anhängen: $ string. = '#/Somestring'; – iainn

+0

die Sache ist, dass die Zeichenfolge eine Menge HTML-Code ist und die Teile, die ich ändern möchte, sind innerhalb dieser Zeichenfolge verteilt – user3813360

Antwort

0

Wie andere vorgeschlagen, dass Sie einen regulären Ausdruck für diese Art von Dingen verwenden könnte; in Ihrem Fall würde ich so etwas wie dies vorschlagen:

$sub = 'http://someurl.com/whatever?page=23'; 
$new = preg_replace('/\?page=([0-9]+)/', '?page=$1#/something', $sub); 

echo $sub; 
echo '</br>'; 
echo $new; 

Er druckt:

http://someurl.com/whatever?page=23 
http://someurl.com/whatever?page=23#/something 
+0

dies funktioniert perfekt. Vielen Dank – user3813360

0

Sie können strpos() verwenden, um die Startposition und Endposition der Zeichenfolge zu finden. Dann verwenden Sie einfach str_replace, um den Link zu bearbeiten.

Schauen Sie sich meine frühere Antwort hier an: PHP To Show Title From Reffering URL In Ihrem Fall sollten Sie nicht strip_tags verwenden, aber der Rest ist ziemlich gleich.