Stránka 1 z 1

PHP - problém s php+html

Napsal: sob 17. črc 2010, 14:33
od Lolllec

Kód: Vybrat vše

$show = "</table></div></div><div class=\"tab-normal-03\">
          <table style=\"border-width: 1px; border-style: dashed\" width=580>
    <tr height=20>
       <td width=27% style=\"text-align: left\"><img src=images/blocks-img/serverstatus/cs.jpg />&nbsp;<font color=yellow>XYZ</font></td>
       <td width=28%>IP: <font color=#00FF00>88.86.113.170:27020</font></td>
       <td width=25%>Mapa: <font color=#00FF00>$server["name"];<\font></td>
       .........takto to ide ďalej....   ";

$content .= "$show";
Toto je kód jedného môjho bloku v United-Nuke. Vysvetlím situáciu:
Je to skript pre zisťovanie stavu herného servera. Pozostáva z dvoch súborov - zdrojový kód skriptu v jednom súbore, a druhý súbor ktorý slúži ako blok a je v ňom zahrnutá výzorový stránka...

Práve robím centrovaný blok... Ale mám problém práve s týmto. Akonáhle do premennej show pridelím všetky tie HTML kódy, a následne tú premennú (skúšal som rôznu syntax, stále nič), nevypíše mi ju, namiesto toho ukončí stránku a vypíše chybu:

Kód: Vybrat vše

Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/.../blocks/block-xyz.php on line 41
(to je presne ten line v ktorom je premenná $server["name"]; tá je načítaná z prvého - zdrojového - súboru).

Ako to mám urobiť, aby to fungovalo?
vďaka za pomoc

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 14:45
od KapaCZ
když pominem že nepouživáš tagy "" , \"\" a kod je zprasenej jak ......., tak by mělo stačit udělat toto:
".$server["name"]."

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 14:56
od Lolllec
Pomohlo to, ďakujem :) Ide o to, že ja som dosť začiatočník v PHP... Túto syntax (html do pphp premennej) vôbec nepoznám...

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 15:07
od bubanek
:lol: na to je jednoduchej trik
v php používej " a v html '

$asdf = "<a href='$neco.php' target='_blank' onclick='funkce()'>text</a>";


atd atd atd

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 15:09
od KapaCZ
:) jde o to že jakýkoliv tag má náké pravidla podle toho kde je použit:

Tvoje verze: !!BAD!!

Kód: Vybrat vše

<tr height=20><tr>
V HTML:

Kód: Vybrat vše

<tr height="20"><tr>
V PHP s příkazem echo"";

Kód: Vybrat vše

echo"<tr height=\"20\"><tr>";

Podle toho si to oprav :)

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 15:13
od bubanek
No jasně, proč to dělat jednoduše když to jde složitě 8-)

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 15:18
od KapaCZ
Co se ti zas nezdá? :lol:

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 15:21
od bubanek
Jenom že by bylo jednodušší místo

Kód: Vybrat vše

echo"<tr height=\"20\"><tr>";
napsat

Kód: Vybrat vše

echo "<tr height='20'><tr>";

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 15:26
od Lolllec
A keď to neupravím, bude to robiť v niektorých prehliadačoch chyby, alebo ako sa to prejaví?

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 15:32
od bubanek
Některé prohlížeče můžou ten parametr ignorovat.

Ergo vždycky tam ty uvozovky měj.

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 15:34
od Highlander
Lolllec píše:A keď to neupravím, bude to robiť v niektorých prehliadačoch chyby, alebo ako sa to prejaví?
Musíš to opravit. Firefox si s tím možná poradí, ale takovej IE si to interpretuje úplně jinak.

Každopadně doporučuji používat v php apostrofy >> '''' a v html uvozovky. Používat apostrofy v PHP je vzhlediska optimalizace výhodnější.

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 15:40
od Lolllec
Dobre. Ďakujem za informáciu. Mám ale ešte jednu otázku.

Blok už funguje, všetko ako má. Je tam ale len jeden server. Zatiaľ to stačí, ale v budúcnosti ich budem potrebovať viac. Časť súboru, kde je definovaná IP a port servera vyzerá takto:

Kód: Vybrat vše

// pripojeni knihovny s tridou PHPrcon
require("rcon.lib.php");

// IP adresa serveru
$server_ip = "1.2.3.4";
// port serveru
$server_port = "23456";
// vytvoreni instance tridy Rcon
$rcon = new Rcon();
$rcon->connect($server_ip, $server_port);
$server = $rcon->Info();
$player = $rcon->Players();
Údaje $server["name"], $server["activeplayers"] a podobne už získava blok zo zdrojového skriptu, t.j. rcon.lib.php.

Ako mám potom vytvoriť ďalšie premenné $server["name"] a podobne, keď chcem aby mi nevypisovalo stále ten jeden server, ale napr. dva?

Ako nováčika ma napadlo jedine tak $server2["name"], lenže to už logicky nemôže fungovať bez ďalších úprav. No ja som ešte fakt neznalec a neviem sa pohnúť.

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 15:53
od bubanek
A musí se $server["name"] a $server["activeplayers"] načítat z toho rcon.lib.php ?

Mě napadlo třeba do nějakého souboru uložit ty definice:

Kód: Vybrat vše

$server1 = array (
  "name" -> "jmeno",
  "activeplayers" -> "neco",
  "ip" -> "1.2.3.4",
  "port" -> "2345" );

$server2 = array (....);

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 16:03
od Lolllec
Nemusí, ale ako by to potom všetko vyzeralo?? Jeden samostatný súbor s týmito údajmi, čo tu píšeš. Druhý ten rcon.lib a tretí ten blok. To všetko by bolo. Lenže ako to potom poprepájať a tak :D

Navyše, ten $server["activeplayers"] sa musí načítať z rcon.lib, pretože to je premenná, ktorú zisťuje skript - počet hráčov na serveri, to znamená že to nie je konštanta a musí byť stále aktualizovaná skriptom. A keď ju odpojím od rcon.lib, tak nepôjde.

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 16:14
od bubanek
Aha už chápu :) Tak to budeš muset udělat ještě jinak.

Budeš mít třeba

Kód: Vybrat vše

$server1 = array (
  "ip" -> "1.2.3.4",
  "port" -> "2345" );

$rcon1 = new Rcon();

$rcon1 -> connect($server1["ip"], $server1["port"]);
$info1 = $rcon1 -> Info();
$players1 = $rcon1 -> Players();
I když tohle je už dost složité.

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 16:36
od Lolllec
Výborne, mám to :) ďakujem veľmi pekne za pomoc.

PS: v tom arrayi sa používa =>, nie -> :)

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 18:33
od bubanek
Njn, já na to skriptování moc nejsem, já raději webdesign 8-)

Není zač

Re: PHP - problém s php+html

Napsal: sob 17. črc 2010, 20:52
od OndraSter
Highlander píše:Každopadně doporučuji používat v php apostrofy >> '''' a v html uvozovky. Používat apostrofy v PHP je vzhlediska optimalizace výhodnější.
Ještě bych tohle rád rozvedl a upozornil na výše zmíněný ^ "problém":

Veškeré stringy obmotané uvozovkami se v PHP parsují a vyhledávají proměnné (a nahrazují za hodnoty) a what not. Naopak apostrofy jdou přímo do proměnné, PHP už neprochází ten string, neřeší, jestli tam je proměnná nebo ne.

Takže bacha na to. Vždycky je daleko čitelnější napsat a pro PHP rychlejší zpracovat:
$bar = 'foo = ' . $foo . ' & baz = ' . $baz;
než
$bar = "foo = $foo & baz = $baz";
(dobře, tohle ještě jo, ale složitější případy už ne)

Re: PHP - problém s php+html

Napsal: ned 18. črc 2010, 18:13
od arxeiss
Já bych se vyjádřil k tomu co napsal bubu
Bubanek píše:

Kód: Vybrat vše

echo "<tr height='20'><tr>";
Toto je ale přece nevalidní ne? V HTML musí být height="20" a ne height='20'

Re: PHP - problém s php+html

Napsal: ned 18. črc 2010, 18:36
od bubanek
Si to projeď validatorem :wink: