Autor Zpráva
pmasarik
Profil
Nazdar mám pole $css:

// toto je výpis pomocou print_r($css);
Array
(
[0] => #top-pitny{background-image:url(/images/top/top-pitny.jpg)}
[1] => #top-klby{background-image:url(/images/top/top-klby.jpg)}
[2] => #top-lipotropne{background-image:url(/images/top/top-lipotropne.jpg)}

)


Ako zistím klúč pri hladání určitého obsahu???
Niktoré riešenie mi nevracá key číslo a neviem prečo.


// $css je to pole uvedené hore
$cislo_riadku = array_search('top-klby', $css);
echo $cislo_riadku;


Už som skúšal aj toto, ale bez úspechu.


// $css je to pole uvedené hore
$cislo_riadku = array_search('#top-klby{background-image:url(/images/top/top-klby.jpg) }', $css);
echo $cislo_riadku;
rabbit
Profil
funkce array_search() ti vrátí klíč jenom, pokud se hodnota ROVNÁ hledané. To znamená je úplně stejná, ne že je v ní část stringu, jak jsi to zkoušel v prvním pokusu.

V druhém tvém pokusu ti taky nic nevrátí, protože hledáš něco, co tam není. Už na první pohled vidím, že tam máš přinejmenším navíc mezeru před poslední složenou závorkou.
pmasarik
Profil
To že tam bola medzera naviac sa stalo nedopatrením pri vkladaní.
Zistil som že problem je v tom že na konci tej hodnoty v poli je asi znak nového riadku \n.
Dá sa nejako táto medzera vyradiť z vyhladávania?

Ukážka je tu http://www.kompava.sk/a/

Toto je kod ktorý to generuje:


$css = file('top.css'); // css nacitam do pola po riadkoch
echo '<pre>';
print_r($css);
echo '</pre>';

$kluc = array_search('#top-fit-artro-aktiv{background-image:url(/images/top/to p-fit-artro-aktiv.jpg)}', $css);
echo $kluc;
echo '<p>'.$css[26].'</p>'; // v zdrojovom kode HTML je vidiet že je riadok zalomený

if ($css[26] == '#top-fit-artro-aktiv{background-image:url(/images/top/top-fit-artro-a ktiv.jpg)}') {
echo 'je to rovnake';
} else {
echo 'je to rozdielne';
}
pmasarik
Profil
Už som našiel ako na to bolo treba odstrániť tie neviditelné medzery a už to funguje.


foreach ($css as $key => $value) {
$css[$key] = rtrim($value);
}
Toto téma je uzamčeno. Odpověď nelze zaslat.