|
Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема
|
problem s razglobiavane na string
|
|
Автор | sdsdsd (Нерегистриран) |
Публикувано | 19.12.02 03:34 |
|
1. ima tekstovo pole + submit, ot koeto usera podava dumi.
2. vsiaka edna podadena duma triabva da se vkara v masiv kato negov element
naprimer: word1 word2 word3
stava na:
$masiv[0] = 'word1'
$masiv[2] = 'word2'
$masiv[3] = 'word3'
kogato usera podade takova nesto: "word1 word2" word3, masiva izglejda taka:
stava na:
$masiv[0] = 'word1 word2'
$masiv[1] = 'word3'
do tuk e lesno :-)
Kogato, obache usera podade: "word1 word2" word3 word4
masiva triabva da stane takyv:
$masiv[0] = 'word1 word2'
$masiv[1] = 'word3'
$masiv[2] = 'word4'
i syotvetno: word1 "word2 word3" word4
masiva stava na:
$masiv[0] = 'word1'
$masiv[0] = 'word2 word3'
$masiv[0] = 'word4'
shte sym mnogo blagodaren, ako niakoi podskaje kak da razdelq taka dumite.
| |
Тема
|
Re: problem s razglobiavane na string
[re: sdsdsd]
|
|
Автор | anonymous (Нерегистриран) |
Публикувано | 19.12.02 10:42 |
|
опитай с explode
| |
Тема
|
трябва ти френски ключ
[re: sdsdsd]
|
|
Автор |
Dakota (гол на деня) |
Публикувано | 19.12.02 13:32 |
|
<?
$str = "yeah \"boob mmooo\" yeah skdjhaksjdh kajshdkjas \"lak sdj lasd\" kjh";
preg_match_all("/(?:\"[^\"]*?\")|[^\s]+/", $str, $m);
echo "<pre>\n\n";
print_r($m);
?>
"Да живееш - значи да се променяш." - Анатол ФрансРедактирано от Dakota на 19.12.02 13:34.
| |
Тема
|
Re: трябва ти френски ключ
[re: Dakota]
|
|
Автор | asdasd (Нерегистриран) |
Публикувано | 19.12.02 21:43 |
|
nesto ne stava. Az postnah i vyv free-to, no i tam nesto niama uspeh. eto do kade stgnamhme:
<?php
/*
$Masiv=Array();
//$SearchPattern='word1 word2 "word3 word4 word5" word6';
$Temp=split('"',str_replace(' "','"',$SearchPattern));
$Masiv=split(' ',$Temp[0]);
array_push($Masiv,$Temp[1]);
foreach (split(' ',$Temp[2]) as $Remaining)
array_push($Masiv,$Remaining);
*/
//$SearchPattern = "yeah \"boob mmooo\" yeah skdjhaksjdh kajshdkjas \"lak sdj lasd\" kjh";
preg_match_all("/(?:\"[^\"]*?\")|[^\s]+/", $SearchPattern, $m);
echo "<pre>\n\n";
print_r($m);
//vizualizacia
for($i=0;$i<count($Masiv);$i++)
{
echo('$Masiv['.$i.'] = '.$Masiv[$i]." ");
}
?>
<form>
<input type="text" name="SearchPattern"><input type="submit">
</form>
kakto vijdash, 2 varianta sa, samo razkomentirai....
Ideiata e takava:
Tova triabva da e tyrsachka, koiato da pozvoliava na usera da podava stringove ot roda:
maratonki adidas "zelen model 45" obuwki Bylgaria
za da si napravia normalen SQL ot vsichko tfa, triabva da razbia stringa na chasti. Niakoi ima li ideia kak?
10x predvaritelno... :-)))
| |
Тема
|
Re: трябва ти френски ключ
[re: asdasd]
|
|
Автор |
antipop (!) |
Публикувано | 20.12.02 11:05 |
|
Имаш и друг вариант, класически, без regexp(въпреки, че с regexp би трябвло да стане). Правиш един цикъл по дължината на низа. Когато попаднеш на разделител (интервал например) запомняш позицията, и така до следващия разделител, и после *заградения низ* от 2та разделителя го добавяш в масива. Ако попаднеш на кавичка, казваш, аха т'ва е от ония (запазваш си позицията) и чакаш "затварящата" кавичка. Въпросния отрязък -> в масива. Отделно можеш да си проверяваш дали израза е верен, т.е да нямаш незатворени кавички. Може да е банално... но ако върши работа и си зациклил...
If you don't care where you are going any road will get you there
| |
Тема
|
Re: трябва ти френски ключ
[re: asdasd]
|
|
Автор |
Dakota (гол на деня) |
Публикувано | 20.12.02 14:25 |
|
Е как така не става?!
При мен си работи чудесно...я пробвай пак. ![](http://i.dirbg.com/clubs/icons/smile.gif)
"Да живееш - значи да се променяш." - Анатол Франс
| |
Тема
|
Re: трябва ти френски ключ
[re: antipop]
|
|
Автор | asdasd (Нерегистриран) |
Публикувано | 20.12.02 14:53 |
|
10x, ste opitam i taka. Dori obestavam da postana, ako uspeia :-)
| |
Тема
|
Re: трябва ти френски ключ
[re: Dakota]
|
|
Автор | asdasd (Нерегистриран) |
Публикувано | 20.12.02 15:02 |
|
emi az za da ne zadrystvam i tuka, predlagam koit se interesuva ot cialata taia rabota da pogledne na :
http://free.techno-link.com:8080/phpBB/viewtopic.php?t=15490
tam kato che li nestata sa na pyt da se opraviat :-) :-) :-)
| |
Тема
|
Re: трябва ти френски ключ
[re: asdasd]
|
|
Автор |
Dakota (гол на деня) |
Публикувано | 20.12.02 17:10 |
|
И какво получаваш като изход от това, което ти пратих?
"Да живееш - значи да се променяш." - Анатол Франс
| |
Тема
|
Re: трябва ти френски ключ
[re: Dakota]
|
|
Автор | asdasd (Нерегистриран) |
Публикувано | 20.12.02 19:43 |
|
e dobre....
eto do kyde ia dokarahme:
Tablica v mysql-a:
#
# Структура на таблица `tablica`
#
DROP TABLE IF EXISTS tablica;
CREATE TABLE tablica (
id int(11) NOT NULL auto_increment,
text text NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
INSERT INTO tablica VALUES (1, 'Тук-там вече отлично осъзнаваха това. Не го разбираха за съжаление само така наречените "призвани". По-специално Людендорф, тогава полковник на големия генерален щаб, сметна за свой дълг да посочи тези слабости в специална докладна записка, предадена от него през 1912 г.; но разбира се, нашите "държавни мъже" не обърнаха ни най-малко внимание на документа. Трезвото разбиране на такива прости неща е типично само за нас, обикновените смъртни; що се касае до господата "дипломати", то те по принцип са неспособни да ги разберат.\r\nЗа Германия беше щастлива случайност, че войната от 1914 г. беше избухнала поради конфликта, в който Австрия беше пряко намесена, така че на Хабсбургите не им оставаше нищо друго, освен да се включат в нея. Ако събитията се бяха развили по друг начин, Германия може би щеше да остане сама. Хабсбургската държава никога нямаше да пожелае, а и не можеше да приеме да участва във война, избухнала непосредствено заради Германия. Това, за което по-късно така жестоко осъждаха Италия, сигурно още по-рано би се случило с Австрия. Австрия би останала "неутрална" и по такъв начин щеше да се опита да се предпази от избухване на революция в навечерието на войната. При такава обстановка австрийското славянство би предпочело още през 1914 година да отхвърли набързо\r\nмонархията, отколкото да допусне Австрия да воюва заради Германия. Но малцина разбираха тогава опасностите и излишните трудности, които Германия си създаваше благодарение на съюзническата политика с Австрия.');
INSERT INTO tablica VALUES (2, 'Достатъчен беше фактът, че Австрия имаше прекалено много врагове, които мечтаеха само за това, колкото се може по-скоро да получат наследството от умиращата хабсбургска държава. Съвсем ясно беше, че след време срещу Германия щеше да се натрупа омраза за това, че в нея виждаха причината, забавяща разпадането на австрийската монархия, разпадане, което всички очакваха с нетърпение с единствената надежда да получат дял от наследството. В края на краищата, всички стигаха до извода, че до виенското наследство могат д се докопат, само ако си разчистят сметките с Берлин. Това беше първо.');
tova e php-to, koeto veroiatno e nai-blizko do celta:
$Masiv=Array();
$Temp=split('"',str_replace(' "','"',$SearchPattern));
$Masiv=split(' ',trim($Temp[0]));
array_push($Masiv,trim($Temp[1]));
foreach (split(' ',trim($Temp[2])) as $Remaining) {
array_push($Masiv,$Remaining);
} // foreach
$Query = "SELECT * FROM `tablica` WHERE ";
foreach ($Masiv as $SearchElement) {
if ($SearchElement!="") $Query.="`text` like '%".$SearchElement."%' AND ";
} // foreach
$Query = substr($Query,0,strlen($Query)-4).";";
if (Substr($Query,-3)=="WH;") {
echo "No Search Pattern Defined.";
} else {
// Primeren SQL (Zameni ECHO s mysql_query()) - Vseki element ot SearchPattern triabva da e v poleto na bazata danni
// Ako iska6 da vrashta rezultat za koia da e duma, zameni AND s OR v $Query
echo $Query;
}
Kogato probvah da zapisha v txt-poleto slednoto nesto:
"отлично осъзнаваха" "Не го разбираха" съжаление само
Znachi ideiata e takava, che prez tekstovoto pole usera moje da podade kakvoto mu dusha iska, a scripta triabva da sglobi podhodiashta sql zaiavka.
Naprimer usera moje da podade
"duma1 duma1 duma1" duma1 "duma1 duma1" duma1 duma1
i vsiakakvi podobni kombinacii. Otdelno e, che moje da pishe + ili -, ama tiah sha gi mislia posle. Prosto niama kak da razglobia stringa na tyrsenite dumi/izraзи. Веоиатно ще стане, но по много брутален начин - а именно: предлойениа по - горе :
намирам символ (интервал или кавичка) и запомниам позицията на вс един от тях и така.....
| |
|
Страници по тази тема: 1 | 2 | >> (покажи всички)
|
|
|