Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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

Aktivity
Avatar
Verquido
Tvůrce
Avatar
Verquido:9.4.2016 17:13

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.4.2016 17:13
Avatar
Odpovídá na Verquido
Martin Konečný (pavelco1998):9.4.2016 17:20

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

Nahoru Odpovědět
9.4.2016 17:20
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Verquido
Tvůrce
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Verquido:9.4.2016 17:35

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.4.2016 17:35
Avatar
Odpovídá na Verquido
Martin Konečný (pavelco1998):9.4.2016 17:50

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.4.2016 17:50
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Verquido
Tvůrce
Avatar
Verquido:9.4.2016 17:57

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.4.2016 17:57
Avatar
Odpovídá na Verquido
Martin Konečný (pavelco1998):9.4.2016 18:08

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.4.2016 18:08
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovídá na Verquido
Dominik Klapuch:9.4.2016 21:15

Pro získání koncovky použij

pathinfo($file, PATHINFO_EXTENSION);
Nahoru Odpovědět
9.4.2016 21:15
Kód a data patří k sobě.
Avatar
Verquido
Tvůrce
Avatar
Odpovídá na Dominik Klapuch
Verquido:9.4.2016 22:10

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.4.2016 22:10
Avatar
Odpovídá na Verquido
Martin Konečný (pavelco1998):9.4.2016 22:16

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.4.2016 22:16
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovídá na Verquido
Dominik Klapuch:10.4.2016 11:27

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.4.2016 11:27
Kód a data patří k sobě.
Avatar
Verquido
Tvůrce
Avatar
Verquido:10.4.2016 14:02

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.4.2016 14:02
Avatar
Odpovídá na Verquido
Martin Konečný (pavelco1998):10.4.2016 14:09
$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
10.4.2016 14:09
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Verquido
Tvůrce
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Verquido:10.4.2016 14:23

Ano, něco takovýho mám.

 
Nahoru Odpovědět
10.4.2016 14:23
Avatar
Odpovídá na Verquido
Dominik Klapuch:10.4.2016 16:45

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.4.2016 16:45
Kód a data patří k sobě.
Avatar
Odpovídá na Verquido
Dominik Klapuch:10.4.2016 16:53

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.4.2016 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.