Miten voisin lisätä johonkin PHP muuttujaan HTML tageja, esim: tällä tapaa(joka ei toimi...): $muuttuja="<a href=$linkki></a>"; (tuo $linkki muuttuja olisi saatu jostain formista).
Tarkoitus olisi sitten lisätä HTML-tiedoston <bodyyn> tuo muuttuja @muuttuja, jolloin tarkoitus olisi saada siihen aikaiseksi linkki muuttujan @linkki määräämään osotteeseen...
Kellään jotain apuja jompaan kumpaan probleemaan? Kiitos
(tossa jälkimmäisessä ongelmana on että jos yritän kirjottaa PHP:lla HTML tiedostoon, tulee kaikki teksti sinne ihan tiedoston loppuun, eikä bodyyn)
HTML-tagit ovat ihan normaalia tekstiä, joten toki niitä voi asettaa muuttujien arvoiksi. Ne pitää tulostaa, koska eihän selain niitä muuten koskaan tule näkemään. PHP suoritetaan palvelimen puolella, ei selaimessa.
Sitä paitsi eihän mikään ohjelmointikieli anna muuttijien arvoja näkyviin ennen kuin ne tulostetaan, vai olenko väärässä?
Juu, kiitos vastauksista. Ensimmäinen ongelma ratkesikin näköjään, johtui kai siitä että käytin hrefissä merkkiä " kun olisi pitäny käyttää merkkiä '
Toinen ongelma ei ole ratkennut kunnolla, mutta näköjään sinne </html> tagin jälkeenkin kirjotetut tagit toimivat, mutta siinä joutuu aina uudestaan määrittämään esim. divin asetukset, kun lisätään uutta tietoa sinne PHP:lla. Kätevää olisi jos pystyisin suoraan bodyn div-tagien sisään tulostamaan PHP:n fwritellä.
Älä kirjoita suoraan HTML-tiedostoon, vaan sisällytä haluamasi sisältö PHP:llä sivua suorittaessa.
jumitusta kirjoitti:
näköjään sinne </html> tagin jälkeenkin kirjotetut tagit toimivat
Se että tuollainen sattuu jossain toimimaan ei todellakaan tarkoita, että niin kannattaisi tehdä.
fwrite kirjoittaa tiedoston loppuun ainakin jos tiedosto on avattu fopen("sivu.html","a") tyylillä. Siispä jos välttämättä haluat luoda staattisen html-sivun niin sivun voisi kasata "osissa" esim.
... $filu=fopen("sivu.html","w"); fwrite($filu,$sivun_ylaosa); //<html><head> jne. fwrite($filu,$keskiosa); //esim. formista saadut linkit fwrite($filu,$sivun_alaosa); //</body></html> fclose($filu);
Edit:korjaus
Jäynis kirjoitti:
fwrite kirjoittaa tiedoston loppuun ainakin jos tiedosto on avattu fopen("sivu.html","w") tyylillä.
Ei kyllä tuo pyyhkii koko tiedoston, mutta moodi "a" kirjoittaisi loppuun.
O-hups, tosiaan. Hyvä kun korjasit :)
Kiitoksia vastauksista. Ongelmani ei ratkennut kuitenkaan tai sitten en osaa, olen aika alussa näitten hommien kanssa...
Tarkoitus olisi, että sivulle voisi lisätä linkkejä tekstikentän avulla, eli ne aiemmatkin linkit säilyisivät ja sitten lisättäisiin sinne uusia perään.
Onko olemassa mitään määritettä PHP:n fwriteen tai muuhun joka esim. etsisi tietyn kohdan PHP-tiedoston avaamasta html-dokumentista ja kirjoittaisi siihen kohtaan, eikä loppuun, vaikka että HTML:dokumentissa lukis jotain tyyliin: location=linkit ja sit fwritellä kirjotettaisiin tohon "linkit" kohtaan...jotain tommosta haen.
Kirjoita ja lue linkit sivulle ulkoisesta lähteestä (tiedosto/tietokanta).
Esimerkiksi näin voisi toteuttaa tuon.
<html> <head> <title>Linkkejä sivulle</title> </head> <body> <?php $linkit = file("linkit.txt"); $maara = count($linkit); echo "<ul>"; for($a = 0; $a < $maara; $a++){ echo "<li><a href=\"" . $linkit[$a] . "\">Linkki{$a}</a></li>"; } echo "</ul>"; ?> </body> </html>
linkit.txt voisi olla seuraavanlainen tuotos.
etusivulle.php toiselle_sivulle.php
Kiitoksia paljon Teuro! Sain jutskani toimimaan tuolla keinolla.
Tai näin:
<?php $links = file('linkit.txt', FILE_IGNORE_NEW_LINES); ?> <html> ... <body> <ul> <?php foreach ($links as $url): ?> <li><a href="<?php echo $url; ?>"><?php echo basename($url, '.php'); ?></a></li> <?php endforeach; ?> </ul> </body> </html>
Etunahan tässä on se, että kun opetetaan suorilta käsin toiminnallisuuskoodin ymppääminen sivun alkuun, saadaan iskostettua selkeä jaottelumalli eikä törmätä myöhemmin surullisenkuuluisaan headers already sent -ilmoitukseen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.