Plaatje tonen voor elke variabelen
Ik ben een beginner met PHP en probeer meestal net zolang tot het lukt. Nu loop ik echter tegen een probleem aan waar ik niet uit kom, wat ik ook probeer. In dit geval gaat het om een PHP probleem in een WordPress omgeving.
Ik heb een aantal variabelen (warm, koud, regen, droog, sneeuw) en wil dat als deze gelden, er een plaatje getoond wordt.
Ik heb deze code wat als output heeft warm.jpg droog.jpg etc.
Code (php)
1
2
3
4
5
2
3
4
5
function temperatuur() {
global $post;
$situatie = get_the_term_list( $post->ID, 'product_cat', '', '.jpg ', '.jpg' );
echo $situatie;
}
global $post;
$situatie = get_the_term_list( $post->ID, 'product_cat', '', '.jpg ', '.jpg' );
echo $situatie;
}
Echter, in plaats van echo $situatie wil ik iets als echo '<img src="http://www.site.nl/images/ .$situatie"> waardoor het plaatje getoond wordt. Of meerdere, omdat het warm en droog kan zijn.
Wat dus niet lukt.
Ik krijg het niet voorelkaar om uberhaupt een plaatje te tonen en de url ingeven lukt me ook niet. Daarnaast weet ik ook niet of dit de manier is om aan de categorie toe te voegen.....
Kan iemand me op weg helpen? Het lukt me dus om output te genereren, maar niet om hier een image van te maken.
Alvast bedankt en nog de beste wensen.
Zack
Jeetje het is niet de eerste keer dat ik in de mist ga met ' of ". Heb het aangepast, maar mis in het geheel nu nog een oplossing om het per variable te krijgen.
De output wordt nu: http://www.site.nl/images/warm.jpgdroog.jpg
Maar zou moeten worden http://www.site.nl/images/warm.jpg en http://www.site.nl/images/droog.jpg
Weet jij hoe dit moet?
Bvd
In dit geval geeft get_the_term_list() een aantal specifieke eigenschappen terug. In mijn geval droog, warm etc.
Op een of andere manier werkt bovenstaande code wel om alle eigenschappen te tonen, en hier .jpg achter te zetten maar helaas nog steeds als tekst en niet als image.
Nog een idee?
kleine aanpassing op de code van Willem:
Code (php)
Als het nu nog niet lukt kun je dan misschien even de bron van de pagina bekijken zodat je de HTML ziet en dan even het stukje met de <img .... /> tonen?
Gewijzigd op 09/01/2014 19:05:31 door Frank Nietbelangrijk
Waarom denk je dat jouw code wel werkt en de mijne niet?
Volgens mij moeten die dubbele quotes aan het eind weg...
D B op 09/01/2014 19:52:42:
De code van Frank is wat netter
Daarover verschillen we dan van mening... ;-)
Door al dat gegoochel met quotes en concatenaties is het veel lastiger om te zien of je quotes matchen. Frank bewijst dat al meteen met dat ene regeltje dat hij tikt...
Voor de goede lezer staat er een ander verschil in dan alleen die ene extra dubbele quote. Frank plakt er nog een extentie aan, terwijl Willem dat niet doet. De vraag is: wat is goed. Als ik de posts van de TS goed lees hoeft die extra extentie er niet bij, maar helemaal zeker kan ik het ook niet zeggen.
Gewijzigd op 09/01/2014 20:06:35 door Willem vp
Ik moest er alleen een strip_tags overheen gooien omdat WordPress van alles met de variabelen deed.
Bedankt in elk geval!
Willem vp op 09/01/2014 16:31:55:
echo '<img src="http://www.site.nl/images/ .$situatie">' zal niet werken, omdat de te echo'en string tussen enkele quotes staat. Variabelen worden dan niet geëxpandeerd. Als je dubbele quotes gebruikt, werkt het wel:
Zack Smulders op 09/01/2014 16:41:34:
Hi Willem,
Jeetje het is niet de eerste keer dat ik in de mist ga met ' of ". Heb het aangepast, maar mis in het geheel nu nog een oplossing om het per variable te krijgen.
De output wordt nu: http://www.site.nl/images/warm.jpgdroog.jpg
Maar zou moeten worden http://www.site.nl/images/warm.jpg en http://www.site.nl/images/droog.jpg
Weet jij hoe dit moet?
Bvd
Jeetje het is niet de eerste keer dat ik in de mist ga met ' of ". Heb het aangepast, maar mis in het geheel nu nog een oplossing om het per variable te krijgen.
De output wordt nu: http://www.site.nl/images/warm.jpgdroog.jpg
Maar zou moeten worden http://www.site.nl/images/warm.jpg en http://www.site.nl/images/droog.jpg
Weet jij hoe dit moet?
Bvd
Of je dubbele of enkele quotes gebruikt, maakt niet uit. Zelf gebruik ik enkele omdat dit makkelijker is met HTML, maar met veel tekst waar de enkele quotes in voorkomt gebruik ik dubbele quotes (echo "'s morgens";) om escapen (echo '\'s morgens';) te voorkomen.
Daarnaast zou ik altijd variabelen buiten quotes houden. Dus niet zoals het voorbeeld van Willem.
Code (php)
Gewijzigd op 10/01/2014 08:57:24 door Michael -
Enkele en dubbele quotes maken wel uit. Dit:
zal letterlijk Hallo $naam op het scherm zetten, aangezien er geen parameter expansion zal worden toegepast als je enkele quotes gebruikt. Variabelen worden dus niet gezien.
Erwin H op 10/01/2014 09:20:44:
@Michael
Enkele en dubbele quotes maken wel uit. Dit:
zal letterlijk Hallo $naam op het scherm zetten, aangezien er geen parameter expansion zal worden toegepast als je enkele quotes gebruikt. Variabelen worden dus niet gezien.
Enkele en dubbele quotes maken wel uit. Dit:
zal letterlijk Hallo $naam op het scherm zetten, aangezien er geen parameter expansion zal worden toegepast als je enkele quotes gebruikt. Variabelen worden dus niet gezien.
Bedankt voor de toelichting. Slecht voorbeeld :) Gewoon niet binnen quotes.
Daarbij bedoel ik dat quotes het niet uitmaken in de zin of ik echo "Hoi " . $naam of echo 'Hoi ' . $naam gebruik. (TS geeft aan hier steeds mee in de 'fout' te gaan)
Geeft in ieder geval aan dat het voorbeeld van Willem wat de TS zegt over te hebben genomen (echo "<img src='http://www.site.nl/images/$situatie'>";) onjuist is.
Nee, het voorbeeld van Willem is correct. Daar staan dubbele quotes omheen en dus zal de variabele wel worden meegenomen. De enkele quotes zijn voor het html atribuut.
Erwin H op 10/01/2014 09:38:26:
Nee, het voorbeeld van Willem is correct. Daar staan dubbele quotes omheen en dus zal de variabele wel worden meegenomen. De enkele quotes zijn voor het html atribuut.
Je hebt gelijk. Ik heb het even uitgeprobeerd. Ik was hier niet van op de hoogte omdat ik nooit variabelen binnen quotes gebruik.
Michael - op 10/01/2014 08:55:28:
Daarnaast zou ik altijd variabelen buiten quotes houden. Dus niet zoals het voorbeeld van Willem.
Ik heb geen idee waar het vandaan komt dat iedereen maar loopt te roepen dat variabelen buiten de quotes moeten. Waarschijnlijk is er ooit iemand geweest die uit een VBScript- of JavaScript-omgeving kwam, niet de behoefte had zich te verdiepen in de mogelijkheden die PHP biedt, en is iedereen hem gaan nadoen.
Hoe dan ook vind ik het ongepast als iedereen continu loopt te roepen dat je altijd je variabelen buiten de quotes moet houden. Laat de programmeur dat lekker zelf bepalen! Het is net wat je gewend bent en/of wat de opdrachtgever wil.
Het hoofdcriterium zou in mijn ogen moeten zijn of het de code leesbaarder maakt. Vooral wanneer je veel HTML of SQL-code moet echo'en, waar je strings hebt met veel quotes erin, verhoogt het m.i. de leesbaarheid enorm als je de variabelen juist bínnen de quotes houdt. Ik heb op dit forum regelmatig gezien dat er werkelijk uren aan hersenkracht werden verspild omdat door al dat geconcateneer de visuele entropie (wanorde) van het codebeeld zo was toegenomen dat niet meer eenvoudig te zien was welk quote'je waarbij hoorde. Het mooie van PHP is juist dat al dat gepiel niet meer hoeft, doordat het mogelijk is om variabelen binnen strings te expanderen. Bij VB/JavaScript is dat niet goed mogelijk, omdat dat sigil-loze talen zijn.
Een ander punt is dat het roepen dat je de variabelen buiten de quotes moet halen vaak niets toevoegt aan de discussie/oplossing. Het enige wat je ermee bereikt, naast verwatering van het onderwerp, is dat je de indruk wekt dat je niet kan programmeren. Beter gezegd: je kent de taal niet goed genoeg om in te schatten wat code doet die niet is opgemaakt op een manier die je gewend bent. Wanneer ik de geschiktheid van een sollicitant moet beoordelen, levert zoiets altijd minpunten op, want een programmeur moet het inzicht en improvisatievermogen hebben om zich aan te passen aan om het even welke programmeerstijl.
Ik zou dan ook heel graag zien dat iedereen stopt met dat kansloze geblaat over quotes en zich gaat richten op het oplossen van het probleem zelf.
Gewijzigd op 10/01/2014 12:08:28 door Willem vp
Willem vp op 10/01/2014 12:02:36:
Ik zou dan ook heel graag zien dat iedereen stopt met dat kansloze geblaat over quotes en zich gaat richten op het oplossen van het probleem zelf.
Eens!
Waarbij ik verder in het midden laat wat mijn voorkeur geniet :-)
Willem vp op 10/01/2014 12:02:36:
Bla
Michael - op 10/01/2014 08:55:28:
Daarnaast zou ik altijd variabelen buiten quotes houden. Dus niet zoals het voorbeeld van Willem.
Bla
Ik zeg ook 'zou ik', niet moet. Verder blijft het inderdaad een mening-/voorkeur verschil.