Heim > Fragen und Antworten > Hauptteil
Ich brauche deine Hilfe, damit das funktioniert. Ich muss zwei PHP-Codes kombinieren, um zu funktionieren. Ich bin ein PHP-Anfänger und danke Ihnen vielmals für jeden Rat, den Sie mir geben können. Vielen Dank im Voraus!
Beschreibung: Ich möchte Inhalte (etwas Text) von 8 Seiten in meiner index.php anzeigen und die erhaltenen Inhalte in zufälliger Reihenfolge anzeigen. Ich wusste nicht, wie ich auswählen sollte, wo mit dem Abrufen der Textdaten für die Seite begonnen werden soll, also habe ich die Zeichenoption gewählt (beginnt nach 1305 Zeichen, zählt 375 Zeichen).
Code 1 (Wählen Sie 8 Seiten aus und zeigen Sie sie in zufälliger Reihenfolge an)
<?php $files = [ "folder/content1.php", "folder/content2.php", "folder/content3.php", "folder/content4.php", "folder/content5.php", "folder/content6.php", "folder/content7.php", "folder/content8.php" ]; shuffle($files); foreach ($files as $key => $file) { require($file); } ?>
Code 2 (Inhalt von Seite abrufen, beginnend mit Zeichen 1305, nur 375 Zeichen anzeigen)
<?php $section1 = file_get_contents("folder/content1.php", FALSE, NULL, 1305, 375); echo $section1; ?> </p> <?php $section2 = file_get_contents("folder/content2.php", FALSE, NULL, 1305, 375); echo $section3; ?> </p> <?php $section3 = file_get_contents("folder/content3.php", FALSE, NULL, 1305, 375); echo $section3; ?> </p> <?php $section4 = file_get_contents("folder/content4.php", FALSE, NULL, 1305, 375); echo $section4; ?> </p> <?php $section5 = file_get_contents("folder/content5.php", FALSE, NULL, 1305, 375); echo $section5; ?> </p> <?php $section6 = file_get_contents("folder/content6.php", FALSE, NULL, 1305, 375); echo $section6; ?> </p> <?php $section7 = file_get_contents("folder/content7.php", FALSE, NULL, 1305, 375); echo $section7; ?> </p> <?php $section8 = file_get_contents("folder/content8.php", FALSE, NULL, 1305, 375); echo $section8; ?> </p>
Mein Zusammenführungscode funktioniert nicht
<?php $files = [ "folder/content1.php", "folder/content2.php", "folder/content3.php", "folder/content4.php", "folder/content5.php", "folder/content6.php", "folder/content7.php", "folder/content8.php" ]; shuffle($files); foreach ($files as $key => $file) file_get_contents("$files", FALSE, NULL, 1305, 375); { require($file); } ?>
P粉3492227722023-09-16 10:24:06
如果您对代码进行更好的格式化,可能会更容易理解。特别是最后两行可能最好像这样编写:
foreach ($files as $key => $file) { file_get_contents("$files", FALSE, NULL, 1305, 375); } require($file);
然后您可以看到问题所在:调用file_get_contents()
的结果没有被赋值给任何变量,所以它只是消失了;而您看到的是最后一个require()
的结果,它传递了上一个foreach
循环中$file
的最后一个值。
实际上,file_get_contents()
的调用看起来有问题 - 第一个参数应该是一个字符串,但您传递的是一个嵌入在字符串中的数组的名称,这有点奇怪 - 我没有尝试过,所以不确定会发生什么。
在我看来,无论循环中只有一个语句,都最好使用大括号 - 这样做可以更容易避免错误。