Avatar billede Morten Professor
19. januar 2021 - 07:18 Der er 9 kommentarer

Array output laver mine array i hiraki

Hej Håber der er en der kan hjælpe sidder fast i når jeg output min array kommer der en overall div med det samme i så jeg ikke kan lave float for hver primary div <div class="******">
<div  class="******"><div  class="******">
<div  class="******"><div  class="******">
<div  class="******"></div></div></div></div></div>
</div>

den skulle have været

<div  class="******"></div>
<div  class="******"></div>
<div  class="******"></div>
<div  class="******"></div>
<div  class="******"></div>

$content = array();
        foreach ($getShowDataFluen as $flue_data) {
            $img_atts = wp_get_attachment_image_src($flue_data->image_url, 'thumbnail');
            $content[] = '<div class="layout-container">
            <div class="layout-headline-container"><h1>'.$flue_data->headline.'</h1></div>
            <a href="../flueopskrifter/?post_id='.$flue_data->post_id.'">
                <div class="layout-image-container">
            <img src="'.$img_atts[0].'"></div>
            </a>
            <div class="layout-text-container">'.substr($flue_data->big_text, 0, 80 )."...".'</div>
            </div>';


        }
        return implode("",$content);

Håber det giver mening det jeg prøver at forklare. Sidder bare fast ...... Mega træls

Med venlig hilsen
Morten
Avatar billede ejvindh Ekspert
19. januar 2021 - 08:08 #1
Ser i hvert fald, at du lige mangler et ' i denne linje:

<div class="layout-text-container">'.substr($flue_data->big_text, 0, 80 )."...".'</div>

Mon ikke den skal være:

<div class="layout-text-container">'.substr($flue_data->big_text, 0, 80 ).'"...".'</div>
Avatar billede Morten Professor
19. januar 2021 - 08:58 #2
Hmm
Det har ikke lykkedes endnu. er her nu

$content[] = '<div class="layout-container">
            <div class="layout-headline-container"><h1>'.$flue_data->headline.'</h1></div>
            <a href="../flueopskrifter/?post_id='.$flue_data->post_id.'">
                <div class="layout-image-container"><img src="'.$img_atts[0].'"></div>
            </a>
            <div class="layout-text-container">'.substr($flue_data->big_text, 0, 80 ).'...</div>';
            $content[] = '</div>';
Avatar billede Rune1983 Ekspert
20. januar 2021 - 07:17 #3
Har prøvet at omskrive dit kode. Prøv se hvad den siger.
<?php
$content = array();
foreach ($getShowDataFluen as $flue_data) {

    $img_atts = wp_get_attachment_image_src($flue_data->image_url, 'thumbnail');
    ob_start();
    ?>
    <div class="layout-container">
        <div class="layout-headline-container"><h1><?php print $flue_data->headline; ?></h1></div>
            <a href="../flueopskrifter/?post_id=<?php print $flue_data->post_id; ?>">
                <div class="layout-image-container">
                    <img src="<?php print $img_atts[0]; ?>">
                </div>
            </a>
        <div class="layout-text-container"><?php print substr($flue_data->big_text, 0, 80 ); ?>...</div>
    </div>
    <?php
    $content[] = ob_get_contents();
    ob_end_clean();
   
}
?>
Avatar billede Morten Professor
20. januar 2021 - 13:05 #4
Hej Rune

hmm mærkeligt det virkede desværre ikke kan jeg have gjort noget et sted eller er det ikke bare der problemet er?
Kan det være fordi jeg har været nød til at ligge det i en array. da det er et wordpress plugin med en shortcode. Men det vises med en shortcode derfor var jeg nød til lave en array med oplysningerne, så jeg kunne return den.
Håber det giver mening det jeg prøver at forklare :)
Avatar billede Rune1983 Ekspert
20. januar 2021 - 13:18 #5
Pas. Prøver at komme med lidt inputs som du måske kunne bruge.
prøv dette.
<?php
ob_start();
foreach ($getShowDataFluen as $flue_data) {
    $img_atts = wp_get_attachment_image_src($flue_data->image_url, 'thumbnail');
    ?>
    <div class="layout-container">
        <div class="layout-headline-container"><h1><?php print $flue_data->headline; ?></h1></div>
            <a href="../flueopskrifter/?post_id=<?php print $flue_data->post_id; ?>">
                <div class="layout-image-container">
                    <img src="<?php print $img_atts[0]; ?>">
                </div>
            </a>
        <div class="layout-text-container"><?php print substr($flue_data->big_text, 0, 80 ); ?>...</div>
    </div>
    <?php
}
$Output = ob_get_contents();
ob_end_clean();

print $Output;
?>
Avatar billede Morten Professor
21. januar 2021 - 10:18 #6
Hej Rune

Jeg satte en table rund om det og så virkede det.
Lidt mærkeligt

Tak for dine input genialt man kan lave det med ob_get_contents();
I stedet for at sætte det ind med $content[] så kan man skrive det mere rent, med ob_get_contents

Med venlig hilsen
Morten
Avatar billede michael_stim Ekspert
21. januar 2021 - 10:37 #7
Man skal bruge output buffer meget forsigtigt, da den laver en ny kopi og derfor kan bruge meget hukommelse ved store output.
Avatar billede Morten Professor
21. januar 2021 - 15:27 #8
Hej Michael

Ville lige høre hvordan kan man bruge den for meget bare så jeg ved hvordan, man undgår det.
Pluginet bliver brug til at lave fluetrins beskrivelser en liste over fluer.
Det der vil komme "meget af" Er lidt som en oversigt med et billede, en overskrift og lidt tekst 80 tegn. Er der noget jeg skal tage højde for? Man kommer nemlig til en anden side uden return men et direkte kald igennem en foreach
Avatar billede michael_stim Ekspert
21. januar 2021 - 15:34 #9
Har ikke lavet nogle decideret tests, men det er der sikkert mange på nettet der har. Pröv dig frem, bliver siden langsom, så tänk i andre baner.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester