???????? Skrevet 17. juni 2005 Del Skrevet 17. juni 2005 Huff av meg :S Er nok litt for trøtt for å svare på forumer i kveld! Svaret er vel i utgangspunktet nei. PHP kan ikke identifisere en konstant fra tekst, men det er mulig å bruke f.eks. sprintf() for å løse det. Lenke til kommentar
dabear Skrevet 17. juni 2005 Del Skrevet 17. juni 2005 Php har ingen måte å skille konstanter fra andre strings i en heredoc. Uansett ser jeg ikke noen grunn til å bruke heredoc, har du lange tekster, kan du inkludere dem. Med heredoc mister du samtidig: muligheten for funksjonersuttrykk uten å gå ut av og deretter inn av heredoc igjen PHP4 bakover kompabilitet Identerings muligheter. Heredoc gir parse error hvis den er indentert Lenke til kommentar
jorgis Skrevet 17. juni 2005 Del Skrevet 17. juni 2005 PHP4 bakover kompabilitet Heredoc er kompatibel med PHP4, men ikke lenger bakover. Akkurat hva man skal med PHP3-kompabilitet skjønner ikke jeg, da mange viktige funksjoner dukket opp i PHP4. Identerings muligheter. Heredoc gir parse error hvis den er indentert Det er bare siste linje av Heredoc som ikke kan indenteres, innholdet kan godt indenteres så mye man bare vil. Det er i så fall bare en linje som bryter med indent, og det kan man i de fleste tilfeller unngå. Men jeg er enig i at heredoc bør unngås så lenge det er andre alternativer (inkludering o.l.). Rotete syntaks bør unngås. Lenke til kommentar
zokra Skrevet 17. juni 2005 Del Skrevet 17. juni 2005 Når er det best å bruke heredoc ? Ser ikke akkurat noen vits å bruke det ovenfor vanlig echo ' eller ".... Lenke til kommentar
jorgis Skrevet 17. juni 2005 Del Skrevet 17. juni 2005 Jeg bruker helst heredoc så lite som mulig, men f.eks. om man skal echoe ut 150 linjer med CSS eller HTML (gjerne om HTMLen inneholder tekst med ' i seg) så er det ganske greit med heredoc, siden " og ' vil kreve endel escaping og annet tull. Lenke til kommentar
???????? Skrevet 17. juni 2005 Del Skrevet 17. juni 2005 heredoc er veldig kjekt og har mange brusktilfeller... tenk det hvis du skal sette inn en lang html kode i et script og vil ikke avslutte php fordi det skal plasseres inn variabler mange steder. Tenk det i tillegg at du har et javascript f.eks. onClick="alert('Tekst')". Der bruker du både ' og " og for enkelhetsskyld, slik at du slipper å escape " eller ' så bruker du bare heredoc. dabear: selv om du ikke ser nytten nå så kommer du sikkert til å gjøre det hvis du satser mer på php. Videre ble vel PHP 4 lansert i 1998, så hvis noen fortsatt bruker en 7 år gammel versjon av PHP så er neppe heredoc det største problemet, men utrolig mange bugs og mangel på funksjoner. Heredoc er ofte brukt og det er ikke uten grunn at det finnes zokra: som jeg beskrev innledningsvis så er det spesielt nyttig dersom du har ' og " i teksten og ikke vil escape de. Tenk deg hvis du f.eks. bruker en wysiwyg editor og bare klipper og limer et design, da er det nyttig og bare enkelt kunne lime inn et nytt design uten å måtte escape quotes. Lenke til kommentar
zokra Skrevet 17. juni 2005 Del Skrevet 17. juni 2005 Jeg bruker helst heredoc så lite som mulig, men f.eks. om man skal echoe ut 150 linjer med CSS eller HTML (gjerne om HTMLen inneholder tekst med ' i seg) så er det ganske greit med heredoc, siden " og ' vil kreve endel escaping og annet tull. Når dere nevner det, så sjønner jeg vitsen med å bruke det noen ganger... Lenke til kommentar
Twinflower Skrevet 17. desember 2008 Del Skrevet 17. desember 2008 (endret) Apropos heredoc. I dreamweaver så fuckes syntax highlightingen opp når det er javascript i heredoc. Altså, dokumentet går ikke tilbake til php-syntax-highlighting etter hvis det er </script> inne i heredoc. (jeg trenger bare å fjerne siste taggen, >, så løser det seg, men åpenbart ingen løsning) Fantastisk irriterende, og jeg håper det er min feil eller noe og at dere har en god løsning eller noe på det. Edit: Jeg fant en fiks på dette problemet: echo <<<EOF <!-- ?> --> <script type="text/javascript"> **[masse javascript her] </script> **<masse HTML> <!-- <?php --> EOF; Legg merke til at jeg har kommentert inn en stopp og en start av PHP rett etter heredoc starter og rett før det det slutter. Dette "lurer" dreamweaver, men ikke php/html Endret 17. desember 2008 av Twinflower Lenke til kommentar
Peter Skrevet 19. desember 2008 Del Skrevet 19. desember 2008 Du skal sjelden komme i et tilfelle der "variabelen er: $var" vil være nødvendig, fordi når du skiller business logic og presentasjon så kommer ikke jeg på et tilfelle der du vil skrive noe sånt. Lenke til kommentar
JohndoeMAKT Skrevet 23. desember 2008 Del Skrevet 23. desember 2008 echo <<<EOF <!-- ?> --> <script type="text/javascript"> **[masse javascript her] </script> **<masse HTML> <!-- <?php --> EOF; Skal jeg vise deg et alternativ? <?php if ( true ) { ?><script type="text/javascript"> console.log( 'showokara' ); </script> <?php } ?> Hvorfor outputte HTML/JS/CSS i "PHP-mode" når du enkelt kan ?> ? Lenke til kommentar
Rudde Skrevet 23. desember 2008 Del Skrevet 23. desember 2008 Hmm lurer litt på det samme. jeg skal ha en link som kan innehold to ord (2 ords brukernavn) echo '<a href="profil.php?bruker='.$bruker.'">'.$bruker.'</a>'; Blir det ritkig?? jeg må ha "" roundt linken ellers vil den ikke ha med dobble brukernavn eks. hey ho blir til profil.php?bruker=hey og da kommer man jo ikke inn på rikitg profil.. Lenke til kommentar
Martin A. Skrevet 23. desember 2008 Del Skrevet 23. desember 2008 Lag en egen versjon av brukernavnet til bruk i URL. Bytt ut mellomrom med _, eller baser det på bruker-ID. Lenke til kommentar
Peter Skrevet 23. desember 2008 Del Skrevet 23. desember 2008 echo <<<EOF <!-- ?> --> <script type="text/javascript"> **[masse javascript her] </script> **<masse HTML> <!-- <?php --> EOF; Skal jeg vise deg et alternativ? <?php if ( true ) { ?><script type="text/javascript"> console.log( 'showokara' ); </script> <?php } ?> Hvorfor outputte HTML/JS/CSS i "PHP-mode" når du enkelt kan ?> ? Her ville jeg faktisk foretrukket PHPs alternative syntaks: <?php if(true): ?> <script type="text/javascript"> console.log( 'showokara' ); </script> <?php endif; ?> I hovedsak fordi krøllparanteser har en tendens til å forsvinne i teksten. Personlig har jeg ikke sansen for motorer som smarty osv. heller, fordi jeg mener PHP allerede er et template språk, og det er rimelig pent og oversiktlig. Lenke til kommentar
Rudde Skrevet 23. desember 2008 Del Skrevet 23. desember 2008 Lag en egen versjon av brukernavnet til bruk i URL. Bytt ut mellomrom med _, eller baser det på bruker-ID. Liker selv ikke bruker ID så jeg vil bruke brukernavn.. Hvordan får jeg byttet ut mellomrom med +? Lenke til kommentar
Rudde Skrevet 23. desember 2008 Del Skrevet 23. desember 2008 Takk nå blir det bra Lenke til kommentar
Jonas Skrevet 23. desember 2008 Del Skrevet 23. desember 2008 (endret) Skulle tro at urlencode() eller rawurlencode() ville være lettere. De er tross alt blitt til nettopp for dette. Endret 23. desember 2008 av Jonas Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå