Autor Zpráva
Prefin
Profil
Ahoj všichni. Potřeboval bych trochu píchnout s jednou drobností.
Mám pole -> $pole, v kterém jsou textové a číselné řetězce. Některé jsou uzavřené do uvozovek.
A ty bych potřeboval z toho pole vyseknout a vložit do jiného, které bude obsahovat pouze ty v uvozovkách.
Příklad -> v prvním poli jsou tyto hodnoty:
jiojm nund "10" hudts joiru "8" huihui koko "31" ......
a do výsledného potřebuji toto:
$vysledek[0] -> "10"
$vysledek[1] -> "8"
$vysledek[2] -> "31"

Zkoušel jsem si hrát s funkcemi preg_match();, preg_match_all(); nebo preg_grep();, ale s reguláry zatím moc pracovat neumím.
Určitě to bude velmi jednoduché, ale nechce mi cvaknout jak.
Díky
rabbit
Profil
Pokud jsou ty čísla vždy celočíselná a kladná, stačí ti toto:


$druhe_pole = array();
foreach ($prvni_pole as $hodnota)
{
if (preg_match('/^"d+"$/', $hodnota))
{
$druhe_pole[] = $hodnota ;
}
}
Prefin
Profil
Jsou - díky, hned to prubnu. Je to opravdu jednoduchý.
Prima diskuse, jinde když se zeptám, tak dostanu akorát pitomý řeči a odkazy na zroje v EN.
Prefin
Profil
Ještě drobnost:
V jednom souboru testuji přítomnost souborů pro porovnání obsahu.
Z něj posílám $_POST["krok"] s počtem porovnávaných souborů (např. 3)
Jako další posílám jména techto souborů uložená v $_POST["soubor1"],$_POST["soubor2"] a $_POST["soubor3"].
Teď potřebuji použít jména souborů pro jejich otevření, načtení obsahů a porovnání hodnot v uvozovkách - viz první dotaz.
Takhle:

for($s=0;$s<=$_POST["krok"];$s++) {
$soubor = $_POST["nazev" . $s]; // <- tohle kupodivu funguje
echo $soubor . "<br>";
$fp = fopen($soubor,"r");
$text[$s] = fread($fp,filesize($soubor));
echo $text[$s] . "<br><br>";
fclose($fp);
}


Jde o to, že v prvním průchodu mi to soubor načte a v druhém to hodí chyby:
Warning: fread(): supplied argument is not a valid stream resource in C:wwwspravadbporovnej.php on line 6

Warning: fclose(): supplied argument is not a valid stream resource in C:wwwspravadbporovnej.php on line 8


Soubory jsou v pořádku, práva taky a je v nich požadovaný obsah. Nevím proč to tu chybu hází.
Díky za radu
Toto téma je uzamčeno. Odpověď nelze zaslat.