Problem mit str_contains in for Schleife

Diskutiere Problem mit str_contains in for Schleife im PHP Forum im Bereich Programmierung; $Datei = " Dies ist der erste <!-- mehrzeilige <!-- <!-- Kommentar --> und dies ist der zweite <!-- mehrzeilige <!-- <!-- Kommentar --> "; $file...
  • Problem mit str_contains in for Schleife Beitrag #1
K
Kauziger
New member
Beiträge
2
Punkte Reaktionen
0
PHP:
$Datei = "
Dies
ist
der
erste
<!--
mehrzeilige
<!--
<!--
Kommentar
-->
und
dies
ist
der
zweite
<!--
mehrzeilige
<!--
<!--
Kommentar
-->
";

$file = htmlspecialchars(file_get_contents('$Datei', FILE_IGNORE_NEW_LINES));
$file = explode("\n", $file);

for($i = 0; $i < count($file); $i++)
{
  if(str_contains($file[$i], '&lt;!--') && str_contains($file[$i], '--&gt;'))
  {
    echo ($i +1);
  }
  elseif(str_contains($file[$i], '&lt;!--'))
  {
    echo ($i +1 . '-');
  }
  elseif(str_contains($file[$i], '--&gt;'))
  {
    echo ($i +1 . '&nbsp;');
  }
}

Ausgabe Zeile:
PHP:
5-7-8-10  16-18-19-21

Hat irgendjemand eine Idee wie ich Zeile 7-8 und 18-19 Ausblenden kann, damit nur noch 5-10 und 16-21 angezeigt wird.
Ach ja, die Position der Kommentarblöcke ist nicht festgelegt, denn das würde ich selbst hinbekommen.
Das heißt, es ist nicht bekannt wieviele Kommentarblöcke es sind und in welcher Zeile sie sich befinden, also dynamisch.
Danke im voraus für die Bemühungen.
 
  • Problem mit str_contains in for Schleife Beitrag #2
S
Sempervivum
Well-known member
Beiträge
760
Punkte Reaktionen
125
ist für mich als Einsteiger nicht nachvollziebar, was genau eine Statusvariable sein soll noch wie ich mit einer Variable prüfen kann, ob ich innerhalb eines Kommentarblocks bin.
Dann erkläre ich es mal: Du definierst eine Variable, z. B. "insideComment" und initialisiert diese mit false: $insideComment = false;. Das wäre dann die Statusvariable, sie gibt jeweils an, ob Du dich innerhalb eines Kommentars befindest. Jedes Mal wenn Du ein öffnendes <!-- findest, prüfst Du, ob sie auf false steht. Ist das das Fall, befindest Du dich noch nicht in einem Kommentar und Du setzt sie auf true. Ist das nicht der Fall, sie steht schon auf true, befindest Du dich schon in einem Kommentar und Du kannst das <!-- verwerfen. Außerdem musst Du natürlich, wenn Du ein schließendes --> findest, die Variable wieder auf false setzen.
Wenn Du mit diesen Hinweisen nicht zum Ziel kommst, dann melde dich wieder.
 
  • Problem mit str_contains in for Schleife Beitrag #3
K
Kauziger
New member
Beiträge
2
Punkte Reaktionen
0
@Sempervivum, dank Deiner Ausführung war ich schnell am Ziel und alles funktioniert. Vielen Dank für Deine Hilfe.
 
Thema:

Problem mit str_contains in for Schleife

Oben Unten