Autor Zpráva
zdenek
Profil
Ahoj, mám problém.

potřebuji vybrat text pouze od | do |, ale nevím jak to udělat. předem díky za odpověď.
Neas
Profil
$cast_obsahu_souboru = preg_replace("((.+?)\|(.+?))", "$2", $cely_obsah_souboru);
zdenek
Profil
Neas:

díky za odpověď.
teď už jen jak to funguje. a vybere mi to od znaku | do znaku |??
Neas
Profil
promiň, teď sem zjistil, že to tvůj problém řeší jen napůl. Odmaže to část textu do prvního |
ještě zkusím vyřešit odmazání textu od druhého | do konce

EDIT:

$cely_obsah_souboru = "Čínský út|ok na sate|lit s použitím zbraně vynesené balistickým nosičem může zničit mírový systém, který Spojené státy a další národy využívají pro obchod a upevnění národní bezpečnosti. Ničení satelitů ohrožuje lidi,“ uvádí se v prohlášení připraveném pro tehdejší ministryni zahraničí Condoleezzu R s použitím zbraně vynesené balistickým nosičem může zničit mírový systém, který Spojené státy a další národy využívají pro obchod a upevnění národní belitů ohrožuje lidi,“ uvádí se v prohlášení připraveném pro tehdejší ministryni zahraničí Condoleezzu R s použitím zbraně vynesené balistickým nosičem může zničit mírový systém, který Spojené státy a další národy využívají pro obchod a upevnění národní bezpečnosti. Ničení satelitů ohrožuje lidi,“ uvádí se v prohlášení připraveném pro tehdejší ministryni zahraničí Condoleezzu R";


$cast_obsahu_souboru = preg_replace("((.+?)\|(.+?)\|)", "$2|", $cely_obsah_souboru);
$cast_obsahu_souboru = preg_replace("(\|(.*))", "", $cast_obsahu_souboru);

výstup teď bude:
ok na sate
zdenek
Profil
ten kód nefunguje.
Neas
Profil
mě funguje.
z nějakého důvodu akorát nebere konce řádků, tak ještě na začátek přidej přidej tohle:
$cely_obsah_souboru = str_replace("\r\n", "<br>", $cely_obsah_souboru);
zdenek
Profil
Neas:
promiň nedošlo mi to.

už to jde. nedal jsem tam
<?php echo $cast_obsahu_souboru; ?>
:)
zdenek
Profil
já se omlouvám, že ještě otravuju, ale mám problém. ono to bere jen první | a |, ale když jich tam dám víc, tak to nejde. šlo by to nějak udělat, aby mi to vzalo všechny záznamy uložené v | | a dalo mi je do polí? (to poslední je jen návrh. to být nemusí) předem díky
Neas
Profil
napadá mě jedno řešení, ale jeho nevýhodou je, že musíš předem znát počet řetězců uzavřených mezi | a |. Tento problém bych snad mohl vyřešit, kdybych mohl nějak zjistit počet "|" v řetězci, ale to nevím jak.

Jinak tady moje řešení:
$cely_obsah_souboru = "Čínský út|ok na sate|lit s použitím zbraně vynesené balistickým nosičem může zničit mírový systém, který Spojené státy a další národy využívají pro 
obchod a upevnění národní bezpečnosti. |Ničení satelitů ohrožuje lidi,“ uvádí se v p|rohlášení připraveném pro t
ehdejší ministryni zahraničí Condoleezzu R s použitím zbraně vynesené balistickým nosičem může zničit mírový syst
ém, který Spojené státy a další národy využívají pro obchod a upevnění národní bezpečnosti. Ničení satelitů ohrožuje lidi,“ uvádí se v proh|láš|ení připraveném pro tehdejší ministryni zahraničí Condoleezzu R s použitím zbraně vynesené balistickým nosičem může zničit mírový systém, který Spojené státy a další národy využívají pro obchod a upevnění národní bezpečnosti. Ničení satelitů ohrožuje lidi,“ uvádí se v prohlášení připraveném pro tehdejší ministryni zahraničí Condoleezzu R s použitím zbraně vynesené balistickým nosičem může zničit mírový systém, který Spojené státy a další národy využívají pro obchod a upevnění národní bezpečnosti. Ničení satelitů ohrožuje lidi,“ uvádí se v prohlášení připraveném pro tehdejší ministryni zahraničí Condoleezzu R s použitím zbraně vynesené balistickým nosičem může zničit mírový systém, který Spojené státy a další národy využívají pro obchod a upevnění národní bezpečnosti. Ničení satelitů ohrožuje lidi,“ uvádí se v prohlášení připraveném pro tehdejší ministryni zahraničí Condoleezzu R s použitím zbraně vynesené balistickým nosičem může zničit mírový systém, který Spojené státy a další národy využívají pro obchod a upevnění národní bezpečnosti. Ničení satelitů ohrožuje lidi,“ uvádí se v prohlášení připraveném pro tehdejší ministryni zahraničí Condoleezzu R";

$cely_obsah_souboru = str_replace("\r\n", "<br>", $cely_obsah_souboru);
$cast_obsahu_souboru = preg_replace("((.+?)\|(.*)\|(.+?)\|(.*)\|(.+?)\|(.*)\|(.*))", "$2;;$4;;$6", $cely_obsah_souboru);
$pole = explode(";;",$cast_obsahu_souboru);
echo $pole[0]."<br>".$pole[1]."<br>".$pole[2];


ale funkce na spočítání "|" v řetězci by se docela hodila, takhle mi to přijde trochu neprofesionální
__construct
Profil
zdenek:
<?php
$text = "Lorem |ipsum| dolor sit amet, consectetur adipiscing elit. |Duis molestie nibh id| nunc viverra consequat. Aliquam ullamcorper vehicula mattis. Nunc consectetur augue eu lorem facilisis viverra. Aenean aliquam, mi nec ultricies rutrum, sapien ipsum tristique erat, at euismod felis libero sed lectus. Sed vitae lectus urna. Morbi et condimentum massa. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse potenti. Sed ornare fermentum lorem, facilisis auctor dolor faucibus ut. In hac habitasse platea dictumst. Suspendisse tincidunt ullamcorper sem, id scelerisque erat dapibus at. Donec luctus lectus vel orci posuere vel scelerisque ligula ullamcorper. ";
preg_match_all("~\|(.*?)\|~", $text,$vysledok);

echo "<pre>";
var_export($vysledok);
Neas
Profil
__construct:
rozhodně lepší řešení, než moje :)
zdenek
Profil
__construct:

zobrazí mi to tohle:

array (
  0 => 
  array (
    0 => '|ipsum|',
    1 => '|Duis molestie nibh id|',
  ),
  1 => 
  array (
    0 => 'ipsum',
    1 => 'Duis molestie nibh id',
  ),
)


co s tím dál?? já s tím ještě potřebuji pracovat.
jak se dostat k těm záznamům?
Kcko
Profil
zdenek

php.net -> foreach
pokud chceš pracovat s PHP je nezbytné se naučit aspon základy.
zdenek
Profil
koukal jsem se ale nepochopil jsem to. prosím pomůžeš mi? Kcko

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:

0