- Mobil flották
- iPhone topik
- Huawei Mate 50 Pro - blendemonda
- Samsung Galaxy Watch6 Classic - tekerd!
- Milyen okostelefont vegyek?
- Honor 200 Pro - mobilportré
- Megérkezett a Google Pixel 7 és 7 Pro
- Samsung Galaxy Watch7 - kötelező kör
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Google Pixel 9 Pro XL - hét szűk esztendő
Új hozzászólás Aktív témák
-
vakondka
őstag
Sziasztok,
Van egy stringem, amiben van egy ár és azt kellene valahogyan hatékonyan kiszednem a két zárójel közül.
(a pont sem kellene a számból...)
Azt tudom, hogy valószínűle preg_match() kellene hozzá, de itt megállt a tudományom
Ez az egyik példastring:$product = "iDream 1260 fejmasszírozó (39.900Ft)";
Előre is köszi!
-
orkester
őstag
válasz
fordfairlane #14696 üzenetére
Lecseréltem a template-et az alapra, de sajnos ugyanaz volt a helyzet.
A vessző hibát is javítottam, de nincs változás.Az AJAX hiba elképzelhető, hogy szerver beállítástól függő? Sajnos AJAXban nem igen vagyok otthon.
-
fordfairlane
veterán
válasz
Joci93 #14697 üzenetére
Akkor valószínűleg az átirányítás nem működik. A header csak akkor működik, ha előtte nem történt írás a kimenetre, a böngésző felé (akárcsak egy szóköz vagy sortörés, vagy hibaüzenet, bármi). Ha az output buffering localhoston be van kapcsolva, akkor ezt észre sem veszed, mert ilyen esetben késlelteti a kiíratást a PHP.
-
Joci93
senior tag
válasz
fordfairlane #14694 üzenetére
Van benne session_start();
A teljes kód:<?php
session_start();
include("db_connect.php");
if(!isset($_SESSION["felhasznalok"])){
header("location:reg.php");
}
$usercheck_time = time();
$felhasznalok_sql="SELECT * FROM felhasznalok WHERE id=" .$_SESSION["felhasznalok"];
$felhasznalok_lekerdezes=mysql_query($felhasznalok_sql);
$felhasznalok=mysql_fetch_array($felhasznalok_lekerdezes);
if (isset($_POST["email"])) {
$ToEmail = $_POST["email"];
$EmailSubject = ' meghívás';
$mailheader = "From: ".$felhasznalok["email"]."\r\n";
/* $mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; */
/* $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";*/
$mailheader .= $felhasznalok["email"]. " "."Test";
mail($ToEmail, $EmailSubject, $mailheader) or die ("Error");
?>
Invitation is sent succesfully!
<?php
} else {
?>
<form action="email.php" method="post">
<table width="400" border="0" cellspacing="2" cellpadding="0">
<tr>
<td class="bodytext">Email adress:</td>
<td><input name="email" type="text" id="email" size="32"></td>
</tr>
<tr>
<td class="bodytext"> </td>
<td align="left" valign="top"><input type="submit" name="Submit" value="Send"></td>
</tr>
</table>
</form>
<?php
};
if(isset($_POST['Submit'])){
$sql =("UPDATE felhasznalok SET meghivok=meghivok+1,login=now(),pontok=pontok+5 WHERE id={$_SESSION['felhasznalok']}");
$result = mysql_query($sql) or die(mysql_error()); }
else{}
?> -
fordfairlane
veterán
válasz
orkester #14695 üzenetére
Ezen a vonalon próbálkoznék tovább. Még látok fölösleges html és body tagokat a forrásban.
Az AJAX lekérések látszólag ugyanolyanok, és ugyanolyan jók, mint a többi lépésnél. Ha azok működnek, akkor ennek is működnie kell elvileg. Persze ezt kell legelőször kizárni. Tehát először érdemes a shipping_method templatejét lecserélni valami nagyon egyszerűre. Ha az megjelenik IE8-ban is, akkor egyértelmű, hogy ezzel van a gond. Ha viszont nem jelenik meg az sem, akkor az AJAX request-response kezelés környékén van valami gebasz.
Apróság, de futási hibát dob:
Searchanise.options.PriceFormat = {
'rate': "1",
'symbol': " Ft",
'after': true,
'decimals': "0",
'decimals_separator': ",",
'thousands_separator': " ",
};Az utolsó 'thousands_separator' value utáni vesszőre nincs szükség.
-
orkester
őstag
válasz
fordfairlane #14693 üzenetére
Köszi, elvileg kiszedtem a felesleget, de nem történt változás.
-
fordfairlane
veterán
válasz
orkester #14688 üzenetére
Az lehet a gond, hogy a http://microstore.hu/index.php?route=checkout/shipping_method által visszaadott
html kód problémás. Nyitó - záró html és body tagok vannak benne, amik nyilvánvalóan fölöslegesek egy body-ba ágyazott html dokument fragment esetében. A többi AJAX response htmlje nem tartalmaz ilyeneket. Talán ez lehet a probléma oka, bár biztosat nem tudok mondani. -
Joci93
senior tag
válasz
DeltaPower #14687 üzenetére
1.Így is beenged egyből. De, akkor miért működik jól localhoston?
2. Azt hiszem, hogy újra át kell néznem a .htaccess beállítását...
-
Speeedfire
félisten
válasz
Tele von Zsinór #14689 üzenetére
Én is így tudtam.
Sk8erPeter:
Ezt én hol állítottam? Azt írtam, hogy nem akarom én magam bejárni a tömböt x alkalommal. Ha írok rá egy függvényt, akkor az végigmegy a tömbön és visszaadja a vágott tömböt. Aztán végigmehetek én is a vágotton.
Ha egy beépített gyorsabb, akkor miért ne használjam inkább azt? -
Sk8erPeter
nagyúr
válasz
Speeedfire #14683 üzenetére
Nyilván jobbak TELJESÍTMÉNYBEN (könyörgöm, nem performanciában, ki a tököm találta ki ezt a szót?
), de a hozzászólásodból úgy tűnt, mintha azt állítanád, hogy ezzel elkerülöd, hogy végig kelljen menni a tömbön, de hidd el, nem fogod attól még megkerülni magát a tömbbejárást attól még, mert beépített megoldást használsz. DE gyorsabb a beépített megoldás, az annyira nem meglepő.
-
Tele von Zsinór
őstag
válasz
Speeedfire #14683 üzenetére
Nem csak szerinted - valóban van teljesítménybeli különbség a C-ben írt ciklus és a php-ban írt között. Én is pont ezért használom az array_map és array_filter függvényeket, illetve társaikat napi szinten.
-
orkester
őstag
Sziasztok!
Nem szeretnék pofátlan lenni, hogy áthárítom a megoldást, de napok óta nem jövök rá mi lehet a baj az oldallal IE8 és az alatt, hogy nem működik.
Akinek lenne rám egy kis ideje itt tud belépni egy próba felhasználóval:
[link]
takacs.ferenc26@gmail.com
jelszó: 123456Utána kosárra kattintva lesz a problémás rész.
Kérlek a rendelést ne hagyjátok jóvá a végén.A lényeg, hogy a szállítási módok nem jönnek elő és fogalmam sincs miért.
Chrome, firefox, IE9 és felfelé nincs gond.Próbáltam javascriptet régebbire cserélni, a kódból kiszedni minden olyat ami utólag került bele, de nem oldotta meg és minden nap gyötörnek vele, nem sokáig húzhatom már a dolgot. Nem is kell helyettem megcsinálni, csak egy ötlet vagy bármi segítség, hogy mi lehet a baj, rettentően segítene.
-
DeltaPower
addikt
válasz
Joci93 #14684 üzenetére
1. Nyisd meg inkognitó ablakban, ha úgy is egyből beenged akkor a kódban rossz valami.
2. Ennek miért kellene leszedni a .php végződést a linkekből? Ez azt csinálja, hogy minden nem létező fájlra mutató kérést átirányít az azonos nevű php-ra. Nyilvános tárhelyre így fel ne tedd az oldalt.
-
Peter Kiss
őstag
válasz
Sk8erPeter #14680 üzenetére
Ha tesztelné a logikáját, akkor ezzel a megoldással kevesebb teszt is elegendő lenne, persze elképzelhető, hogy szét kellene szedni kicsit, de itt maximum kb változókba való kipakolásról (pl. a closure-t) gondolok.
Ha ciklusokat írsz, és abba if-eket és hasonlóakat, akkor növeled a kódod cyclomatic complexity-jét.
Persze ez az érv szerintem nem fordult meg Speedfire fejében.
-
trisztan94
őstag
válasz
Sk8erPeter #14673 üzenetére
Na hát igen, ez az a pillanat amikor nem tudok mit mondani.
Utánanéztem, tényleg irdatlan nagy hülyeséget mondtam
Az az igazság, hogy sosem néztem nagyon bele ezekbe, mondhatjuk azt is, hogy "találgattam" a működésüket. Jó, nyilván nem találgattam, a titkosítottat sem úgy értettem (mert ugye az csak https-el van).
Minden jó, ha a vége jó: utánanéztem, most már kenem-vágom a témát. Mindennap tanul valamit az ember
-
Joci93
senior tag
Az miért van, hogy a lentebb található kód tökéletesen működik localhoston, de feltéve szerverre már nem hajlandó lefutni? A szerveren $_SESSION[" "] nélkül is beenged az oldalra, míg a localhoston átirányít a reg.php-ra.
<?php
if(!isset($_SESSION["felhasznalok"])){
header("location:reg.php");
}
?>A másik:
Csináltam egy .htaccess fájlt, amibe az alábbi sorokat írtam:
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L]Látszólag jó a kód, de mégsem távolítja el az URL címből a .php végződést. (A fájlok a xamp/htdocs/tesz mappában vannak.)
-
Speeedfire
félisten
válasz
Sk8erPeter #14682 üzenetére
Nem viccelek, szerintem jobbak performanciában a beépített dolgok, mint amit én találok ki. Lehet van valami jobb algoritmus benne és nem sima ciklus.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #14681 üzenetére
"Nem akartam for/while/foreach ciklust használni. Pont ezt akartam elkerülni, hogy több 10ezer elemen végig kelljen menni x alkalommal."
Most viccelsz, ugye?Szerinted a beépített PHP-s függvények mit csinálnak, amikor bejárják a tömböt, hogy adott feltételnek megfelelő elemet keressenek, nem végigmennek rajta?
-
Speeedfire
félisten
válasz
Sk8erPeter #14680 üzenetére
Nem akartam for/while/foreach ciklust használni. Pont ezt akartam elkerülni, hogy több 10ezer elemen végig kelljen menni x alkalommal. Megkapom a tömböt és leszűröm arra amire kell. Utána pedig végigmegyek rajta egy ciklussal.
Jelenleg nem kell function, mert csak 1 helyen használom fel. De ha mégis akkor meg a Tools osztályba.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #14675 üzenetére
Miért nem rakod mindezt egy függvénybe, hogy általánosabb megoldás legyen, vagy mondjuk írsz egy nyomorult egymásba ágyazott, nagyon gyorsan áttekinthető for vagy foreach ciklust? Vagy utóbbi má' égő?
Pedig azt olyan 10 másodperc megírni.
-
Speeedfire
félisten
válasz
Peter Kiss #14676 üzenetére
Teljesen jogos, csak copypasteltem, de nem írt hibát.
fordfairlane:
Netbeans nem szólt, otthon meg nincs beállítva az xdebug.De kijavítottam, most már rendeben van. Már csak újra kell indexelni a tömböt szűrés után.
-
fordfairlane
veterán
válasz
Speeedfire #14675 üzenetére
Csatlakozom az előttem szólókhoz. Hogy a fenébe lehet ennyire zavaros kódot szülni? Az editor, a futtatókörnyezet nem sikít vörösre festett warningokkal? XDebug nincs felrakva?
-
DeltaPower
addikt
válasz
Peter Kiss #14676 üzenetére
ini_set("display_errors","on");
error_reporting(E_E_E_E_E_EEEEEEVERYTHING); -
Peter Kiss
őstag
válasz
Speeedfire #14675 üzenetére
Nem tűnik fel, a $B tömböt nem használod semmire?
És a $filter_array nem létezik?Error reporting?
-
Speeedfire
félisten
válasz
Sk8erPeter #14673 üzenetére
<?php
$A = array(array('id'=>3, 'value'=>4, 'test'=>true), array('id'=>3, 'value'=>5, 'test'=>true), array('id'=>4, 'value'=>4, 'test'=>true));
$B = array('id'=>3);
$filtered_array = array_filter($A, function ($val_array) use ($filter_array) {
$intersection = array_intersect_assoc($val_array, $filter_array);
return (count($intersection) === count($filter_array));
});
var_dump($filtered_array);
//$filtered_array = array(array('id'=>3, 'value'=>4, 'test'=>true), array('id'=>3, 'value'=>5, 'test'=>true));Azt szeretném ezzel elérni, hogy az A tömbböt szűrje le azokra, amiben az id értéke 3. Mintha sql alatt egy where id = 3 feltételt adtam volna meg.
-
Sk8erPeter
nagyúr
válasz
Fecogame #14665 üzenetére
Az általad belinkelt oldalon ebből sejthetően a $_REQUEST tömböt használják az explicit $_POST vagy $_GET tömbök helyett, ami tartalmazza a $_GET, $_POST és $_COOKIE tömbök tartalmait is.
Nyiss egy fejlesztői eszköztárat (Ctrl+Shift+I vagy F12), és nézd meg a tagkereső űrlap kódját, ott láthatod, hogy POST-metódus van beállítva:Jelen esetben (mivel valszeg a $_REQUEST-tömböt használják az űrlap-feldolgozáskor) működik az, hogy ezt fogod, és átírod szépen GET-metódusra (method="get"), így amit beírsz majd a szövegmezőbe, az majd meg fog jelenni az URL-ben is, és még meg is kapod a kívánt tartalmat. Utóbbi más weboldalak esetében általában nem igaz, mert általában nem a $_REQUEST tömböt használják.
Itt ennél az űrlapnál egyébként semmi nem indokolja a POST-metódus használatát, mivel ez egy kereső, és itt pont az lenne a lényeg, hogy az URL eleve elküldhető, kimásolható, könyvjelzőzhető legyen. -
Sk8erPeter
nagyúr
válasz
SirRasor #14655 üzenetére
Igazán leírhattad volna, mit csesztél el, mert már felkeltetted az érdeklődésemet azzal, hogy le akartad tiltani a kivételkezelést.
(#14657) Speeedfire :
Igazából mi a célod, mit szeretnél?(#14666) trisztan94 :
ezt bebélyegezve írtad, vagy józanul? Habár ha előbbi, akkor ennél szebbet is írhattál volna."Az általános kérések GET-tel mennek a szerver felé"
Milyenek azok az "általános kérések"?"A másik lehetőség a POST kérés, ami egy titkosított kérés. Ezt általában regisztrációs felületeken, login felületeken, vagy bármi olyanon szokták használni, ami titkosítást igényel. Cserébe nyilván sokkal lassabb, mint a GET. Ezt kinyerni szinte lehetetlen, ebben a topikban nem is foglalkozunk ezzel, nem akarjuk, hogy bárki kivegye más oldalak POST kéréseit. Mert az nagyon rossz lenne.
"
Hát ez óriási.
Igazából az egymás után következő mondataidból nem is nagyon lehet kiemelni blődséget, mert egyik üti a másikat.Titkosított? Olyan felületeken használnak POST-metódust, ahol titkosításra van szükség?
Lassabb? Kinyerni lehetetlen? Nagyon jó, még!
(Habár ne, mert valaki még elhiszi.)
Igazából nekem most szereztél pár vidám percet, de összességében ez elég szomorú, mert tudtommal igen aktívan fejlesztesz weboldalakat, több programozási nyelven is, de láthatólag fogalmad sincs az alapok alapjainak legelemibb részeivel sem. Bocs, de evvan.
Inkább kérdezz vagy olvass, ha valami még nem tiszta.
-
fordfairlane
veterán
válasz
trisztan94 #14666 üzenetére
Ez egyáltalán nem így van, sem a GET sem a POST lekérések nem titkosítottak. Ahhoz https protokoll szükséges. Egyébként meg nyilván AJAX lekérdezéseket kellene megjeleníteni, amik nem látszanak az URL-ben, akármelyik metódust használják.
-
DNReNTi
őstag
válasz
Peter Kiss #14668 üzenetére
Jól összefoglaltad
-
Peter Kiss
őstag
válasz
trisztan94 #14666 üzenetére
Úristen.
-
Soak
veterán
válasz
trisztan94 #14666 üzenetére
A másik lehetőség a POST kérés, ami egy titkosított kérés. Ezt általában regisztrációs felületeken, login felületeken, vagy bármi olyanon szokták használni, ami titkosítást igényel. Cserébe nyilván sokkal lassabb, mint a GET. Ezt kinyerni szinte lehetetlen, ebben a topikban nem is foglalkozunk ezzel, nem akarjuk, hogy bárki kivegye más oldalak POST kéréseit. Mert az nagyon rossz lenne.
A tobbi resze sem gyenge de ez nagyon felre ment.[link]
-
trisztan94
őstag
válasz
Fecogame #14665 üzenetére
Az általános kérések GET-tel mennek a szerver felé. Egy ilyen GET kérésben lehet pluszinfó is, pl. változók. Erre egy nagyon jó példa itt a PH! működése, ennek a hsz. író felületnek ez a GET kérése:
http://prohardver.hu/muvelet/hsz/uj.php?thrid=552418&rtoid=14665
Ez lefordítva magyarra:
http kapcsolattal menj fel a prohardver.hu domain alatt lévő muvelet mappában lévő hsz mappán belülre, ott futtatsd le az uj.php fájlt. + vannak változók is, a thrid és az rtoid. Ebből a thrid az a "thread identification", azaz a topik egyedi azonosítója, a rtoid pedig a hsz.-ed azonosítója amire válaszolok. Ezekből a változókból, meg még egy pár dologból rakja magát össze ez a rendszer.
Na most ennek a kinyerése roppant egyszerű:
[link]A másik lehetőség a POST kérés, ami egy titkosított kérés. Ezt általában regisztrációs felületeken, login felületeken, vagy bármi olyanon szokták használni, ami titkosítást igényel. Cserébe nyilván sokkal lassabb, mint a GET. Ezt kinyerni szinte lehetetlen, ebben a topikban nem is foglalkozunk ezzel, nem akarjuk, hogy bárki kivegye más oldalak POST kéréseit. Mert az nagyon rossz lenne.
-
Adott weboldalon ha rákattintok egy gombra, akkor az lead egy kérést a szerver felé, ami egy URL. Hogyan tudom ezt az URL-t "kinyerni"? Pl. a phmegbízhatóság oldalán is van a lekérés, ehhez is van egy URL, holott a böngésző nem jeleníti meg ezt közvetlenül. Ugyanezt hogyan lehet lekérni egy másik oldalon?
-
PumpkinSeed
addikt
válasz
DeltaPower #14663 üzenetére
Köszönöm. Már csak a karakterkódolással van probléma.
-
DeltaPower
addikt
válasz
PumpkinSeed #14662 üzenetére
Ne a $fp file pointert explode-old, hanem a $beolvas stringet.
-
PumpkinSeed
addikt
válasz
DeltaPower #14661 üzenetére
Most így néz ki:
$i=0;
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/../arlista.txt",'rb');
while(! feof($fp))
{
$beolvas = fgets($fp);
$arak[$i] = explode(",",$fp);
$i++;
}
fclose($fp);
$arak[1][2];Ezt a hibát kapom:
Warning: explode() expects parameter 2 to be string, resource given in C:\Users\looow\Desktop\USBWebserver v8.5\8.5\root\shop.php on line 29Mit lehet tenni, ez ellen?
-
DeltaPower
addikt
válasz
PumpkinSeed #14660 üzenetére
Tömböt ad vissza, ezért gondoltam egyértelmű, hogy $arak[0], $arak[1] stb. mivel a sorból egydimenziós tömb lesz.
-
PumpkinSeed
addikt
válasz
DeltaPower #14659 üzenetére
"$megrendeles = fgetcsv($fp, 100, "\t");
Ez a kód lekér egy sort a fájlból, majd ahol tabulátort (\t) talál, felbontja azt. Az eredményeket tömbben adja vissza (aminek
példánkban Smegrendeles a neve). A tömböket a 3. fejezeeben fogjuk részleeesen megtárgyalni."Ez volt a könyvben, és mivel én tabulátorokkal adtam meg, így felbontja azt. Tudom, hogy ciklussal kellene a többi sort beolvastatni, de nem az volt a kérdés hanem, hogy hogyan hivatkozom rá?
-
DeltaPower
addikt
válasz
PumpkinSeed #14658 üzenetére
fgetcsv egyszerre egy sort olvas
-
PumpkinSeed
addikt
Az fgetcsv-t kellene használnom, elvben ez beleteszi egy tömbbe az elemeket.
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/../arlista.txt",'rb');
$arak = fgetcsv($fp, 100, "\t");Így nézz ki az ide tartozó rész. Illetve ezt kell beolvasni:
Azonosító Neve Ára
GUM Gumiabroncs 300
GYE Gyertya 150
OLA Olaj 20Viszont nem tudom, hogy a beolvasás után hogyan hivatkozzak rá? A beolvasandó szöveg tabulátorokkal van elválasztva. Akkor hivatkozhatok úgy rá, hogy $arak[1][2]?
-
Speeedfire
félisten
Ez működik valakinek?
Nálam nem akarja megcsinálni és még hibát is dob rá.<?php
$A = array(array('id'=>3, 'value'=>4, 'test'=>true), array('id'=>3, 'value'=>5, 'test'=>true), array('id'=>4, 'value'=>4, 'test'=>true));
$B = array('id'=>3);
$filtered_array = array_filter($A, function ($val_array) use ($filter_array) {
$intersection = array_intersect_assoc($val_array, $filter_array);
return (count($intersection) === count($filter_array));
});
var_dump($filtered_array); -
#36268800
törölt tag
Üdv!
(Először is elnézést szeretnék kérni, ha rossz topic-ba írok, ez esetben legyetek szívesek átirányítani a megfelelő helyre! Köszönöm!)
Tanácsot szeretnék kérni a következő dologban:
a húgomnak szeretnék egy portfóliós weboldalt (esetleg blogot), amely ingyen van, könnyen és gyorsan szerkeszthető, lehetőleg magyar vagy angol nyelven fellelhető és a következőket tartalmazhatja: galéria, hírek, többféle oldalfelépítés, testre-szabható design.A húgom amatőr fotós, így szeretnénk a képeit kicsit propagálni, valamint hosszútávon ez egy jó lehetőség lenne számára egyfajta felelős gondolkodás kialakításában, hiszen a weboldallal törődnie kellene rendszeresen (friss hírek, képek feltöltése, válasz az esetleges levelekre, az adott időnek megfelelő design kialakítása), valamint a kreativitásán is csiszolna.
Nekem még igen kevés a tapasztalatom a weboldalak terén, épp ezért szeretnék egy könnyen kezelhető, megbízható, ingyenesen hozzáférhető motort. Köszönöm előre is a válaszokat!
-
SirRasor
addikt
Hoi!
Találkoztatok már olyannal, hogy
"Parse error: syntax error, unexpected '{' in..." hibát dob, ha csinálok egy szabvány try blokkot?
Arra a sorra dobja a hibát, ahol a try { helyezkedik el. Ha sort török, és egyedül áll a {, akkor arra a sorra mondja a hibát.DE csak a try-nál fordul elő. Elé bevágtam szimpla ifet teleaggatott {}-al és továbbjutott rajta.
Másik szerveren nem volt ilyen gond, de guglizásban arra jutottam, hogy php.ini-vel nem lehet letiltani a try-finally dolgot. Vagy mégis?
-
trisztan94
őstag
válasz
PumpkinSeed #14652 üzenetére
Szebb úgy, ha a string összefűzést egy külön változóban csinálod, majd azt adod meg, mint index
for($i=0;$i<7;$i++)
{
$index = "input_".$i;
$input = $_POST[$index];
echo $input;
}Később sokkal átláthatóbb lesz.
-
PumpkinSeed
addikt
válasz
PumpkinSeed #14651 üzenetére
$input = $_POST['input_'.$i];
-
PumpkinSeed
addikt
for($i=0;$i<7;$i++)
{
$input = $_POST['input_$i'];
echo $input;
}Azt szeretném megcsinálni, hogy a post-al átküldött adatokat beolvassam, de mivel input_1-8-ig van ezért, hogyan lehetne azt megcsinálni, hogy for-ral fogadjam őket, mert gondolom a fenti megoldásom hülyeség.
-
Speeedfire
félisten
Találtam egy tök jó php hibát.
Adott egy tábla amiben egy clob mező van. Ezt kifetchelem (de szép szó) egy tömbbe és végigmegyek rajta egy foreach ciklussal.
A clob mezőt egy stream_get_contents() függvénnyel egy változóba rakom. Itt a hiba. Minden egyes iterációban a legutoljára fetchelt clob mező tartalma van, a többi mező értéke megfelelő.
A másik érdekesség, hogy a resource_id minden esetben más és más, mégis a legutolsót írja ki. -
DeltaPower
addikt
válasz
PumpkinSeed #14648 üzenetére
usort ha pozitív számot kap visszatérésnek akkor az első nagyobb mint a második, ha negatívot akkor a második nagyobb mint az első, ha nullát akkor egyenlőek
-
PumpkinSeed
addikt
function osszehasonl itas ($x, $y} l
if ($x[l) == $y[l)} l
return 0;
else if ($x[l) < $y[l)}
return -1;
else l
return l;
usort( $termekek, 1 osszehasonli t as 1};Ezt egy könyvből másoltam ki. Itt amit visszaad return-ba érték azt az usort függvény kapja meg, szóval ha én átírnám mondjuk az else if return értékét 2-re akkor az usort függvény hibásan futna le, vagy hogy van ez most?
-
#68216320
törölt tag
válasz
Sk8erPeter #14646 üzenetére
Köszönöm a segítséget, és elnézést tőled és Kommy fórumtárstól, hogy beleszóltam a dolgotokba, de kíváncsi lettem és igencsak megérte.
-
Sk8erPeter
nagyúr
válasz
#68216320 #14645 üzenetére
Ja, törölhető a console.log nyilván, ott csak az volt a cél, hogy megmutassam, hogyan nyerheted ki az értékét a kiválasztott elemnek egyszerűen. (event.target.value)
A checkboxos kérdésre: nem "csináltam" semmilyen elemet, egyszerűen csak lekértem a rendkívül fantáziadúsan "checkbox" id-vel rendelkező elemet (document.getElementById-vel), és belepakoltam a visszatérési értéket egy változóba. Aztán azzal lehet azt kezdeni, amit akarsz. Itt a kódban szerepe nincs, csak beleraktam, először gondoltam rá, hogy kezdek vele valamit szemléltetésként, aztán menetközben rájöttem, hogy nincs kedvem."Visszatérve az onChange eseménykezelőhöz this.form.submit()-al már ment volna az is nem? Persze nem lenne szép a kód azt elismerem
"
Igen, és igen. Hangsúlyosabb, hogy nem lenne szép a kód, de valóban működött volna. -
#68216320
törölt tag
válasz
Sk8erPeter #14644 üzenetére
Aha, világos a működése, köszönöm.
Gondolom a console.log nyugodtan törölhető.
checkBox = document.getElementById('checkbox'); - ezt nem értem miért van benne, de gondolom csak annyi, hogy csináltál belőle is egy checkBox névvel elemet. Nem?
Visszatérve az onChange eseménykezelőhöz this.form.submit()-al már ment volna az is nem? Persze nem lenne szép a kód azt elismerem
-
Sk8erPeter
nagyúr
válasz
#68216320 #14642 üzenetére
"onChange="javascript:submit()" amire gondoltál?"
Nem. Ez a "javascript:" rész eleve nem szükséges (honnan maradt ez meg a fejekben?). Az onchange eseménykezelő eleve JavaScript-kódot vár, úgyhogy felesleges explicite megmondani neki. Ez az onchange-be rakott submit azért sem jó, mert a submit() a formra vonatkozik, nem a selectre, az onchange eseménykezelőjét viszont akkor már a select elemhez kellene írni. Ezenkívül eleve szét kell választani a HTML-kódot a JavaScript-kódtól (és ugyanez vonatkozik a CSS-kódokra is egyébként), az ilyen attribútumokkal bedrótozott megoldások nem jók, hosszú távon karbantarthatatlanok. Igaz, vannak bizonyos beállítás-jellegű dolgok, amiket néha be kell drótozni, például a data-* attribútumok, de az más lapra tartozik.
Gyorsan bepötyörésztem neked egy példakódot, mire gondolok:
http://jsfiddle.net/25FXE/1/
Itt látható, hogy a JavaScript-kód független a HTML-kódtól.
Ha a myTestForm.submit(); sort kikommentezed, és megnyitod a konzolt (Ctrl+Shift+I, Console fül), akkor láthatod a kiválasztott értéket, ami az eseménykezelőn belül az event.target.value-val érhető el.(#14643) Kommy: szívesen.
-
Kommy
veterán
biker, Sk8erPeter: köszönöm szépen a rávezetést, így legalább már tudtam mire kell keresnem.
-
#68216320
törölt tag
válasz
Sk8erPeter #14641 üzenetére
onChange="javascript:submit()" amire gondoltál?
-
Kommy
veterán
Meg lehet az valahogy csinálni, hogy van egy select-em aminek választási lehetőségeit egy sql lekérdezéssel állítom össze, és ha kiválasztom valamelyiket akkor lefusson újra egy rész a php-ben ami az adatok kijelzéséért felelős.
-
#68216320
törölt tag
válasz
DNReNTi #14637 üzenetére
Az a helyzet, hogy az 500 karakter a maximum. Tehát, ha nem mondatvégi írásjel (.!?") akkor visszafele kellene néznem a dolgokat. olyat már meg tudtam csinálni, hogy explode-al szétbontottam az 500 karaktert a szóköz segítségével és az utolsót nem számoltam, így biztosra mentem, hogy nem szó közben vágom el. A te módszereddel, a hozzáfűzéssel az a baj, hogy vannak a szövegben szakmai részek, amik elég kerek mondatok és akár +200 karaktert is jelenthetnek könnyedén. ennyi hely nincs a div-ben, ahova menne a szöveg. Így is trükköznöm kellett, hogy a spec HTML részeket (pl. <br />) eltüntessem strip_tags()-al.
Gondban vagyok még a " (idézőjel) karakterrel, mert ha egy mondat abban van akkor nem elég a mondatvégi írásjel, hanem az is kell még. Ha nem fér bele az idézőjelek közti rész az 500 karakterbe az egészet ki kellene hagynom. -
DNReNTi
őstag
válasz
#68216320 #14636 üzenetére
Először vizsgáld hogy a szöveg 500 karakter hosszú e.
Ha nem akkor kész is vagy.Ha több mint 500 karakter, akkor a substr függvénnyel addig vizsgálod a következő karaktereket amíg egy mondatvégi írásjelet nem kapsz, és mindet hozzáfűzöd az eredeti 500 karakterhez.
Vagy strpos függvénnyel meghatározni az 500. karaktertől következő legközelebbi megfelelő karakter pozícióját majd a substr-el addig levágni az elejétől. Talán ez még egyszerűbb.
-
#68216320
törölt tag
Egy nagyobb szövegből kellene az elejét kiíratnom úgy, hogy a kiírt szöveg vége egyben a mondat vége is legyen. Például azt mondom, hogy az első 500 karaktert írom ki. De ekkor a mondat közben van valószínűleg az 500-ik karakter, sőt legtöbbször szó közben. Mivel tudnék úgy kiragadni egy részt, hogy valamelyik mondatvégi írásjel legyen az utolsó karakter? Explode jó lenne talán, de nem vagyok biztos a dolgomban.
-
Speeedfire
félisten
válasz
Sk8erPeter #14633 üzenetére
Adatbázis php vonal. Php-ból utf8-al kerek le, de az adatok iso-ban vannak. Itt lehetett gond.
De itt xls volt a kimenet. -
Zedz
addikt
Sziasztok,
CodeIgniterben megpróbáltam használni a beépített input class-t. Alapjában véve működik, szépen átadja a bevitt értéket, nem is ezzel van a gond, hanem azzal, hogy kíváncsiságból megpróbáltam egy sql injectiont beszúrni. Elvileg védve van ezektől, nem is dobta ki a találatokat, viszont egy hatalmas nagy SQL error üzenetet + magát az SQL lekérdezést is kiírta!
Valaki meg tudná esetleg mondani, hogy ezt hogyan kell lekezelni a CI-ben? Próbáltam különféle képpen rákeresni googlen is, de egy talált sem passzolt az én problémámra. Hátha itt valaki már foglalkozott ezzel, a válaszokat előre is köszönöm!
-
Sk8erPeter
nagyúr
válasz
Speeedfire #14632 üzenetére
És akkor most végül is pontosan hol volt elkúródva a karakterkódolás?
Amúgy a <br /> használata sztem az általad mutatott esetben nem indokolt, inkább margózással kellene megoldani a távolságtartást.Igazából a <br />-ekkel az a gond, hogy nehézkessé teszi a későbbi átszabását a dizájnnak, bedrótozza a távolságot, a margó előnye, hogy csak a CSS-fájlban kell turkálni.
-
Speeedfire
félisten
válasz
Sk8erPeter #14631 üzenetére
Random helyen cseszódött el, egy db lekérdezéshalmaznál. Ott ezt csinálta, a többi ékezetesnél nem volt gond. Így nem is vettem figyelembe az ékezetet.
Nálam adatbázisban így néz ki.
<table>/*-------*/</table>
<br>
<br>
<table>/*-------*/</table> -
Sk8erPeter
nagyúr
válasz
Speeedfire #14630 üzenetére
Ja, ezek szerint félreértettelek, azt hittem, csak az ékezeteknél csesződik el, és lesz például <tdápa, utca 101< td teszt></tdápa,>, mint a példádban, de ettől még a <table>...</table> után egyből következik két <br />, majd utána egy <td> is, akkor sorry.
-
Speeedfire
félisten
válasz
Sk8erPeter #14629 üzenetére
Ezt írtam, hogy valid adatb. oldalon, de php-nál mer nem.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #14628 üzenetére
És a markup struktúráját, amit írtam, javítottad már?
Nem tudom, mennyire jött át, de a kód, amit a belinkelt hsz.-ben "idéztem", nagyon nem volt valid.
-
Speeedfire
félisten
válasz
Sk8erPeter #14620 üzenetére
Karakter encoding probléma volt, az érdekes hogy nem volt speciális karakter benne.
-
raczger
őstag
válasz
Sk8erPeter #14626 üzenetére
Ehhez találtam először értelmesnek tűnő leírást, így ezt kezdtem el.
-
raczger
őstag
válasz
Sk8erPeter #14624 üzenetére
Alapból tényleg nem működik, a freetds dblib-et kell telepíteni hozzá.
-
Sk8erPeter
nagyúr
válasz
raczger #14623 üzenetére
Amúgy én már azt sem értem, hogy az mssql_connect nálad hogy működött a XAMPP 1.7.7-tel, mert eszerint abban a csomagban már a PHP 5.3.8 van, amivel már nem kellene működnie az mssql_connect-nek ("These functions allow you to access MS SQL Server database. This extension is not available anymore on Windows with PHP 5.3 or later.")
-
raczger
őstag
PHP-t és MSSQL-t próbálom "összekötni" windows 7-en (localhoston), eddig sikertelenül. Jelenleg elméletileg minden rendben van, de mégsem akar csatlakozni ( unable to connect server ... ).
XAMPP 1.7.7-et ( + freetds 8.0 ) használok, SQL SERVER 2008 R2-ővel. Az utóbbiban sikeresen létrehoztam az adatbázist, felhasználónevet (hozzá a jelszót). Az alábbi két leírás alapján állítottam be a dolgokat: [link], [link]
Túrom egy ideje a netet, sok ötletet kipróbáltam, de eddig még nem sikerült kapcsolódnia. Az alábbi egyszerű kóddal ellenőrzöm, hogy összejött-e:
<?php
$test=mssql_connect('.\SQLEXPRESS','test','test')
or die('Nem sikerült');
?>
Igazából a szerver nevénél sem tudom biztosan mit is kellene használni, így localhost-tal is mindig kipróbálom. Esetleg van valakinek ötlete még mit ellenőrizzek vagy nézzek meg? -
Sk8erPeter
nagyúr
válasz
Speeedfire #14619 üzenetére
Igazából semmivel nem osztottál meg több infót.
Úgyhogy sajnos nem egyszerű így segíteni.
Amúgy ékezet nélkül nem tudod kipróbálni?De ezt azért nézd meg még egyszer, amit írtam:
<table>...</table>
<br>
<br>
<td>...</td>
Ez a kód HIBÁS, vágod...Nem ártana javítani.
(Ettől még mondjuk a HTML-kimenetnek nem kéne elcsesződnie.) -
Speeedfire
félisten
válasz
Sk8erPeter #14618 üzenetére
A részletekben.
De, ott is van, mivel az sql állítja elő a riportot, lényegében egy html alapú tábla, ami content type alapján lesz xls.
A fura, hogy nem minden adatnál volt ilyen, így én is valami '"/ tagokra gondoltam, de nem. Ezeket escape-eltem sql-ben, így elvileg nem szabadna zavarnia a html-t.
Lehet, hogy ékezet, nem jöttem rá. Elkezdtem nézni a táblát, hogy hol hasal el, de nem láttam semmi extra karaktert az sql táblában. Emiatt gondoltam, hogy az adatbázisból való kiolvasáskor van valami gond.
Most megírtam php alatt is a generálót, de így 2 helyen kell karbantartani a kimenetet.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #14617 üzenetére
Ebben hol a PHP?
"A gondom az, hogy toad alatt tökéletes amit generál"
Úgy érted, ott nincs olyan, hogy
<table>...</table>
<br>
<br>
<td>...</td>
meg ehhez hasonló rossz kimenetek?
Igazából nem tudunk semmit a tárolt eljárásról, meg semmiről, így elég nehéz segíteni. De valami mintát észrevettél a szétesésben? Az ékezetek környékén van a gond, vagy köze nincs hozzá? Először próbálhatnád ékezetmentes szöveggel is, ha van bármi köze speciális karakterekhez, ékezetekhez. -
Speeedfire
félisten
Adott egy oracle tárolt eljárás, amit egy html táblát ad vissza, amit content header-rel xls-ben adok ki a felületen.
A gondom az, hogy toad alatt tökéletes amit generál, viszont az excelben már nem.
A toad alatti html-t egy fájlba rakva és megnyitva rendesen jelennek meg az adatok. Viszont ha excelben nyitom meg, olyan mintha a td/tr tagok szétesnének.
Az adatbázis iso-ban van én utf-8-ban szedem le az adatokat. Eddig ilyen gond nem volt, sőt a tárolt eljárásba raktam egy to_char(htf.escape_sc(i.oszlopnev)) kódolást is, gondoltam hátha itt lesz a gond.
Valakinek van valami ötlete? -
PumpkinSeed
addikt
válasz
Sk8erPeter #14615 üzenetére
Én csak a megoldó vagyok, ő a kitaláló. De valami feladat volt nekik valahol.
-
Sk8erPeter
nagyúr
válasz
PumpkinSeed #14614 üzenetére
Az előbb amúgy azt nem írtam, hogy az eddigi tömbös megoldás folytatható, DE felesleges az összes eddig érkezett karaktert eltárolni, gondolj bele, mi van, ha óriásfájllal van dolgod, akkor ott csücsül a memóriában az a sok immár feleslegessé vált adat. Szóval egyszerűen felülcsaphatod a tömböt az új adatokkal, amikor nem szükséges már tárolni az adott karaktereket.
De engem továbbra is érdekelne, miért ezt a fájlos megoldást választjátok
-
PumpkinSeed
addikt
válasz
Sk8erPeter #14613 üzenetére
A legeslegelején én is feltételekkel terveztem, és szerintem marad az is.
Hülye vagyok, nem is azt akartam írni, csak az volt az eszembe más miatt.
Köszönöm a segítségeket.
-
Sk8erPeter
nagyúr
válasz
PumpkinSeed #14612 üzenetére
"Egyszerre 2 karaktert vizsgálok, és ha két azonos karakter van egymás mellett akkor az számít egy gyémántnak, viszont ha a két karakter előtt van egy l (L) betű akkor az nem gyémánt, viszont ha I (i) van akkor pedig bankba kell helyezni és csak a felét éri. Ha a két karakter mögött szám áll akkor az a szám értékének megfelelő gyémántot jelenti."
Erre Athlon64+ múltkor jól sikerült hozzászólását tudnám idézni:
http://prohardver.hu/tema/php_kerdesek_2/hsz_14593-14593.html
"Úúú, valami nagy tákolás van készülőben!"
Viccet félretéve nem értem, mi indokolja egy online játék esetén ilyen borzalom választását?Már eleve a fájlbaírás kényszerét nem értem (adatbázis, felhasználók tábla, gyémántjaik és egyéb pontjaik kigyűjtésére szolgáló táblák?), de ha már fájl, akkor is lehetne ennél ezerszer értelmesebb megoldásokat alkalmazni.
Vagy épp az eddigi tákolmány megoldásból szeretnél kinyerni értelmes adatot, hogy átalakítsd valami értelmesre? Remélem, utóbbi.
Amúgy ezek sima feltételvizsgálgatások, az eddigi tömbös kódrészleted folytatásával is megoldható."Ilyen dolgokról még nem is halottam, de akkor ezek alapján érdemesebb pointerekkel végezni ezt a munkát ahelyett, hogy beindexelem az egészet."
Hogy mi van?Milyen pointerekről beszélsz? Én állapotgépről beszéltem neked, ami leegyszerűsítheti a tervezésedet (meghatározod az állapotokat, elvárt bemenetektől függővé teszed őket, tervezel, hogy ne legyen belőle tákolás). Nem került szóba semmilyen pointer, főleg, hogy PHP esetén a klasszikus értelemben vett (pl. C, C++) pointerekről nincs is értelme beszélni, mivel ilyen nincs, legfeljebb referenciáról.
Valami nagy-nagy félreértés van itt. -
PumpkinSeed
addikt
válasz
Sk8erPeter #14611 üzenetére
(#14609) DNReNTi
Gondoltam erre is, viszont számomra az előző megoldás az egyszerűbb.
(#14610) DeltaPower
Szvsz a FIFO-hoz túl sok feltétel van ugyanis a kiválogatás több dologtól is függ. Egyszerre 2 karaktert vizsgálok, és ha két azonos karakter van egymás mellett akkor az számít egy gyémántnak, viszont ha a két karakter előtt van egy l (L) betű akkor az nem gyémánt, viszont ha I (i) van akkor pedig bankba kell helyezni és csak a felét éri. Ha a két karakter mögött szám áll akkor az a szám értékének megfelelő gyémántot jelenti.
(#14611) Sk8erPeter
Akkor még most át is írom azt a módot, hogy a későbbiekben ez ne jelentsen problémát.
(#14610) DeltaPower neki elmondtam mitől függ, hogy mikor mi történik. Ilyen dolgokról még nem is halottam, de akkor ezek alapján érdemesebb pointerekkel végezni ezt a munkát ahelyett, hogy beindexelem az egészet.
-
Sk8erPeter
nagyúr
válasz
PumpkinSeed #14606 üzenetére
Igen, azért lépi túl a memóriakorlátot, mert rossz módban nyitod meg a fájlt, de ezt már írtam korábban:
"Aztán: 'ab' módban nyitod meg a fájlt, ebből az 'a': "Open for writing only; place the file pointer at the end of the file. If the file does not exist, attempt to create it.", 'b' a binary mode. Az 'a' itt esetedben nem igazán indokolt, mivel egyszerű olvasást hajtasz végre. A binary mode biztos kell neked?"
tehát
$fp = fopen('$DOCUMENT_ROOT/../gem.txt','ab');
HELYETT például próbáld meg így:
$fp = fopen($DOCUMENT_ROOT.'/../gem.txt','r');
binary mód attól függően kell, hogy van eltárolva...Pont azért idéztem neked a dokumentációt, mert az 'a'-val a fájlpointert a fájl végére teszi. Neked pont nem ez kell...
(#14608) PumpkinSeed :
"a karaktereket az alapján kell kiszedni, hogy mi van a környezetében. Például van egy karakter akkor ha előtte egy bizonyos karakter van akkor az off, ha pedig mögötte kettővel egy másik van akkor megint off. Ez most le van egyszerűsítve de minimum 10 index távolságba mindkét irányba vizsgálni kellene a környezetét."
Ezt a legegyszerűbb egy állapotgépes modellel megvalósítani, egy Móricka-rajzon leírhatnád papírra, mik az állapotok, aztán összekötögetve készülne egy egyszerű állapotdiagram. Vagy készíthetsz állapottáblát is. (Utóbbinak előnye, hogy ott ordít, ha valamilyen állapotnál kimaradt a kitöltés, míg az állapotdiagramnál a nyilacskázást valahol könnyen el lehet felejteni véletlenül.)
Nem tudom, csináltál-e már ilyet. Más nyelvekben szokás enum típust szokás használni erre a célra, jelezve az állapotokat, PHP-ben kerülő megoldás vagy SplEnum van. Az állapotgépes modell egyébként elég egyszerű, switch-case-es szerkezettel megvalósítható.Kérdés, hány állapotod lehet. Mit keresel, egy szót? Számokat? Mi a feladat? Azért is kérdezem, mert lehet, hogy egyszerűbben is megvalósítható, mint ahogy próbálkozol.
-
DeltaPower
addikt
válasz
PumpkinSeed #14608 üzenetére
Nem tudom pontosan hogy és milyen szempontok szerint válogatsz, de egy közepesen bonyolult programozási mintafeladatra emlékeztet, szerintem ez egy 21 elemű fifo tároló.
Tegnap találkoztam egy hasonlóan bonyolultnak tűnő, de valójában egyszerű problémával: véletlen számú és sorrendű, 2x2, 1x2 vagy 1x1 méretű cellákból szabályos, 4 oszlopos html táblázatot összerakni. Először valami rekurzív rendezési megoldásban gondolkodtam, aztán rájöttem hogy 1 db for ciklussal megoldható
-
DNReNTi
őstag
válasz
PumpkinSeed #14608 üzenetére
Nem csináltam még hasonlót szóval csak elméletben:
Mi lenne ha a fájlból mindig csak 10 karaktert olvasnál be és azt vizsgálnád? Ha az megvan akkor jönne a következő karaktert követő 10-es sorozat. Beolvasáskor vizsgálni kellene h van e egyáltalán még 10 karakter, ha nincs akkor ennyi. Így végülis mindig egy 10 elemű tömbbel dolgoznál, és egy változóban csak azt kellene tárolni hányadik karakternél jársz a fájlban.Sőt akár azt is lehet hogy csak első alkalommal olvasol be 10 karaktert, aztán csak egy index-el lentebb "sorolod" a meglévő elemeket, és az utolsó helyre egy új karaktert szúrsz be.
Remélem sikerült érthetően vázolni az elméletemet
-
PumpkinSeed
addikt
válasz
DeltaPower #14607 üzenetére
Amúgy hülye vagyok, mert azt nem mondtam, hogy a karaktereket az alapján kell kiszedni, hogy mi van a környezetében. Például van egy karakter akkor ha előtte egy bizonyos karakter van akkor az off, ha pedig mögötte kettővel egy másik van akkor megint off. Ez most le van egyszerűsítve de minimum 10 index távolságba mindkét irányba vizsgálni kellene a környezetét.
-
DeltaPower
addikt
válasz
PumpkinSeed #14606 üzenetére
Ha csak bizonyos karaktereket kell kiszedned, akkor miért olvasod be az egészet? Stream módszerrel is meg lehetne oldani: fgetc, karakter vizsgálata, ha megfelel a feltételeknek akkor egyből fwrite egy másik fájlba, ha nem akkor jöhet a következő karakter beolvasása.
-
PumpkinSeed
addikt
válasz
Sk8erPeter #14605 üzenetére
Mondhatjuk gyakorlásnak is, egy ismerősömnek kell kiszedjem .txt-ből a megadott karaktereket.
Köszönöm a segítséget, de újra kell tervezzem ugyanis a böngésző csak ennyit mondott:
"Allowed memory size of 134217728 bytes exhausted.."
-
Sk8erPeter
nagyúr
válasz
PumpkinSeed #14599 üzenetére
A kódod több szempontból is rossz:
$fp = fopen('$DOCUMENT_ROOT/../gem.txt','ab');
Mivel sima aposztrófot használsz, a $DOCUMENT_ROOT nem fog behelyettesítődni, tehát vagy konkatenáld, vagy használd az idézőjelet (de inkább előbbi a kód jobb olvashatósága érdekében).
Aztán: 'ab' módban nyitod meg a fájlt, ebből az 'a': "Open for writing only; place the file pointer at the end of the file. If the file does not exist, attempt to create it.", 'b' a binary mode. Az 'a' itt esetedben nem igazán indokolt, mivel egyszerű olvasást hajtasz végre. A binary mode biztos kell neked?Ezenkívül ezt csinálod:
$i = 0;
while (!feof($fp)) {
$szoveg[$i] = fgetc($fp);
$i++;
echo $szoveg[$i];
}itt az $i változót megnöveled, és AZUTÁN íratod ki a $szoveg tömb i-vel indexelt tartalmát. Magyarul az echo-nak nyilván még az $i++ előtt kéne szerepelnie.
Meg ellenőrizni kéne, hogy a megnyitás sikeres volt-e (elég egyszerű: a while-t és fclose-t egyszerűen berakod egy if($fp) blokkba), sikertelen megnyitás utáni fclose warningot okoz. Igaz, sikertelen fopen is azt okoz, ezért azt speciel érdemes lehet elnyomni @ karakterrel, VAGY még a megnyitási kísérlet előtt vizsgálni, hogy létezik-e egyáltalán a fájl (file_exists()).
Ez egyébként csak gyakorlás? Mi a konkrét célod?
==================================================
(#14600) Athlon64+ :
"Karaktert nem lehet indexelni."
+ (#14602) Athlon64+ :
"Akor ne indexeld a beolvasott karaktert?!"
Mi az, hogy karaktert nem lehet indexelni? A kódja teljesen jól működne, ha jól használná. Sehol nem is indexeli a karaktereket, egyszerűen a karaktereket egy külön tömbbe rakja, aminek az indexét az $i adja. -
sztanozs
veterán
válasz
PumpkinSeed #14601 üzenetére
Vagy miért nem a beolvasás során vizsgálod meg a karaktert? úgy nem kellene eltárolnod egy bazinagy tömbben...
-
biker
nagyúr
válasz
PumpkinSeed #14601 üzenetére
de csak én érzem hülyeségnek???
milyen szöveg? betűk és számok? akkor lesz 45-90 elemű tömböd, aminél a tömb indexe a betű, és kell egy leíró tömb, melyikből hány darab van benne.
ennek értelme is lenne, bár kevés, de több, mint te akarszmert nem lehet egy többen $t['a']-ból kettő, igaz?
$t['a'] = 123db
$t['b'] = 432db
stb
egyáltalán mit akarsz? jó a megközelítésed? -
Peter Kiss
őstag
válasz
PumpkinSeed #14601 üzenetére
Akor ne indexeld a beolvasott karaktert?!
-
PumpkinSeed
addikt
válasz
Peter Kiss #14600 üzenetére
Igen de nekem karakterenként kell megvizsgálnom, ezért nem jó ha egészben olvassa be.
Új hozzászólás Aktív témák
Hirdetés
- 16GB-os SODIMM (notebook) DDR4 RAM bazár - nézz be, lesz, ami kell neked!
- HP 15-af105nh laptop (15,6FHD/AmdQuad/4GB/128SSD/Magyar) - Akku X
- JOYOR S5 Pro 10" Elektromos Roller 26Ah Akkumulátorral Moddolt!
- XPS 13 9310 13.4" FHD+ IPS i7-1185G7 16GB 512GB NVMe ujjlolv IR kam gar
- Megkimélt Apple iPhone 8 Plus 64GB Fekete szinben, 100% akkuval, kártyafüggetlen, garanciával
- Thinkpad T480s 24GB RAM 1TB SSD (erős, könnyű, vékony gép) Windows 11
- BESZÁMÍTÁS! Gamer számítógép Asus B150M i3 6100 16GB DDR4 240GB SSD GTX 1050 Ti 4GB Sharkoon 500W
- Bomba ár! Dell Latitude E7250 - i7-5GEN I 8GB I 256SSD I 12,5" HD I HDMI I Cam I W10 I Garancia!
- Bomba ár! Fujitsu LifeBook U7310 - i5-10GEN I 16GB I 256SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Konzol felvásárlás!! Playstation 5, Playstation 5 Pro
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest