Diskuze: File, String, Explore, Foreach - problem..

PHP PHP File, String, Explore, Foreach - problem.. American English version English version

Avatar
Paranormal
Redaktor
Avatar
Paranormal:

Mám soubor s hodnotama.

hodnoty.txt

neco neco neco neco neco neco neco neco

hodnoty jsou oddělené pouze mezerou.

Poté mám tento text přiřezený do proměné a poté do pole.

$all = file_get_contents("hodnoty.txt");
$each_one = explode(" ", $all);

A dále je vypisuji na stránku..

foreach( array($each_one) as $numb)
{
echo (' <li>' + $numb + '</li>');
}

Nahoř v tom nehledejte moc smysl je to jen ukázkové.. Problém je v tom že mi to pak na stránce píše už jenom 00000000... Ano počet nul odpovídá počtu výsledků, ale nuly tam nechci :D

Už nad tím přemýšlím hodně dlouho a furt nějak nevím.. Díky :)

Odpovědět 9. dubna 17:13
„Když toho moc neumíme tak jsme na nejlepší pozici se něčemu naučit.“
Avatar
Odpovídá na Paranormal
Martin Konečný (pavelco1998):

explode() už ti to do pole nahází, takže udělej jen foreach ($each_one as $numb)

 
Nahoru Odpovědět 9. dubna 17:20
Avatar
Paranormal
Redaktor
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Paranormal:

jj, už vím kde je chyba.. v PHP se nepíše ke skládání stringu "+" ale " . " ..

A co když chci získat koncovku souboru?

$extension  = (new SplFileInfo('img/' . $file))->getExtension();

echo '<img src="img/' . $item . $extension .  '"></a></div>';

↑ Tohle mám, ale nefunguje to. Nepíše to tam tu koncovku :/

Nahoru Odpovědět 9. dubna 17:35
„Když toho moc neumíme tak jsme na nejlepší pozici se něčemu naučit.“
Avatar
Odpovídá na Paranormal
Martin Konečný (pavelco1998):

to nevim, já to snad řešil tak, že jsem si ten název rozdělil podle teček a sebral ten poslední.
Nějak takhle asi

$ext = array_pop(explode(".", $file));

ale nevim, na kolik je to spolehlivý

 
Nahoru Odpovědět 9. dubna 17:50
Avatar
Paranormal
Redaktor
Avatar
Paranormal:

Ano, ale já nevím jakou koncovku má ten soubor tak tam nemůžu napsat třeba "file.php" ale jenom "file" a to ".php" potebuju zjistit víš :)

Mám to dělaný složitě přez podmínky a ptám se jestli soubor existuje nebo ne a pak jdu dál v podmínce. je to hrozně krkolomné ale funguje to no :/

Nahoru Odpovědět 9. dubna 17:57
„Když toho moc neumíme tak jsme na nejlepší pozici se něčemu naučit.“
Avatar
Odpovídá na Paranormal
Martin Konečný (pavelco1998):

nenapadá mě jiný způsob, než prostě projít složku a hledat soubory s tímhle názvem. Pak bud použiješ to, co jsem psal, nebo na to PHP má snad i nějakou třídu

 
Nahoru Odpovědět 9. dubna 18:08
Avatar
Odpovídá na Paranormal
Dominik Klapuch:

Pro získání koncovky použij

pathinfo($file, PATHINFO_EXTENSION);
Nahoru Odpovědět 9. dubna 21:15
Kód a data patří k sobě.
Avatar
Paranormal
Redaktor
Avatar
Odpovídá na Dominik Klapuch
Paranormal:

To sem zkoušel, le nejde mi to pak dosadit do odkazu.

<img src="img/' . $item . pathinfo('img/' . $item, PATHINFO_EXTENSION) .'" alt="' . $item . '" title="' . $item . '">

projíždím tam foreach proto je tam to $item.

Nahoru Odpovědět 9. dubna 22:10
„Když toho moc neumíme tak jsme na nejlepší pozici se něčemu naučit.“
Avatar
Odpovídá na Paranormal
Martin Konečný (pavelco1998):

Nezjistíš koncovku souboru, když předáš jen jeho název. Kdybys měl soubory test.txt, test.pdf, test.html, kterou z těch koncovek by si ta funkce měla vybrat?

 
Nahoru Odpovědět 9. dubna 22:16
Avatar
Odpovídá na Paranormal
Dominik Klapuch:

Pro použití PATHINFO_EXTENSION musíš mít platnou cestu k souboru, abys mohl zjistit koncovku.

Napiš spíš, co děláš a čeho chceš dosáhnout a půjde to snad nějak jinak :)

Nahoru Odpovědět 10. dubna 11:27
Kód a data patří k sobě.
Avatar
Paranormal
Redaktor
Avatar
Paranormal:

Jde o to že mám složku s obrázky. A mám jen název obrázku bez koncovky.. Ale nevím jestli má obrázek .png nebo .jpg nebo .gif. Musí mít jedno z toho. Tak to řeším pomocí file_exist a podmínkou :D

Nahoru Odpovědět 10. dubna 14:02
„Když toho moc neumíme tak jsme na nejlepší pozici se něčemu naučit.“
Avatar
Odpovídá na Paranormal
Martin Konečný (pavelco1998):
$extensions = array(".jpg", ".png", ".gif");

foreach ($items as $item) {
        $exists = FALSE;

        foreach ($extensions as $extension) {
                $file = $item . $extension;

                if (file_exists($file)) {
                        $exists = TRUE;
                        break;
                }
        }

        if ($exists) {
                // ...
        }
}

něco takovýho?

 
Nahoru Odpovědět  +1 10. dubna 14:09
Avatar
Paranormal
Redaktor
Avatar
Nahoru Odpovědět 10. dubna 14:23
„Když toho moc neumíme tak jsme na nejlepší pozici se něčemu naučit.“
Avatar
Odpovídá na Paranormal
Dominik Klapuch:

Při ukládání obrázku tě vůbec nemusí zajímat koncovka, stačí ti jen samotný data. Podle dat potom určíš koncovku, třeba takhle:

echo finfo_file(finfo_open(FILEINFO_MIME_TYPE), 'obrazek');

Pro finfo musíš mít povolenou extezi php_fileinfo

Nicméně, i když přejmenuješ obrázek z *.jpg na *.png tak MIME TYPE se ti nezmění, protože změníš jen název souboru, ale data ti zůstanou stejný.

Můžeš zkusit všechny obrázky přejmenovat na jednotnou koncovku a uvidíš co se stane :)

Nahoru Odpovědět 10. dubna 16:45
Kód a data patří k sobě.
Avatar
Odpovídá na Paranormal
Dominik Klapuch:

Ještě příklad:

<?php
$extensions = [
        'image/png' => 'png',
        'image/jpeg' => 'jpg',
        'image/gif' => 'gif'
];
$file = 'obrazek';
$extension = finfo_file(finfo_open(FILEINFO_MIME_TYPE), $file);
if(isset($extensions[$extension]))
        echo $file . '.' . $extensions[$extension];
Nahoru Odpovědět 10. dubna 16:53
Kód a data patří k sobě.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 15 zpráv z 15.