Suchen & ersetzen mittels PHP JS-Dateien online bearbeiten
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
code
datei
ersetzen
file
folgendes realisieren
handbuch
helfen
http
jemand
lust
quiz
sagen
schaf
schleife
server
sprache
stelle
url
wahl
wissen
-
Hallo Lima-City Community,
ich würde gerne in PHP folgendes realisieren und schaff's nicht allein (was heißt ihr ich schaf'fs nicht, ich bin kläglich gescheitert):
Und zwar will ich mittels PHP in einem Script eine Zeichenfolge Suchen & Ersetzen. Dabei geht es um die Sprachwahl. In meiner Javascript-Datei (umfassend ca. 2800 Zeilen) ist ein Codeschnipsel über die gesamte Länge verteilt. Diesen Codeschnipsel will ich Suchen und Ersetzen, mittels PHP. Der aktuelle Codeschnipsel lautet ganz einfach:
"en"
Ich möchte aber, dass man die Sprache wählen kann, dass heißt man wählt einer des Sprachen aus, und je nachdem wie die Wahl ausfällt steht dann anstatt dem "en" ein "de", "fr", "la", "it", "pl", oder "es".
Nachdem der Codeschnipsel aber geändert wurde muss das PHP-Script aber wissen wie der Neue lautet, da kommt das "Suchen" ins Spiel. Eine If-Schleife könnte im JS-Code nach den Codeschnipseln suchen und den vorhandenen durch den neuen ersetzen. Ich stelle mir das so vor:
http://shorten.lima-city.de/beispiel.png
Ich hoffe es hat einer Lust mir zu "helfen", ich mag eigentlich nicht wenn ich nicht mal Ansatzweise mir selber helfen kann.
Edit: So, ich habe jetzt ein paar Links gesammelt die mir bzw. uns helfen können:
http://phpforum.de/php/php-handbuch/static/function.str-replace.html
http://phpforum.de/php/php-handbuch/static/function.file-put-contents.html
http://phpforum.de/php/php-handbuch/static/function.file-get-contents.html
Noch ein Edit:
Dank den Links hab ich jetzt ein gewisses "Grundmodell" auf niedrigerem Neviau.
HTML:
<form action="PHP-DATEI" method="post"> Alt:<input type="text" size="17" name="original"> Neu:<input type="text" size="17" name="neu"> <input type="submit" value="Ändern"> </form>
PHP:
<?php $search = $_POST["original"]; $replace = $_POST["neu"]; $file = "quiz.js", FILE_USE_INCLUDE_PATH; $content = file_get_contents($file); $content = str_replace($search, $replace, $content); $fh = fopen($file, "w"); $content = fputs($fh, $content); fclose($fh); $lines = explode("\n", $content); foreach($lines as $key => $line) { if(strlen(trim($line)) < 1) { unset($lines[$key]); } } $content = join("\n", $lines); ?>
Allerdings bekomme ich einen "Internal Server Error". Kann mir jemand sagen was falsch ist?
Gruß,
Alexander
Beitrag zuletzt geändert: 12.7.2013 21:58:38 von shorten -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Den 500er wirst du deswegen bekommen:
$file = "quiz.js", FILE_USE_INCLUDE_PATH; $content = file_get_contents($file);
Das ist syntaktisch völliger Käse.
<?php $search = $_POST['original']; $replace = $_POST['neu']; $file = file_get_contents('quiz.js', FILE_USE_INCLUDE_PATH); $content = str_replace($search, $replace, $file); $fh = fopen($file, 'w'); $content = fputs($fh, $content); fclose($fh); $lines = explode('\n', $content); foreach($lines as $key => $line) { if(strlen(trim($line)) < 1) { unset($lines[$key]); } } $content = join("\n", $lines);
Den Rest des Textes habe ich bewusst nicht gelesen ;)
Beitrag zuletzt geändert: 13.7.2013 21:26:13 von fabo -
Warum das denn!? Wenn du nicht helfen willst dann helf nicht aber bitte nicht sowas :( und es wird eigentlich nicht ein 500er herbeigeführt sondern sollte es einen Parse Error geben.
-
mal ne gänzlich andere frage,
wenn du den "content" in eine db schreibst und dem script ein
"meinschript.php?lang=XX"
übergibst der dann inne db den entsprechenden content zieht kannste dir den krempel sparen
tabelle:
id | content | lang 1 | ....... | en 2 | ....... | de
und generierst die Seite dann entsprechend, und arbeitest im "quiz.js" mit php variablen
meinevalue = <?php echo $meineVar; ?>;
das includen des JS 'quiz.js' vor ende des schließenden </body> Tags einfügen.
oder du machst das ganze generell in JS via jQuery.find(); on action deiner selectbox via listener
http://api.jquery.com/find/
Beitrag zuletzt geändert: 14.7.2013 7:14:56 von n0tiert -
shorten schrieb:
Warum das denn!? Wenn du nicht helfen willst dann helf nicht aber bitte nicht sowas :( und es wird eigentlich nicht ein 500er herbeigeführt sondern sollte es einen Parse Error geben.
Da bei Lima-City das Error-Reporting standardmäßig deaktiviert ist, gibt es einen 500er Fehler und keinen Parse-Error.
Wenn du nicht helfen willst dann helf nicht aber bitte nicht sowas :(
Das habe ich getan ;) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage