Img-tag werkt niet
Nu heb ik een routine die een string omzet naar images.
het probleem is dat hij dit wel gedeeltelijk doet
De routine:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
function txt2dig($string)
{
$letters = array();
for($i=0; $i < strlen($string); $i++)
{
$letters[] = $string[$i];
}
$dig = '';
foreach ($letters as $key=>$value)
{
$dig .= '<img src=images/site/cijfers_klein/'.$value.'.gif>';
}
return ($dig);
}
{
$letters = array();
for($i=0; $i < strlen($string); $i++)
{
$letters[] = $string[$i];
}
$dig = '';
foreach ($letters as $key=>$value)
{
$dig .= '<img src=images/site/cijfers_klein/'.$value.'.gif>';
}
return ($dig);
}
De output
img src=images/site/cijfers_klein/.gif><img src=images/site/cijfers_klein/.gif><img src=images/site/cijfers_klein/.gif>104</span>
Hij zet de waardes niet op de plaats wat ze moeten staan. heb al van alles geprobeerd maar krijg het niet voor elkaar.
Is er iemand die mij een hint kan geven waar het fout gaat.
Edit:
Titel aangepast van 'probleem' naar een duidelijke titel.
Gewijzigd op 29/10/2024 13:51:06 door - Ariën -
Blijkbaar gebruik je spaties. En dan krijg je een lege ruimte, en een niet werkende afbeelding.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Uitvoer is als volgt:
Code (php)
1
2
3
4
5
2
3
4
5
<img src="images/site/cijfers_klein/h.gif">
<img src="images/site/cijfers_klein/a.gif">
<img src="images/site/cijfers_klein/l.gif">
<img src="images/site/cijfers_klein/l.gif">
<img src="images/site/cijfers_klein/o.gif">
<img src="images/site/cijfers_klein/a.gif">
<img src="images/site/cijfers_klein/l.gif">
<img src="images/site/cijfers_klein/l.gif">
<img src="images/site/cijfers_klein/o.gif">
Gewijzigd op 29/10/2024 13:57:17 door - Ariën -
Maar het is nog steeds hetzelfde.
<img src="images/site/cijfers_klein/.gif">
<img src="images/site/cijfers_klein/.gif">
<img src="images/site/cijfers_klein/.gif">
het getal er achter hoort er niet bij, sorry dat was de stringwaarde voor controle of de images wel goed waren.
het pad naar de images is correct. Heb het file zelfs naar de Strato server gestuurd om te kijken of het daar wel werkt.
Strato werkt met PHP 8.3 en mijn lokaal test server werkt met een lagere versie. Ook dit geeft hetzelfde resultaat.
hij blijft de waardes achteraan zetten in plaats van de tag regel.
Gewijzigd op 29/10/2024 15:04:18 door Pierre Boone
Code (php)
Beetje korter.
<img src="../images/site/cijfers_klein/.gif">
<img src="../images/site/cijfers_klein/.gif">
<img src="../images/site/cijfers_klein/.gif">
Ik gebruikte deze lokaal en dan werkt alles, echter op de strato webserver geeft hij na enige tijd een error 500
function txt2dig ($txt)
{
$IMG_URL = "images/site/cijfers_klein/";
$result = "";
if (strlen($txt) == '1') $txt = '00'.$txt;
if (strlen($txt) == '2') $txt = '0'.$txt;
$digits = preg_split("//", $txt);
while (list($key, $image) = each($digits))
{
if ($image != "")
{
$result .= "<IMG SRC=\"$IMG_URL$image.gif \" height=\"20\" >";
}
}
return $result;
}
Welke PHP versie gebruik je?
Gewijzigd op 29/10/2024 15:42:05 door - SanThe -
Waar kan ik die melding vinden dan.
Firefox ctrl shift I.
Toevoeging op 29/10/2024 16:07:48:
Ik gebruik Chrome en daar is het F12. Het kan niet komen dat het in Chrome niet werkt en in Firefox wel. zou wel vreemd zijn.
Gewijzigd op 29/10/2024 16:13:48 door Pierre Boone
Daar ga ik niet op zoeken.
Gewijzigd op 29/10/2024 16:37:59 door - Ariën -
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
function txt2dig($string)
{
$dig = '';
for($i=0; $i < strlen($string); $i++)
{
if (strlen($string) == '1') $string = '000'.$string;
if (strlen($string) == '2') $string = '00'.$string;
if (strlen($string) == '3') $string = '0'.$string;
if (strlen($string) == '4') $string = ''.$string;
$dig .= '<img src="images/site/cijfers_klein/'.$string[$i].'.gif" height="20">';
}
return ($dig);
{
$dig = '';
for($i=0; $i < strlen($string); $i++)
{
if (strlen($string) == '1') $string = '000'.$string;
if (strlen($string) == '2') $string = '00'.$string;
if (strlen($string) == '3') $string = '0'.$string;
if (strlen($string) == '4') $string = ''.$string;
$dig .= '<img src="images/site/cijfers_klein/'.$string[$i].'.gif" height="20">';
}
return ($dig);
De routine is die van SanThe met toevoeging van de lengte bepaling.
Het vreemde is dat als ik de lengte bepaling weg haal het weer niet werkt.
Pierre
Gewijzigd op 29/10/2024 19:24:02 door Pierre Boone
Er wordt niet de juiste waarde aan de functie doorgegeven.
https://www.php.net/manual/en/function.str-pad.php
Dit plaatst zovaak "0" voor je string tot de lengte 4 is.
In jouw geval: je loopt door de string heen, maar de lengte van de string verandert ondertussen.
Wel interessant om te zien of met de ingangsstring "ab" de lengte van 2 gebruikt wordt voor de for-lus, of dat hij eerst een keer door de lus heen gaat met $i=0 , dan onderweg de string verandert in "00ab" en dan $i < 4 gebruikt.
Dat gaat nu goed (er komen img letters uit) maar wel dingen om op te letten
Toevoeging op 30/10/2024 14:09:55:
Kijk ook eens naar Dit plaatst zovaak "0" voor je string tot de lengte 4 is.
In jouw geval: je loopt door de string heen, maar de lengte van de string verandert ondertussen.
Wel interessant om te zien of met de ingangsstring "ab" de lengte van 2 gebruikt wordt voor de for-lus, of dat hij eerst een keer door de lus heen gaat met $i=0 , dan onderweg de string verandert in "00ab" en dan $i < 4 gebruikt.
Dat gaat nu goed (er komen img letters uit) maar wel dingen om op te letten
Toevoeging op 30/10/2024 14:09:55:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
function txt2dig($string)
{
$dig = '';
for($i=0; $i < strlen($string); $i++)
{ $string = str_pad($string, 4, "L", STR_PAD_LEFT);
$dig .= '<img src="../images/site/cijfers_klein/'.$string[$i].'.gif" height="22">';
}
return ($dig);
{
$dig = '';
for($i=0; $i < strlen($string); $i++)
{ $string = str_pad($string, 4, "L", STR_PAD_LEFT);
$dig .= '<img src="../images/site/cijfers_klein/'.$string[$i].'.gif" height="22">';
}
return ($dig);
de L is een lege 0 maar heeft een donkerder kleur voor beter zicht en het lijkt dan meer op een digitale teller.
}
Gewijzigd op 30/10/2024 14:24:02 door Pierre Boone
jouw str_pad regel kan voor de for-lus komen: je hoeft hem niet 4x van een prefix te voorzien...
** spam bericht verwijderd **
Ivo P op 30/10/2024 14:29:32:
jouw str_pad regel kan voor de for-lus komen: je hoeft hem niet 4x van een prefix te voorzien...
Ja, bedankt had het al veranderd, heb overal de code geschoond en de CSS ook aangepast, is een stuk rustiger nu.