Wątek zablokowany 2014-10-17 08:35 przez dzek69.

Skrypt, który ma omijać wykonywanie tego co jest pomiędzy znakami cydzysłowia nie działa

0

Mam taki skrypcik, który tłumaczy instrukcje np. jeżeli jest jesli to przetłumacza ją na if czy coś jakby spolszczenie do php i teraz mam taki problem, że próbowałem coś zrobić, żeby nie tłumaczył tego co się znajduje pomiędzy znakami "" i nie wiem jak to zrobić próbowałem czegoś takiego.

 <?


$plik =  fopen("./../test/aaaa.m","r");
$plik2 = fopen("./../test/aaaa.php","a+");
fwrite($plik2,"<?\n");
$i=0;
//zmienna potrzebna do przechowywania czy aktualnie przetwarzamy cudzysłów czy nie
$cydzyslow = false;
while ( $czytaj = fgets($plik) ) {
  $ile = explode(" ",$czytaj);
  //dzieli wiersz na wyrazy
  for ($i=0;$i <= count($ile);$i++) {
    //jeżeli dany wyraz zaczyna się od znaku cydzysłowia to neguje cydzysłów
    if ($ile[$i][0] == chr(34) ) {
      $cudzyslow = !$cydzyslow;
    }
    if ($cydzyslow == false) {
      $napis = okresl_instrukcje($ile[$i]);
    }
    else {
    $napis = $ile[$i];
    }
    $napis = $napis . " ";
    fwrite($plik2,$napis);

  }
  fwrite($plik2,"\n");
}

fwrite($plik2,"?>");





function okresl_instrukcje($napis) {
if ($napis == "zalacz") return "include";
else if ($napis == "jesli") return "if";
else if ($napis == "w_przeciwnym_razie") return "else";
else return $napis;


}


?>
0

nie.
po prostu tego nie rób na tym poziomie wiedzy, ucz się czegoś, co Cię nauczy pisania w ogóle (składnia, podstawowa biblioteka, czystość kodu, OOP), a potem bierz się za takie algorytmy.

to tak jakbyś bez umiejętności dodawania zaczął czytać jakąś zaawansowaną książkę o fizyce - bez sensu, nic się nie nauczysz, zmarnujesz czas

0

w SPACJA końcu udało mi się to zrobić

tak wygląda kod

<?


$plik =  fopen("./../test/aaaa.m","r");
$plik2 = fopen("./../test/aaaa.php","a+");
fwrite($plik2,"<?\n");
$i=0;
//zmienna potrzebna do przechowywania czy aktualnie przetwarzamy cudzysłów czy nie
$cudzyslow = 1;
while ( $czytaj = fgets($plik) ) {
  $ile = explode(" ",$czytaj);
  //dzieli wiersz na wyrazy
  for ($i=0;$i <= count($ile);$i++) {
    $dlugosc = strlen($ile[$i]);
    //jeżeli dany wyraz zaczyna się od znaku cydzysłowia to neguje cydzysłów
    if ($ile[$i][0] == chr(34) or $ile[$i][$dlugosc-1] == chr(34) ) {
      $cudzyslow = !$cudzyslow;   
    }
    if ($cudzyslow == false) {
      $napis = okresl_instrukcje($ile[$i]);
    }
    else {
    $napis = $ile[$i];
    }
    $napis = $napis . " ";
    fwrite($plik2,$napis);

  }
  $cudzyslow = 0;
  fwrite($plik2,"\n");
}

fwrite($plik2,"?>");

function okresl_instrukcje($napis) {

if ($napis == "zalacz") return "include";
else if ($napis == "jesli") return "if";
else if ($napis == "w_przeciwnym_razie") return "else";
else return $napis;


}


?> 

1 użytkowników online, w tym zalogowanych: 0, gości: 1