Jump to content
php.lv forumi

Bunkertor 7

Reģistrētie lietotāji
  • Posts

    95
  • Joined

  • Last visited

Contact Methods

  • Website URL
    http://

Profile Information

  • Location
    Russia
  • Interests
    If you should die, die in winter :P

Bunkertor 7's Achievements

Newbie

Newbie (1/14)

  1. Sveiki. Es te nodarbojos ar tādu ļoti vienkāršu meklēšanas skriptu, kas meklē priekšmetus datubāzē pēc tegiem. Šobrīd lietoju šādu: $raw_results = mysql_query("SELECT * FROM items WHERE (`tags` LIKE '$query%'); Vienkāršākiem meklējumiem ir ok, bet ar dažiem vārdiem ir problēmas. Piemēram, ja meklē "car" tad atgriež arī "cards" (loģiski - tas jau galu galā ir tas ko es viņam tanī querijā prasu) "map" atgriež arī "maple" Protams, es varētu aizvākt to procenta zīmi, bet man vajag lai viņš saprastu daudzskaitli. Piemēram, ja kāds meklē daudzskaitli "maps" man vajag, lai atgriež gan "maps" gan "map" un ja meklē vienskaitli "map" - vajag, lai arī atgrieztu "maps" Kāda būtu labākā metode, lai to dabūtu gatavu? Paldies.
  2. Vai te ir kāds GD Library spečuks? :) Visparastākais imagepolygon skripts kas zīmē trijstūri. <?php $image = imagecreatetruecolor(400, 300); $col_poly = imagecolorallocate($image, 255, 255, 255); imagepolygon($image, array(0, 0, 100, 200, 300, 200), 3, $col_poly); header('Content-type: image/png'); imagepng($image); imagedestroy($image); ?> bet lieta tāda, ka man vajag to trijstūri uztaisīt no gatava png faila un pie tam tādā veidā lai viss apkārt tam trijstūrim būtu "transparency". Tātad $image vietā es neveidotu jaunu truecolur bildi definētu to gatavo png. Bet ko tālāk? Kā panākt lai iekšpus trijstūrim būtu tas png gabals bet ārpus trijsūrim "transparency"?
  3. Paldies par uzvedināšanu uz pareizās domas! @briedi, izskatās forši, bet godīgi sakot es neko nesapratu kas Tavā skriptā notiek :) Beigās uzrakstīju šitā. Daudz garāk, bet man vismaz pašam pielec. Možka kādam noder: <?php $query_string = mysql_query("SELECT * FROM `teksti`"); while($string_row = mysql_fetch_array($query_string)){ $string = $string_row['content']; $string = ereg_replace("[^A-Za-z0-9 ]", "", $string); $split_string = explode(" ", $string); $size_split_string = count($split_string); $size_split_string = $size_split_string-1; $x=0; $y=1; $z=2; for($i=0; $i<=$size_split_string; $i++){ if(($split_string[$x]!='')&&($split_string[$y]!='')&&($split_string[$z]!='')){ $three_phrase = $split_string[$x].' '.$split_string[$y].' '.$split_string[$z]; mysql_query("INSERT INTO `split_teksts` (`id` ,`pid` ,`split_teksts`) VALUES (NULL , '".$string_row['id']."', '".$three_phrase."')"); $x++; $y++; $z++; } } ?>
  4. Sveiki! Vajag uzrakstīt skriptu, kas sadalītu doto tekstu 3-vārdu frāzēs un tās frāzes noglabātu kā comma-separated stringu iekš datubāzes. Izdomājos gan šā, gan tā, pamēģināju ar preg match meklēt atstarpes bet šķiet ka visvienkāršāk ir sadalīt tekstu pa vārdam un tad lipināt pa trim vārdiem kopā. Šajā piemērā būs 23 frāzes pa 3 vārdiem: "skrien ezitis apkart", "ezitis apkart mucai", "apkart mucai un" utt... <?php $string = "Skrien ezitis apkart mucai un skrien vienu dienu, divas dienas un tad peksni ezitis apstajas un saka: Ja sita seta nebeigsies, tad es iesu atpakal"; $words = str_word_count(strtolower($string),1); ?> Tagad es no masīva words varu izvilkt jebkuru elementu. Piemēram: $words[2] būtu "apkart". Un vārdu skaitu stringā es arī pavisam viegli varu dabūt. Kopējo frāžu skaitu arī - tas vienmēr būs vienlīdzīgs $wordcount mīnus 2. Varētu vienkārši ņemt While loop un lipināt atsevišķos masīva elementus kopā pa trim, kamēr visas 23 frāzes ir salipinātas. Gribēju pajautāt vai nav kāds loģiskāks un labāks veids kā to visu izdarīt?
  5. Paldies! Un Tu domā, ka es to echo $MyArray[1][0]; no pirksta izzīdu vai nosapņoju? Melns uz balta - pamācībā.
  6. variablis $MyArray satur saliktu Array pār kuru man nav nekādas kontroles. Principā tas Array izskatās šādi: Array ( [Dimensija 1] => Array ( [platums] => 291,5 [garums] => 19,2 ) [Dimensija 2] => Array ( [platums] => 275,7 [garums] => 20,5 ) ) Man vajag otrā apakš-Arraya pirmo elementu (otrās dimensijas platumu). Biju pilnīgi pārliecināts, ka tas iegūstams šādi: echo $MyArray[1][0]; Rezultāts ir: Notice: Undefined offset: 1 Kā tad lai es viņu savādāk definēju?
  7. Super! Paldies. Pēc idejas strādā, bet tagad ir problēma ar Array-u. Sākšu jaunu tēmu, jo principā tam nav nekāda sakara ar klasēm.
  8. Principā jāatzīst, ka es ne visai izprotu sintaksi šajā gadījumā. Es te mēģinu pārveidot vienu klasi, lai viņa darītu to, ko man vajag :) $url = new Klase1("http://www.domain.com/"); print $url->Funkcijas_Nosaukums(); Man savukārt vajag nevis parādīt rezultātu uz ekrāna, bet ielasīt to citā variablī, ko es pēc tam varu apstrādāt, saglabāt datubāzē utt... Bez tam, šī funkcija atgriež Array, un man vajag tikai Array-a trešo elementu. Mēģināju šādi $url = new Klase1("http://www.domain.com/"); $myArray = Funkcijas_Nosaukums($url); echo $myArray[2]; Protams viss beidzas ar Fatal error: Call to undefined function Php manuālī neko nevaru atrast, jo īsti nezinu kā "tas" saucās ko es meklēju
  9. Es mēģinu izprast Loop būtību. Piemēram, ir skripts, kas ievāc informāciju par XML failiem. simplexml_load_file funkcija nobeigsies ar Fatal Error katru reizi kad XML būs invalīds. Pieņemsim ka šis Loop apstrādās 10 XML failus, no kuriem sestais būs invalīds. Tātad skripts pie sestā vienkārši pārtrauks darboties, neskatoties uz to ka aiz tā vēl ir trīs labi XML faili, kurus varētu apstrādāt. Kāds ir vienkāršākais veids, lai šo problēmu atrisinātu? Ideāli, saskaroties ar Fatal Error, šis skripts saglabātu datubāzē kautkādu "dežūrvērtību" kā Error vai Invalid XML un automātiski atsāktu apstrādi pie septītā faila. while($procRow = mysql_fetch_array($toProcess)) { //sheit notiek xml apstraade, variabli utt $xml=simplexml_load_file($file); //apstraade beidzas //ievieto variablus datubaazee $sqlup="UPDATE table"; $resultup=mysql_query($sqlup); }
  10. Jā, bet man vajag tikai root taga dimensijas :) Parasti dimensijas saturēs tikai root tags bet teorētiski iespējams, ka arī citi apakštegi saturētu width un height un tādā gadījumā skriptam sajuks "fiška". Ā, nu laikam man pieleca :)
  11. Man jārēķinās ar to ka pār xml failiem man nebūs nekādas kontroles. Tie nāks no dažādiem resursiem un to skaits būs mērāms desmitos tūkstošu. Man vajadzēs 80 gadu, lai tiem visiem pievienotu base0 tagu :) Šā skripta uzdevums būs apstaigāt visus xml kas jau atrodas serverī un ķert jaunpienākošos un saglabāt viņu dimensijas datubāzē. Varbūt iespējams to root tagu apstrādāt kā Array un tad izvilkt tos width un height?
  12. Jep! Tev bija taisnība. Vaina tiešām bija xml failā. Bet... Izskatīju vairākus reālus paraugus un izskatās ka tie atribūti, kas man patiešām ir nepieciešami atradīsies root elementā. Patiesībā tie xml izskatīsies kaut kā šādi: <?xml version="1.0"?> <root width="120" height="90"> <base1 width="100" height="50"> <option>A</option> <option>B</option> <option>C</option> </base1> <base2 width="60" height="40"> <option>A</option> <option>B</option> <option>C</option> </base2> </root> Vai ir iespējams izdabūt atribūtus no root elementa ar kādu no xml apstrādes funkcijām? (neesmu regular expressions fans)
  13. Paldies par risinājumu. Bet es tomēr gribētu izprast, kāpēc nedarbojas attributes() funkcija. Šorīt vēlreiz apskatīju ar skaidru galvu un neredzu kļūdu... :(
  14. <base1 width="100" height="50"> <option>A</option> <option>B</option> <option>C</option> </base1> Un tas ir viss. Ļoti vienkāršs un primitīvs. Pirmais skripts strādā gan ar šo XML gan ar jebkuru daudz lielāku un daudz sarežģītāku.
×
×
  • Create New...