Jump to content
php.lv forumi

str_replace


tomy91

Recommended Posts

Taisu upload skriptu, un man vajag taa, lai peec faila augshuplaades speciaalaas rakstziimes (, ) un atstarpi paartaisa par _ (zemsviitru). Shis ir skrpits, kuru es meegjinaju labot:

 

function set_file_name($new_name = "") {
	if ($this->rename_file) {
		if ($this->the_file == "") return;
		$name = ($new_name == "") ? strtotime("now") : $new_name;
		sleep(3);
		$name = $name.$this->get_extension($this->the_file);
	} else {
		$name = str_replace(" ", "_", $this->the_file);
		$name = str_replace("(", "_", $this->the_file);
		$name = str_replace(")", "_", $this->the_file);
		}
	return $name;
}

 

No shii

else {
		$name = str_replace(" ", "_", $this->the_file);
		$name = str_replace("(", "_", $this->the_file);
		$name = str_replace(")", "_", $this->the_file);
		}

 

Vinjsh izpilda tikai peedeejo no tiem 3, taapeec prasu juusu paliidziibu, kaa tur lai izdara, kja vinjsh skataas visus (meegjinaaju tur kko ar and, bet tad meta php errorus)...

 

Paldies! Visiem prieciigus sveetkus!

Link to comment
Share on other sites

Loģiski, ka tev tur "izpildīsies tikai pēdējais". Dari šādi:

$name = str_replace(" ", "_", $this->the_file);
$name = str_replace("(", "_", $name);
$name = str_replace(")", "_", $$name);

 

Es vispār ieteiktu darīt kaut kā šādi:

$name = preg_replace('/[^a-z0-9_]+/i', '_', $name);
$name = preg_replace('/[_]{2,}/', '_', $name);

 

Šādi tiktu atstāti tikai vēlamie simboli. Pārējie izfiltrēti.

Link to comment
Share on other sites

andrisp --> manupraat taa arii ir tik tavam variantam (un ne tikai tavam) ir 2 buutiski trukumi :(

1) fails var sastaaveet arii tikai no mikstajiem un garajiem burtiem .... + taa var buut arii kirlica :(

2) fails jau var eksisteet uz servera ....

---

Es so problemu megjinaaju atrisinaat saadi:

Skat seit

Tas gan ir tikai Latvieshu burtiem bet tas nu taa...

------

fuun-jas darbiiba:

1. izveidoju masivu ar visiem mikstajiem un garajiem burtiem abos registros (augseejaa & apakseejaa) kaa arii abos kodeejumos UTF & win

2. talaak tiek visi garie/mikstie burti aistaati ar latinju simboliem

3. visu tuksumus aizstaaju ar ( _ )

4. parbaudu vai ir tikai atljautie simboli visus liekos aiztaaju ar ( _ )

5. visas ( _ ) kas ir vairaak par 1 samazinu liidz 1

6. novaacu ( _ ) gan no prieksas gan aizmugures

7. visam pa starpu parbaudu vai nosaukums nesanaak par iisu ...

---

koda darbiiba:

parbaudu vai saads nosaukums jau neeksistee , ja eksistee prieksaa piekabinu skaitli un ( _ )

---------

Varbuu nav pilniigi korekti, bet vispaar straadaa ;)

Link to comment
Share on other sites

Grey_Wolf, par pirmo punktu piekrītu, bet par otro nē - jo tas neattiecās uz tām divām rindiņām, ko iedevu kā piemēru.

 

Vislabākais tomēr ir visiem failiem dot pašam savus ģenerētus nosaukumus, kur nav kaut kādi speciālie simboli. Un ja tomēr vajag tos oriģinālos nosaukumus, tad tos pieglabāt datubāzē. Bet nu tas viss atkarībā no situācijas.

Link to comment
Share on other sites

Vislabākais tomēr ir visiem failiem dot pašam savus ģenerētus nosaukumus,

 

Tur tev savaa zinjaa taisniiba ;)

Taa kaa so skriptinju rakstiju prieksh CMS tad ej nu pastaasti klientam ka nedriiks izmantot nacionalos simbolus utt..

Piedevaam ja vinjam ir velme dazreiz tos failus padzeest caur FTP tad ej nu uzmini kas tas par failu (teiksim 1234asdfg.jpg preteeji manas_majas.jpg)

+ tomy91 gribeeja ar str_replace() / preg_replace()

taa kaa nemaz nepiedaavaaju iespeju genereet to faila nosaukumu

Link to comment
Share on other sites

×
×
  • Create New...