Ich habe den folgenden Text ein paar Mal in meinem xml vorkommen:PHP preg_replace(), um Copyright-Jahr zu ändern
Copyright © 2015.
Ich versuche Regex zu verwenden, um die sich ändern über dem Text dynamisch, um immer das aktuelle Jahr in der endgültigen Ausgabe widerzuspiegeln. Dies ist mein Versuch, und es scheint nicht zu funktionieren:
$finaloutput = preg_replace("/Copyright © [0-9]+/", "test", $finaloutput);
Natürlich, ich bin eine hartcodierte Zeichenfolge („test“) nur für Testzwecke verwenden, da der aktuelle Text bereits 2015 in ihm hat. Also, mein Ziel ist es, dies zu ändern:
Copyright © 2015. Alle Rechte vorbehalten ....
in dieser:
Copyright © Test. Alle Rechte vorbehalten ....
Ist meine Regex falsch?
PS: Nur um jeder ein besseres Gefühl für den Kontext zu geben, hier ist (ein Teil) der XML-Snippet $finaloutput
zugeordnet ist:
<div class="dict_source"><strong>Powered by</strong> <a target="_blank" rel="nofollow" href="http://www.collinsdictionary.com/dictionary/english-spanish">Collins Complete Spanish Electronic Dictionary</a><br>Copyright © 2015 HarperCollins Publishers Limited.</div>
Update: Ich habe versucht, die Antwort von @ angeboten Avinash und schaffte es immer noch nicht, es zum Laufen zu bringen. Um das Problem besser zu veranschaulichen, habe ich einen Online-Tester preg_replace()
ausgegraben. Es ist vorbei bei https://www.functions-online.com/preg_replace.html. Hier ist die Information, die ich in den verschiedenen Eingabefeldern für den Test eingegeben:
$ pattern: '/(Copyright\s+©\s+)[0-9]+/u'
$ Ersatz: '\1test'
$ subject: <div class="dict_source"><strong>Powered by</strong> <a target="_blank" rel="nofollow" href="http://www.collinsdictionary.com/dictionary/english-spanish">Collins Complete Spanish Electronic Dictionary</a><br>Copyright © 2015 HarperCollins Publishers Limited.</div>
Ist es "©" oder die Entität? Sind die Räume auch korrekt? Probieren Sie 'var_dump ($ finaloutput);'. – chris85