HTML/PHP/AJAX/JS - [php] generator
gaku - 14-12-2007, 15:13
picer, Kod: | <img src="img/b_w.gif>"</td></tr></table> | coś tu nie pasuję ?
Widmo - 15-12-2007, 02:08
brawo!
gaku - 15-12-2007, 08:57
przyglądnąłem się temu kodowi jeszcze raz i często pojawiają się takie błędy. Popraw je
picer - 09-09-2008, 20:57
Witam ponownie
Jeśli mam taki ciąg znaków:
Cytat: | rnbqkbnr/pp1ppppp/6p1/8/8/8/PPPPPPPP/RNBQKBNR |
I chciałbym to poupychać do 64 zmiennych począwszy od $a8, $b8,(...)$h8 aż do $a1, $b1,(...)$h1. Pragnę gdy jest literka aby zmienna przyjmowała jej wartość, natomiast gdy w ciągu znaków znajduje się cyfra oznaczała ona ilość kolejnych zmiennych o wartości np. 'none'
Wiemtylko , że mogę podzielić ten ciąg znaków na porcje które powinny się znaleźć w kolejnych liniach.
Kod: | list($linia[8],$linia[7], $linia[6], $linia[5], $linia[4], $linia[3], $linia[2], $linia[1]) = explode("/", $ciagznakow); |
Nie wiem w jaki sposób nadać te wartości. Wiecie jak mi pomóc?
[ Dodano: 11-09-2008, 23:55 ]
To może inne pytanie. Jak podzielić wyraz na litery, tak aby każda litera miała swoją zmienną?
Seraphe - 12-09-2008, 13:58
picer napisał/a: | To może inne pytanie. Jak podzielić wyraz na litery, tak aby każda litera miała swoją zmienną? |
Żeby podzielić używasz explode().
Co do przyporządkowania, zapewne trza foreach() użyć.
gaku - 12-09-2008, 15:03
teoretycznie jeżeli masz np
$zmienna="wartosc";
to
$zmienna[0] odpowiada pierwszej literce, $zmienna[1] odpowiada drugiej... i tak dalej
picer - 12-09-2008, 19:02
No tak ale jeśli moja zmienna to: $wyraz[1] a chcę przypisać nowym zmiennym każdą literkę?
explode() tu nie zadziała, bo nie ma separatora(delimiter)
gaku - 12-09-2008, 20:22
wybacz, ale możesz mi rozrysować to ?
Radek - 12-09-2008, 22:04
picer, co Ty chcesz osiagnac? do czego Ci to? Chcesz zapelniac pamiec przypisujac kazdej literce ze stringa zmienna? Bez sensu. Ale sprobuj tego:
Kod: |
$string = 'asaakn3en32db3dbsdf3dvasdXSDHsdsd';
$alfa = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
for ( $i = 0, $l = strlen($string); $i < $l; $i++ )
{
eval('$'.$alfa[$i].' = ' . $string[$i] . ';');
}
echo $a;
echo $b;
|
pisane na sucho.
picer - 13-09-2008, 02:18
Co chcę osiągnąć?
Skrypt przerabiający notację szachową FEN na obraz pozycji(ułożenia pionków).
Krótko z czym to sie je:
Mamy tabele z kwardratów 8x8. Kwadraty mają naprzemian dwa kolory: biały i czarny. Jest 8 lini, które są oddzielane znakiem "/". Jeśli odczytujemy literę to odpowiada ona jakiemuś obrazkowi pakowanemu do kwadratu, jeżeli natomiast odczytamy cyfrę, to oznacza ona ilość kolejnych pustych kwadratów.
Przykładowy zapis FEN: rnbq1bnr/2pppp2/8/7p/8/8/PPPPPPPP/RNBQKBNR
Póki coś to spłodziłem coś takiego:
Kod: |
<?php
$kolor = 0;
$fen = 'rnbq1bnr/2pppp2/8/7p/8/8/PPPPPPPP/RNBQKBNR';
list($linia8, $linia7, $linia6, $linia5, $linia4, $linia3, $linia2, $linia1) = explode('/', $fen);
echo '<table border="0">';
for($nr = 8; $nr > 0; $nr--) //powtarza czynność dla każdej linii
{
echo '<tr>';
for($nr2 = 7; $nr2 >= 0; $nr2--) //powtarza czynność dla każdej wartości z linii
{
if(is_numeric('$linia' . $nr . '[' . $nr2 . ']') and '$linia' . $nr . '[' . $nr2 . ']' > 0 and '$linia' . $nr . '[' . $nr2 . ']' <= 8) //jeśli wartość należy do zbioru liczb od 1 do 8
{
while('$linia' . $nr . '[' . $nr2 . ']' == 0)
{
if($kolor == 0)
{
echo '<td bgcolor="E8CEA5" width="32" height="32"></td>'; //białe
$kolor++;
}
elseif($kolor == 1)
{
echo '<td bgcolor="A58B5A" width="32" height="32"></td>'; //czarne
$kolor--;
}
else{break; echo'błąd';}
'$linia' . $nr . '[' . $nr2 . ']' - 1;
}
}
elseif(is_numeric('$linia' . $nr . '[' . $nr2 . ']') and '$linia' . $nr . '[' . $nr2 . ']' < 0 or '$linia' . $nr . '[' . $nr2 . ']' > 8) //jeśli wartość nie należy do zbioru od 1 do 8
{
break; echo 'błąd';
}
else //jeżeli wartść nie jest liczbą
{
if($kolor == 0)
{
echo '<td bgcolor="E8CEA5" width="32" height="32"><img src="img/' . '$linia' . $nr . '[' . $nr2 . ']' . '.gif"></td>'; //białe
$kolor++;
}
elseif($kolor == 1)
{
echo '<td bgcolor="A58B5A" width="32" height="32"><img src="img/' . '$linia' . $nr . '[' . $nr2 . ']' . '.gif"></td>'; //czarne
$kolor--;
}
else{break; echo 'błąd';}
}
}
echo '</tr>';
}
echo '</table>';
|
Jak możecie się domyśleć to nie działa tak jak bym chciał. - Tworzy się tabelka a do każdego pola ładuje się <img src="img/' . '$linia' . $nr . '[' . $nr2 . ']' . '.gif">(w źródle widać np. <img src="img/$linia8[7].gif">)
Radek - 13-09-2008, 12:29
bo obejmujesz zmienne w ' i ' - a tak się nie robi.
Kod: | echo '<img src="img/' . $linia . $nr[$nr2] . '.gif" />'; |
picer - 14-09-2008, 22:02
no fakt...
Ale jak cały proces przejdzie wychodzi teraz tak:
Kod: | <img src="img/.gif"> |
[ Dodano: 15-09-2008, 00:22 ]
Ale jeśli wywołam przez echo np. $linia8[7] to pokaże mi odpowiednia wartość.
[ Dodano: 22-09-2008, 00:20 ]
Wiem co jest nie tak. Jeśli wywołuję:
Kod: | $linia . $nr . '[' . $nr2 . ']' |
to wynik jest taki że: zmienna $linia jest pusta bo nie jest zdefiniowana.
Ja chcę wywoływać zmienną o postaci:
Kod: | $linia + $nr + [$nr2] |
Czyli np. zmienną
I moje pytanie teraz: jak zrobić żeby $linia nie oznaczało wartości zmiennej $linia tylko żeby było elementem w nazwie zmiennej.
|
|
|