Autor Zpráva
stepanka
Profil *
Ahoj,

prosím, nepomohl by mi někdo s jedním regulárním výrazem? Mám CSV soubor, který chci importovat do databáze. Jednotlivé buňky jsou tedy odděleny středníkem, ale v každém řádku není stejný počet buněk. Nejdelší řádek má 10 buněk, tzn. 10 středníků. A já bych potřebovala, aby 10 buněk (10 středníků) měl každý řádek, i kdyby měly být prázdné. Takže bych potřebovala projít řádek po řádku, v každém spočítat středníky a pokud jich bude méně než 10, tak jich daný počet do deseti doplnit.

Už mám toto, ale nemůžu přijít na správný regulární výraz, který by mi ty středníky doplnil..


$data=file_get_contents('import.csv');
$radky=explode("\n",$data);
//odstranění posledního odřádkování, excel tam nechává poslední mezeru
if (strlen($radky[count($radky)-1])<5)
		array_pop($radky);
$pocet_radku=count($radky);
$i=0;
echo '<h3>Zpracovávám soubor</h3>';
echo '<p class="bold">Celkem řádků pro import: '.$pocet_radku.'</p>';
for ($r=0;$r<$pocet_radku;$r++)
   {
   echo '<div style="color:#777;">Zpracovávám řádek číslo: '.($r+1).'</div>';

   if (počer středníků v řetězci != 10)
      {
      přidej na konec řetězce tolik středníků, aby jich bylo v každém řetězci 10
      }
   $i++;
   }


Moje pokusy o regulární výraz jsem ani nekopírovala, místo nich je tučný text..

Když někdo poradí, budu moc ráda. Předem děkuju.
Alphard
Profil
substr_count()
count_chars()

Ale možná by bylo rychlejší doplnit pole až při importu.
stepanka
Profil *
Alphard:

Děkuju, už se mi to podařilo..

		if (substr_count($radky[$r], ';') != 10)
			{
			$kolik = substr_count($radky[$r], ';');
			for ($j=0;$j<(10-$kolik);$j++)
				$radky[$r] .= ';';
			}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: