Výsledky 1 až 20 z 20

Téma: [PHP] - porovnani prvku pole

  1. #1
    Senior Member
    Založen
    08.10.2002
    Bydliště
    Ústí nad Orlicí (home), Praha (school)
    Příspěvky
    956
    Vliv
    274

    Standardní [PHP] - porovnani prvku pole

    nacetl jsem si soubor do pole po radcich, takto:
    Kód:
    $data = File ("vystup.html");
    while (list ($line_num, $line) = each ($data)) {
       $work[] = $line;    
    };
    a nyni chci napriklad porovnat 8. prvek pole (obsahuje text aaa) s textem aaa. kdyz si necham vypsat $work[7] vypise to aaa. ale pokud pouziju toto:

    Kód:
    if ($work[7]=='aaa'):
       echo "OK";
    endif;
    tak uz to nefunguje. vypada to jako by v tom prvku v poli byl jeste znak pro konec radku nebo neco podobnyho. jak to mam ale zjistit? pripadne jak to porovnat? dik
    KILL YOUR MOTHER, RAPE YOUR DOG!
    AMD Barton 2500+@2300MHz (209x11; 1,65V) Zalman 7000A AlCu Asus A7V880 VM 512 MB DDR 400 Mhz 5ns Microstar GeForce Ti 4200 64 MB 316/610 Hitachi 80 GB S-ATA Seagate Barracuda IV 60 GB Nec DVD+-RW 1300A Teac 524E 40x24x10 Creative Audigy Genius Home Theater 5.1 Wood Eurocase Bigtower 763 Moded Edimax 10Mb/s LAN Genius F-23 Leadtek Winfast TV 2000 XP Deluxe Samsung 172X Microsoft Intelimouse Optical Umax WK9000 klávesnice Fortron 350W 120 Fan Silent 14512 - 3D Mark 2001 (eště mu dám trošku pokouřit)

  2. #2

  3. #3
    Terorista karabínový mince Avatar uživatele PiT
    Založen
    13.09.2002
    Bydliště
    Bratislava
    Příspěvky
    4 550
    Vliv
    300

    Standardní

    1) $work[] mozes pouzit Ja by som tam pre istotu daval $work[$i], pricom $i pred cyklom priradil 0 a po priradeni obsahu riadku ho inkrementoval.

    2) if (!empty($work[7]) && $work[7] === "aaa") echo "OK";
    And down we go again, under the relentless wawes, into the arms of calm breakers, into bayou of forgotten dreams
    Like sand slipping through my fingers, nothing ever lasts, ever will

  4. #4
    Senior Member
    Založen
    08.10.2002
    Bydliště
    Ústí nad Orlicí (home), Praha (school)
    Příspěvky
    956
    Vliv
    274

    Standardní

    2 jedik: strcmp mi vraci 2, tedy nerovnaji se. pokud do $work[7] vlozim manualne text aaa tak pak se rovnaji a funkce vraci 0. pokud ale necham pole tak jak je tak se nerovnaji, ale work[7] pritom text aaa obsahuje. z toho mi vyplyva, ze tam musi byt jeste nejaky znak jako treba konec radku nebo tak neco.
    KILL YOUR MOTHER, RAPE YOUR DOG!
    AMD Barton 2500+@2300MHz (209x11; 1,65V) Zalman 7000A AlCu Asus A7V880 VM 512 MB DDR 400 Mhz 5ns Microstar GeForce Ti 4200 64 MB 316/610 Hitachi 80 GB S-ATA Seagate Barracuda IV 60 GB Nec DVD+-RW 1300A Teac 524E 40x24x10 Creative Audigy Genius Home Theater 5.1 Wood Eurocase Bigtower 763 Moded Edimax 10Mb/s LAN Genius F-23 Leadtek Winfast TV 2000 XP Deluxe Samsung 172X Microsoft Intelimouse Optical Umax WK9000 klávesnice Fortron 350W 120 Fan Silent 14512 - 3D Mark 2001 (eště mu dám trošku pokouřit)

  5. #5
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    40
    Příspěvky
    3 474
    Vliv
    309

    Standardní

    tak zkus zavolat fci trim() na ten řetězec v poli...
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  6. #6
    Senior Member
    Založen
    08.10.2002
    Bydliště
    Ústí nad Orlicí (home), Praha (school)
    Příspěvky
    956
    Vliv
    274

    Standardní

    Citace Původně odeslal Anduril
    tak zkus zavolat fci trim() na ten řetězec v poli...
    yeahh, dik
    KILL YOUR MOTHER, RAPE YOUR DOG!
    AMD Barton 2500+@2300MHz (209x11; 1,65V) Zalman 7000A AlCu Asus A7V880 VM 512 MB DDR 400 Mhz 5ns Microstar GeForce Ti 4200 64 MB 316/610 Hitachi 80 GB S-ATA Seagate Barracuda IV 60 GB Nec DVD+-RW 1300A Teac 524E 40x24x10 Creative Audigy Genius Home Theater 5.1 Wood Eurocase Bigtower 763 Moded Edimax 10Mb/s LAN Genius F-23 Leadtek Winfast TV 2000 XP Deluxe Samsung 172X Microsoft Intelimouse Optical Umax WK9000 klávesnice Fortron 350W 120 Fan Silent 14512 - 3D Mark 2001 (eště mu dám trošku pokouřit)

  7. #7
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    285

    Standardní

    ..protoze ty konce radku tam standardne zustavaji. (asi aby to slo bez ztraty kyticky implodovat na puvodni obsah)

    Citace Původně odeslal http://mirrors.inway.cz/manual/en/function.file.php
    ...each element of the array corresponds to a line in the file, with the newline still attached.
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  8. #8
    Member Avatar uživatele ..::Ozzy::..
    Založen
    27.05.2004
    Bydliště
    Vlašim@Benešov
    Věk
    42
    Příspěvky
    176
    Vliv
    245

    Standardní

    co takhle svoji funkci ikdyz je to jedno... ale mohlo by to trebas bejt i takhle ne?
    Kód:
    $arr = array( "a", "aa", "aaa", "aaaa", "aaaaa", "aaaaaa", "aaaaaaa" );
    
    function arrTrim( $arr, $term )
    {
            foreach( $arr as $key => $val )
            {
                    if( $arr[ $key ] == $term )
                    {
                            return TRUE;
                            continue;
                    }
            }
            return FALSE;
    }
    
    print arrTrim( $arr, "aaaa" );
    Software is like SEX,
    it's better, when it's FREE!

    by Linus Torvalds
    PC:AMD Barton 2500+@3200+ 1,75V locked|ACC rev2|Soltek SL-K600-C|2x512MB DDR433 CL2.5|Saegate80GB 2MB cache ATA/133 + Samsung250GB 8MB cache ATA/133|ATi Saphire R9600XT 537/640|Acer LCD 20" AL2016W 16:10|DVD LG4120|Genius Home Theatre 5.1|Logitech Click@Mouse|dolby keyboard|3R-System case soft moded|TV Tuner Leadtek Winfast DTV1000T|Gentoo 2005.1|KDE 3.5 sometimes switch to WinXP
    Work NB: HP nw8000 + Qtek8310

  9. #9
    Senior Member
    Založen
    07.10.2002
    Bydliště
    Ostrava / Straznice
    Příspěvky
    1 133
    Vliv
    276

    Standardní

    A nemas tam nekde krpu?
    Toto normalne funguje

    Kód:
    $work = array("aaa");
    if (strcmp($work[0], "aaa")==0) echo "YES"; else echo "NO";
    if ($work[0] == "aaa") echo "YES"; else echo "NO";
    Vraci to "YES" v obou pripadech
    Intel C2D 4300, 1GB DDR2, 120GB Seagate, nVidia7600GT pasiv.

  10. #10
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    40
    Příspěvky
    3 474
    Vliv
    309

    Standardní

    2Lopan: Takhle to jede, jenže Braindead když to načte ze souboru, tak tam má konce řádků a proto mu takové porovnání neprojde...
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  11. #11
    Member Avatar uživatele ..::Ozzy::..
    Založen
    27.05.2004
    Bydliště
    Vlašim@Benešov
    Věk
    42
    Příspěvky
    176
    Vliv
    245

    Standardní

    Kód:
    $fo = fopen( "data.txt", "r" );
    
    $arr = file( "data.txt" );
    
    
    function arrTrim( $arr, $term )
    {
            foreach( $arr as $key => $val )
            {
                    if( str_replace( "\n", "", $arr[ $key ] ) == $term )
                    {
                            return TRUE;
                            continue;
                    }
            }
            return FALSE;
    }
    
    print arrTrim( $arr, "aaaa" );
    ->
    Software is like SEX,
    it's better, when it's FREE!

    by Linus Torvalds
    PC:AMD Barton 2500+@3200+ 1,75V locked|ACC rev2|Soltek SL-K600-C|2x512MB DDR433 CL2.5|Saegate80GB 2MB cache ATA/133 + Samsung250GB 8MB cache ATA/133|ATi Saphire R9600XT 537/640|Acer LCD 20" AL2016W 16:10|DVD LG4120|Genius Home Theatre 5.1|Logitech Click@Mouse|dolby keyboard|3R-System case soft moded|TV Tuner Leadtek Winfast DTV1000T|Gentoo 2005.1|KDE 3.5 sometimes switch to WinXP
    Work NB: HP nw8000 + Qtek8310

  12. #12
    Senior Member VIP Avatar uživatele Arteee
    Založen
    16.12.2002
    Bydliště
    Hey Prague
    Příspěvky
    1 767
    Vliv
    280

    Standardní

    problem je v tom, co rekl uz KTK !!!!! v $work[7] neni "aaa" ale je tam "aaa\n" proto se nerovnaji .....
    Takze bud porovnat i s entrem nebo otrimovat a nebo jsou i jiny fce na orezani netisknutelnych znaku ... ale zaklad je v tom si uvedomit, ze tam je ten enter je.
    BA95 positive
    Jen mrtví poznají konec války. Platón

  13. #13
    Senior Member
    Založen
    07.10.2002
    Bydliště
    Ostrava / Straznice
    Příspěvky
    1 133
    Vliv
    276

    Standardní

    Citace Původně odeslal Anduril
    2Lopan: Takhle to jede, jenže Braindead když to načte ze souboru, tak tam má konce řádků a proto mu takové porovnání neprojde...
    Ajo ja jsem prehledl ten soubor, no tak pak to je jasne
    Intel C2D 4300, 1GB DDR2, 120GB Seagate, nVidia7600GT pasiv.

  14. #14
    Senior Member
    Založen
    08.10.2002
    Bydliště
    Ústí nad Orlicí (home), Praha (school)
    Příspěvky
    956
    Vliv
    274

    Standardní

    ja to tusil ze tam ten enter bude, tak jsem porovnaval "aaa\n" ale stejne to neslo, zabral az ten trim.
    KILL YOUR MOTHER, RAPE YOUR DOG!
    AMD Barton 2500+@2300MHz (209x11; 1,65V) Zalman 7000A AlCu Asus A7V880 VM 512 MB DDR 400 Mhz 5ns Microstar GeForce Ti 4200 64 MB 316/610 Hitachi 80 GB S-ATA Seagate Barracuda IV 60 GB Nec DVD+-RW 1300A Teac 524E 40x24x10 Creative Audigy Genius Home Theater 5.1 Wood Eurocase Bigtower 763 Moded Edimax 10Mb/s LAN Genius F-23 Leadtek Winfast TV 2000 XP Deluxe Samsung 172X Microsoft Intelimouse Optical Umax WK9000 klávesnice Fortron 350W 120 Fan Silent 14512 - 3D Mark 2001 (eště mu dám trošku pokouřit)

  15. #15
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    285

    Standardní

    Citace Původně odeslal Braindead
    ja to tusil ze tam ten enter bude, tak jsem porovnaval "aaa\n" ale stejne to neslo, zabral az ten trim.
    nejspis proto, ze jsi tam mel dos-like entery, tj chr(13).chr(10) (\n je chr(13))
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  16. #16
    Senior Member
    Založen
    08.10.2002
    Bydliště
    Ústí nad Orlicí (home), Praha (school)
    Příspěvky
    956
    Vliv
    274

    Standardní

    ted resim jeste jeden problem, hodim to sem:

    html soubor sem si nasekal do poli po radcich, viz. vyse. a ted mam napr. toto:
    Kód:
    $work&#91;0&#93; == <html>
    a pouziju toto:
    Kód:
     fputs &#40;$fp, $work&#91;0&#93;&#41;;
    no a ve vyslednem souboru se mi objevi toto: &lt;html&gt;

    a ja tam chci mit <html>. vim jak pomoci fce htmlspecialchars prevest znaky <>, ale ted to potrebuji obracene.
    KILL YOUR MOTHER, RAPE YOUR DOG!
    AMD Barton 2500+@2300MHz (209x11; 1,65V) Zalman 7000A AlCu Asus A7V880 VM 512 MB DDR 400 Mhz 5ns Microstar GeForce Ti 4200 64 MB 316/610 Hitachi 80 GB S-ATA Seagate Barracuda IV 60 GB Nec DVD+-RW 1300A Teac 524E 40x24x10 Creative Audigy Genius Home Theater 5.1 Wood Eurocase Bigtower 763 Moded Edimax 10Mb/s LAN Genius F-23 Leadtek Winfast TV 2000 XP Deluxe Samsung 172X Microsoft Intelimouse Optical Umax WK9000 klávesnice Fortron 350W 120 Fan Silent 14512 - 3D Mark 2001 (eště mu dám trošku pokouřit)

  17. #17
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    285

    Standardní

    no, je mi prinejmensim podivne, ze to dela takovou vec, (tu konverzi), nicmene funkce kterou hledas je http://mirrors.inway.cz/manual/en/fu...ars-decode.php
    spis bych ale resil zarodek problemu, tj proc se ti to "prekoduje"
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  18. #18
    Senior Member
    Založen
    08.10.2002
    Bydliště
    Ústí nad Orlicí (home), Praha (school)
    Příspěvky
    956
    Vliv
    274

    Standardní

    no me se to prekoduje protoze pri rozsekani souboru do pole jsem musel pouzit fci htmlspecialchars. takto:
    Kód:
    $data = File &#40;"vystupn.html"&#41;;
    while &#40;list &#40;$line_num, $line&#41; = each &#40;$data&#41;&#41; &#123;
       $work&#91;&#93; = htmlspecialchars &#40;$line&#41;;
    &#125;;
    pokud tam ta fce neni tak to nefunguje. pak s tim polem "cosi" udelam a zase ho zapisuju do jineho souboru a musim to znova prekonvertovat. uz jsem to vyresil, ale s fci htmlspecchars_decode je to elegantnejsi.

    edit: koukam ze je to php5, asi uzu fakt budu muset prejit na 5
    KILL YOUR MOTHER, RAPE YOUR DOG!
    AMD Barton 2500+@2300MHz (209x11; 1,65V) Zalman 7000A AlCu Asus A7V880 VM 512 MB DDR 400 Mhz 5ns Microstar GeForce Ti 4200 64 MB 316/610 Hitachi 80 GB S-ATA Seagate Barracuda IV 60 GB Nec DVD+-RW 1300A Teac 524E 40x24x10 Creative Audigy Genius Home Theater 5.1 Wood Eurocase Bigtower 763 Moded Edimax 10Mb/s LAN Genius F-23 Leadtek Winfast TV 2000 XP Deluxe Samsung 172X Microsoft Intelimouse Optical Umax WK9000 klávesnice Fortron 350W 120 Fan Silent 14512 - 3D Mark 2001 (eště mu dám trošku pokouřit)

  19. #19
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    285

    Standardní

    nemusis

    http://mirrors.inway.cz/manual/en/fu...array-flip.php

    http://mirrors.inway.cz/manual/en/fu...tion-table.php

    <?php
    $trans = get_html_translation_table(HTML_ENTITIES);
    $str = "Hallo & <Frau> & Krämer";
    $encoded = strtr($str, $trans);
    ?>
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  20. #20
    Senior Member
    Založen
    08.10.2002
    Bydliště
    Ústí nad Orlicí (home), Praha (school)
    Příspěvky
    956
    Vliv
    274

    Standardní

    ja to udelal takhle :

    Kód:
    $work&#91;$m&#93; = str_replace&#40;array&#40;"&gt;", "&lt;", "&quot;", "&amp;"&#41;, array&#40;">", "<", "\"", "&"&#41;, $work&#91;$m&#93;&#41;;
    KILL YOUR MOTHER, RAPE YOUR DOG!
    AMD Barton 2500+@2300MHz (209x11; 1,65V) Zalman 7000A AlCu Asus A7V880 VM 512 MB DDR 400 Mhz 5ns Microstar GeForce Ti 4200 64 MB 316/610 Hitachi 80 GB S-ATA Seagate Barracuda IV 60 GB Nec DVD+-RW 1300A Teac 524E 40x24x10 Creative Audigy Genius Home Theater 5.1 Wood Eurocase Bigtower 763 Moded Edimax 10Mb/s LAN Genius F-23 Leadtek Winfast TV 2000 XP Deluxe Samsung 172X Microsoft Intelimouse Optical Umax WK9000 klávesnice Fortron 350W 120 Fan Silent 14512 - 3D Mark 2001 (eště mu dám trošku pokouřit)

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •