Ich verwendete ein altes Content-Management-System, das CKEditor mit CKFinder verwendet, mit dem Sie Bilder auf den Server hochladen können. Allerdings wird die vollständige URL in das Inhaltsfeld eingefügt und später gespeichert die Datenbank.PHP Bildspeicherort ändern
Ich habe vor kurzem mein Content-Management-System neu aufgebaut und wieder mit CKEditor mit CKFinder. Ich bin gerade dabei, die Datenbank zu verschieben und die Daten neu anzuordnen. Aber ich habe bemerkt, dass die URL für diese Bilder falsch wäre.
Meine Frage ist also, ist es möglich, die URL zu suchen und zu ersetzen, und könnte mehrmals pro String sein? Es gibt auch einen zufälligen Hash-Schlüssel in der Mitte, wobei ich mir nicht sicher bin, wie ich mich fortbewegen soll, weshalb ich diese Frage stelle.
Die URL wäre (ungeschnitten)
http://www.oldwebsite.com/aknsnd8123nakndkna/upload/images/image.jpg
Ich möchte die URL extrahieren und den Pfad zu ändern:
http://www.newwebsite.com/images/uploaded/image.jpg
ich bin sicher nicht, wie ich den Start bekommen würde und Ende, während der mittlere Teil übersprungen wird. Oder ist es möglich, am Ende einfach das image.jpg zu bekommen, und ich werde am Anfang den neuen Weg einschlagen.
Ich habe bisher nur 2 Zeilen Code, aber zu berücksichtigen, dass es HTML ist.
$content = '<h1>'.$page['Page_Title'].'</h1>';
$content .= $page['Page_Content'];
Dies ist, was $page['Page_Content']
kehrt:
<p style="text-align: center;">
<img alt="" src="http://www.oldwebsite.com/aknsnd8123nakndkna/upload/images/image.jpg" style="width: 700px; height: 493px;" />
</p>
<p style="text-align: center;">
The Sports Stadium is an impressive addition to any event, catering for several sports keeping children entertained for hours.
</p>
Sie haben nicht viele Informationen zur Verfügung gestellt ... Möchten Sie ein Migrationsskript schreiben, um Daten in einer Art Datenbank oder einem Speichersystem zu ändern? –
Ich schreibe gerade das Migrationsskript, ich hole die Daten aus der alten Datenbank, ordne sie um und füge sie in die neue Datenbank ein. Wofür ich Hilfe suche, ist während des Umarranging-Teils, bevor ich es an die neue Datenbank sende. – Sickaaron
Da alles andere scheint klar zu sein ... Sie müssen eine PHP-Bibliothek zum Herstellen einer Verbindung zu Ihrer Datenbank finden (PDO hat Treiber für mehrere Engines), verwenden Sie DOMDocument oder einen ähnlichen Parser, um Links aus HTML zu extrahieren und einen regulären Ausdruck zu verarbeiten die tatsächlichen Ersetzungen. –