Ładowanie jako html i konwertowanie znaków.

0

Jak w tym kodzie zrobić aby np *** zmieniały się na [b] lub [/b] w zależności czy były wcześniej, oraz żeby dane z bazy ładowały się jako html.

<?php
function db_connect($host,$user,$pass,$db) {

   $mysqli = new mysqli($host, $user, $pass, $db);

   $mysqli->set_charset("utf8");

   if($mysqli->connect_error) 
     die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());

   return $mysqli;
}

$mysqli = db_connect('localhost','login','hasło','database');

$sql = "SELECT * FROM tabela";
$result = $mysqli->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo '<div class="col-md-12" style="margin-top: 20px;">
                                '. nl2br($row['strona']) .'
                            </div>';
    }
} else {
    echo "0 results";
}
$mysqli->close();
?>	
2

Co do renderowania HTML z bazy, poczytaj o
stripslashes oraz htmlspecialchars_decode
https://www.php.net/manual/en/function.stripslashes.php
https://www.php.net/manual/en/function.htmlspecialchars-decode.php
Co do tych gwiazdek to nie rozumiem, opisz dokładniej.

0

No chodzi o to żeby te gwiazdki zmieniały się na [b] lub [/b]

1

No ale l skąd gwiazdki się mają brać?

No chodzi o to żeby te gwiazdki zmieniały się na [b] lub [/b]

Losowo?
Jaka jest klucz zamiany na jedno lub drugie?

0

str_replace("**", "[b]", $html);

1

@axelbest: sam dodałeś warunki brzegowe jak opis sytuacji z choinką. Potem sam dodałeś sobie warunek, że to ma otaczać tekst. Powtarzam, autor nigdzie tego nie opisał.
Wiadomo, że dla działania tagów to złe rozwiązanie. Tylko w poście nie ma słowa o tym, że:

  • mają to być tagi
  • mają mieć tekst pomiędzy
  • ilość ich wystąpień będzie parzysta, a przynajmniej większa niż 1, tak żeby można to było je zastąpić
  • nie wystąpi sytuacja 6 gwiazdek pod rząd gdzie ktoś chciał uzyskać pogrubione 3 gwiazdki
    Itd.

Jest to typowe zjawisko projekcji z psychologii. Sam stworzyłeś opis i warunki na bazie swojego doświadczeń.

0

Nie zgodzę się. Autor pyta o [/b] a rzekomo poprawna odpowiedź tego nie zawiera. Co tu więcej mam dodawać?

2

dobra to zrob to w preg replace i tyle

$string = '**Text****ababa Text**';
$string = preg_replace("/\*\*(.+?)\*\*/is", "[b]$1[/b]", $string);
echo($string);
[b]Text[/b][b]ababa Text[/b]

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