Создайте переменные $pathinfo и $random, чтобы получить блок из 15 случайных строк html-файла

Я работаю над сайтом php и хотел бы вывести 15 случайных строк из файла html. До сих пор у меня только 15 строк, но проблема в том, что я получаю код из html-файла, а не 15 строк из текста. Как я могу определить 2 переменные $pathinfo и $random, чтобы написать свой код таким образом, чтобы получить правильное решение?

Мой код:

      <?php  

        $selected_file = $_POST['radio1'];
        // get the filename of the file
        $fileinfo = pathinfo($selected_file);
        $filename = $fileinfo['dirname'] . DIRECTORY_SEPARATOR . $fileinfo['filename'];
        $password = 'code';




    if (isset($_POST['submitradio']))
    { 
         echo '<div class="imageselected">';
         echo '<img src="'.$selected_file.'" /></br>'.PHP_EOL;
         echo '</div>';
        // check to see if a html file named the same also exists
        if(file_exists("$filename.html"))
        {

            echo "<form action='test_result.php' method='post'>";
            echo '<div class="Password">';
            echo 'Type in password to view full Script';

            echo "<label><div class=\"Input\"><input type='password' name='passIT' value='passit'/></div>";
            echo "<input type='submit' name='submitPasswordIT' value='Submit Password'/></div>";
            echo '</div>';
            echo '</form>';
            echo "$filename.html shares the same name as $selected_file";



        $splitTag = "[[mylinebreak]]";
        $html = file_get_contents("$filename.html");
        $newcontent = stri_replace("</div>", $splitTag, $html);
        $newcontent = stri_replace("<br>", $splitTag, $newcontent);
        $newcontent = stri_replace("</h1>", $splitTag, $newcontent);
        $newcontent = stri_replace("</h2>", $splitTag, $newcontent);
        $newcontent = stri_replace("</h3>", $splitTag, $newcontent);
        $newcontent = stri_replace("</h4>", $splitTag, $newcontent);
        $newcontent = stri_replace("</h5>", $splitTag, $newcontent);
        $newcontent = stri_replace("</h6>", $splitTag, $newcontent);
/* and so on ... */
        $newContent = strip_tags($newContent);
        $lines = explode($splitTag);

        for($x = 1;$x<=15;$x++) {

        echo $lines [rand(0, count($lines)-1)]."<br>";
        }

            // end of forloop

            }
            // end of check
              // start Sorrytext

                else
                {
                 echo '<div class="NoScript">';

                    echo "We apologize. No Script available for this movie.";
                    echo '</div>';
                }

             // end Sorrytext
    }
    // End of submitradio
    if($_POST['submitPasswordIT']){
    if ($_POST['passIT']== $password ){
    echo "You entered correct password";
    $dirs = glob("*", GLOB_ONLYDIR);
    $pathinfo = ($dirs.'/'.$lines.'/html');
    include($pathinfo);
    }
    else{
    echo "You entered wrong password";
    }
    }

    ?>

Помощь будет очень ценится:)

Привет.

Я попробовал ваше решение, но оно не сработало. Я ничего от этого не получаю. Не могли бы вы придумать другое решение? Могу ли я не просто определить случайную переменную $, и когда да, как бы я это сделал?

1 ответ

Удаление всех тегов HTML с strip_tags одного будет недостаточно, потому что я предполагаю, что со строками вы подразумеваете не строки в источнике HTML, а строки текста, отображаемые в браузере. Поскольку браузер переносит текст в новую строку, когда не хватает горизонтального пространства, это будет сложной задачей. Но есть некоторые html-элементы, в которых мы точно знаем, что строка прервется, то есть все блок-элементы (div, p, h1,...) и br тег.

Как насчет следующей идеи:

  • заменить все закрывающие теги и br тег с помощью специального тега (например, [[mylinebreak]])
  • удалить все теги, используя strip_tags
  • разделить полученный текст с помощью ранее изобретенного специального тега

Пример:

$splitTag = "[[mylinebreak]]";
$html = file_get_contents("$filename.html");
$newcontent = stri_replace("</div>", $splitTag, $html);
$newcontent = stri_replace("<br>", $splitTag, $newcontent);
$newcontent = stri_replace("</h1>", $splitTag, $newcontent);
$newcontent = stri_replace("</h2>", $splitTag, $newcontent);
$newcontent = stri_replace("</h3>", $splitTag, $newcontent);
$newcontent = stri_replace("</h4>", $splitTag, $newcontent);
$newcontent = stri_replace("</h5>", $splitTag, $newcontent);
$newcontent = stri_replace("</h6>", $splitTag, $newcontent);
/* and so on ... */
$newContent = strip_tags($newContent);
$lines = explode($splitTag);
/* do whatever you want with the $lines array */
Другие вопросы по тегам