Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: teele - 12.05.24 - klo:15.07

Otsikko: Otsikon uudistaminen nettisivulla php:n avulla
Kirjoitti: teele - 12.05.24 - klo:15.07
php:llä pitäisi korvata pikku pätkä nettisivun tekstiä. Tämä versio ei näytä toimivan

Koodia: [Valitse]

<?php

function replaceVariable($body$s$e$replacement)
{
  while(
strpos($body$s) )
  {
    
$start strpos($body$s);
    
$end strrpos($body$e);
    
$body substr_replace($body,  $replacement $start+4$end-$start+4);
  }
  return 
$body;
}

$var "333 uusiotsikko 444";
$body file_get_contents(&#39;index2.html&#39;);
$newBody1 replaceVariable($body"333 "" 444" ,$var); 
file_put_contents(&#39;index3.html&#39;, $newBody1 );
?>



Ongelma vaikuttaa olevevan se, että korvattavan alussa on sama tokeni kuin korvaavassa tekstissä vaikka lisäyspaikan alkua on kokeilun takia jopa siirretty 4 merkkiä eteen päin.

Käytännön ongelma voisi olla vaikka tällainen

<h1>  vanha otsikko </h1> 

halautaan korvata nettisivulla tekstillä

<h1> uusi otsikko </h1>

Kokeilujen mukaan ongelma on se, että korvattava pätkä alkaa samalla tokenillä kuin korvaava. Kyse lienee niin yleisestä toimesta, että sen pitänee hoitua helposti eli tässä yrittämässäni versiossa on varmaan jotain periaatteellista häikkää.

Miten oikeassa nettimaailmassa uusittaisiin php:llä joku otsikko nettisivulla.

Muokk.

Kahden tokenin rajoittaman tekstin korvaaminen näyttäisi onnistuvan kikkailun avulla

Koodia: [Valitse]
function replaceVariable($body, $s, $e, $replacement)
{
  while(strpos($body, $s) )
  {
    $start = strpos($body, $s);
    $end = strrpos($body, $e);
    $body = substr_replace($body,  $replacement , $start, $end-$start+4);
  }
  return $body;
}

$var = "555 uusiotsikko 444";
$body = file_get_contents('index2.html');
$newBody1 = replaceVariable($body, "333 ", " 444" ,$var); //////// äääääääääääääääääääääääääääääääääääääää
$var = "333 uusiotsikko 444";
$newBody2 = replaceVariable($newBody1, "555 ", " 444" ,$var);
file_put_contents('index3.html', $newBody2 );


Mutta luulisin, että asia on niin yleinen, että sen hoitamiseen ei tarvita kikkailua. En oikein uskaltaisi tällaisessa tilanteessa laittaa säiettä ratkaistuksi.


Otsikko: Vs: Otsikon uudistaminen nettisivulla php:n avulla
Kirjoitti: Jere Sumell - 13.06.24 - klo:20.00
Onko pakko nimenomaan PHP:llä korvata otsikko? Javascripti melkein tehokkaampi ja yksinkertaisempi toteutuskielenä.
Otsikko: Vs: Otsikon uudistaminen nettisivulla php:n avulla
Kirjoitti: Jere Sumell - 13.06.24 - klo:20.16
Vaikka nyt on kesä jo kohta jussi painaa päälle, pitää sitä kait kesän aikana jonkinmoisen ohjelmointitauon jälkeen ohjelmoida pari riviä.

HTML5/Javascript -ratkaisuni malliksi.
Koodia: [Valitse]
<!DOCTYPE html>

<html lang="fi">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
function vaihdaotsikko()
{
var uusiOtsikko = "Vaihdettu otsikko";
otsikko.innerHTML = uusiOtsikko;
}
</script>
</head>


<body>
<h1 id="otsikko">Nykyinen otsikko</h1>
<form><input type="button" name="btn" value="Vaihda otsikko" onclick="vaihdaotsikko()">
</form>

</body>
</html>
Otsikko: Vs: Otsikon uudistaminen nettisivulla php:n avulla
Kirjoitti: teele - 15.06.24 - klo:10.10

Kiitos esismerkistä, pitääpä katsoa javascript-vaihtoehtoa  :)