Substr - od znaku po znak – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Substr - od znaku po znak – PHP – Fórum – Programujte.comSubstr - od znaku po znak – PHP – Fórum – Programujte.com

 

Redix
~ Anonymní uživatel
28 příspěvků
9. 6. 2013   #1
-
0
-

Tak znovu čaute :), tento krát mám problem so substringom a neviem už si s tím radi .. tak to skúsim tu napísať :)

mam súbor v ktorom je  : Ip|Name|Date

http://test1.bitee.eu/db.txt


Teraz to mám takto 

$file = file("db.txt"); 
$i = 0; 

foreach($file as $line){ 
if($ine=="Ip|Name|Date") continue;

 	$records[$i]['name'] = substr($line,strpos($line,"|")+1,2*strpos($line,"|"));

//Vypisujem to takto
	echo($records[$i]['name']);

No teraz keď to spustím .. tak mi vypíše - 

http://test1.bitee.eu/ //textové polia si nevšímať prosím :) ..


Name

Redix|8.6.2013

Imperius|10.6.2013

.. ako to že na Name. .to funguje a na ostatné nie. ?: ale ako to mam opraviť tak aby to vybralo tie písmená ktoré sú medzi ?. // keď dam preč to 2*. . tak ami zmeny to Name na Name|Date. .. čiže už fakt nechápem kde je chyba .. za každú pomoc ďakujem :) .. 

Nahlásit jako SPAM
IP: 88.212.40.–
null_while
~ Moderátor
+6
Věrný člen
9. 6. 2013   #2
-
0
-

#1 Redix
Přiznám se, že jsem se podíval jen tak okem, ale nikde nevidím žádnou práci s proměnnou $i, tzv. je její hodnota pořád 0.

Nahlásit jako SPAM
IP: 84.16.103.–
WEBNIA.cz - tvorba webových stránek
Redix
~ Anonymní uživatel
28 příspěvků
9. 6. 2013   #3
-
0
-

Jaj,. .prepač. :) ale toto je iba časť kôdu :) .. tu je celý ak tak to veľmi potrebuješ :P 

<?php

$file = file("db.txt"); 
$i = 0; 

foreach($file as $line){ 
if($ine=="Ip|Name|Date") continue;

	$records[$i]['ip'] = substr($line,0,strpos($line,"|")); 
 	$records[$i]['name'] = substr($line,strpos($line,"|")+1, 2*strpos($line,"|"));  
	$records[$i]['date'] = substr($line,strrpos($line,"|")+1); 
	
	echo('</br>');
	echo('</br>');

	echo($records[$i]['name']);
	
	$i++; 

} 

?>
Nahlásit jako SPAM
IP: 88.212.40.–
Markaos0
Návštěvník
9. 6. 2013   #4
-
0
-

   

$file = file("db.txt");
$i = -1;

foreach($file as $line){
  $i++;
  if($i==0) continue;
  $records[$i] = explode("|",$line);
}
// $records[$i][0] je IP, [1] je jméno a [2] je datum

Mně to funguje...

Nahlásit jako SPAM
IP: 89.24.23.–
Linux is like a wigwam
No gates, no windows, apache inside.
Redix
~ Anonymní uživatel
28 příspěvků
9. 6. 2013   #5
-
0
-

Ja už som z toho fakt.. prosím ťa keď máś čas.. spravíš mi to ? .. spoj to s mojím kodom .. či to bude pekne fungovať .. lebo teraz to skušam a stále mi vypíše Array.... tak keby že máš čas .. tak spojíš mi to ? .. neako aby mi to šlo .. to vypisovanie každého zvlášť ..(ip|name|date) - dopredu ti ďakujem ...

Nahlásit jako SPAM
IP: 88.212.40.–
peter
~ Anonymní uživatel
3989 příspěvků
10. 6. 2013   #6
-
+2
-
Zajímavé

Redix - "spravíš mi to" :))) Tohle je forum, ne udelej to za mne zadarmo :)

Proc si u strpos neukladas pozici do promenne, ale misto toho to znovu vyhledavas?
 

Si zkus samoztatne treba tento kod

$line = "Ip|Name|Date";
list($ip,$name,$date) = explode("|",$line);
echo $ip;
echo $name;
echo $date;


Ten Markaosuv kod by se mozna jeste dal napsat takto:

$file    = file("db.txt");
$i       = true;
$keys    = array('ip','name','date');
$records = array();
foreach($file as $line)
  {
  if ($i)
    {
    $i = false;
    continue;
    }
  $records[] = array_combine($keys, explode("|",$line));
  }
var_dump($records); //vypis pole


http://cz1.php.net/…contents.php

Nahlásit jako SPAM
IP: 193.84.207.–
null_while
~ Moderátor
+6
Věrný člen
12. 6. 2013   #7
-
0
-

#6 peter
Tohle řešení mi funguje, kde je problém? :) 

Nahlásit jako SPAM
IP: 84.16.103.–
WEBNIA.cz - tvorba webových stránek
Redix
~ Anonymní uživatel
28 příspěvků
12. 6. 2013   #8
-
0
-

už aj mne :) .. ďakujem Peter .. môžte lock :) ....

Nahlásit jako SPAM
IP: 88.212.40.–
peter
~ Anonymní uživatel
3989 příspěvků
13. 6. 2013   #9
-
0
-

null_while - Neni problem, jen jiny zpusob reseni, zvolil ciselne indexy a na zacatku se resili slovni indexy. Ja bych asi taky pouzil ciselne, pokud by mi to zjednodusilo kod.

Nahlásit jako SPAM
IP: 193.84.207.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 16 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý