2016-07-12 14 views
0

ich versuche, einen Text nach dem Auftreten eines bestimmten Zeichen zu schneiden, in diesem Fall:Cut String nach bestimmten Zeichen in php

Der Text Beispiel:

...text?“ Text, 

ich das versucht, folgende:

$pos2 = strpos($title, '“'); 
if ($pos2 == true) { 
      $header_title = substr($title, 0, $pos2); 
    { 

Aber es schneidet immer , auch. Ich habe versucht, Zahlen zu $ ​​pos2 hinzuzufügen, konnte es aber nicht herausfinden. Wie kann ich nach dem angegebenen Zeichen schneiden?

+0

Das Beispieltext ** ** kein Text nach dem char hat ... – FirstOne

+0

Was tun meinst du mit 'schneiden'? Möchten Sie nur diesen Teil oder möchten Sie ihn entfernen? – FirstOne

+0

Redigierte den Text. Ich will es nur meinem Teil vor dem "aber inklusive" geben. – letobili

Antwort

2

Der strpos() Befehl erfordert drei Parameter

1) Die Variable

2) Die Startspalte und

3) die Anzahl der Zeichen

Wenn Sie Sie die gerade substr($title,$pos2) verwenden bekommen Text von der Spalte "pos2" bis zum Ende der Zeichenfolge.

<?php 
$title = 'before“after'; 
$pos2 = strpos($title, '“'); 
if ($pos2 !== false) { 
    $header_title = substr($title,0, $pos2+1); 
} else { 
    // you might want to set $header_title to something in here 
    $header_title = 'ELSE'; 
} 
echo $header_title; 

RESULT

before“ 

für not equal false Test auch als strpos FALSCH zurückgibt, wenn Sie für

Nach all der Diskussion suchen nicht den Charakter finden unter ich es lief auf meinem lokaler Apache/PHP

<?php 
$title = 'before“after'; 
$pos2 = strpos($title, '“'); 
if ($pos2 !== false) { 
    $header_title = substr($title,0,$pos2+1); 
} else { 
    // you might want to set $header_title to something in here 
    $header_title = 'ELSE'; 
} 
?> 
<!DOCTYPE html> 
<html> 
<head> 
    <title><?php echo $header_title;?></title> 
</head> 
<body> 

    <div> Ello Wurld</div> 

</body> 
</html> 

Produziert: enter image description here

+0

Danke! Ich habe es versucht, aber es gibt mir nur "vorher" und nicht "vorher" "... – letobili

+1

Nun, es funktioniert für mich und @FirstOne Siehe https://eval.in/604294 – RiggsFolly

+0

@letobili Überprüfen Sie, ob Sie das richtige Zeichen verwenden (vielleicht '' '- Wenn Sie genauer hinsehen, ist es nicht wirklich' "', es ist leicht geneigt). Solange beide gleich sind, ist es gut zu gehen. Überprüfen Sie, welche Char Sie im Text haben und verwenden Sie sie dann in der Funktion 'strpos'. – FirstOne

0

Ich denke, das für jedermann nützlich sein kann:

$title = 'sometext?"othertext'; 
$pos2 = strpos($title, '"'); 

$title = substr($title, 0, $pos2+1); 

echo $title; 

Ausgabe:

sometext“


Wenn Sie den Text nach dem " Marke:

$title = 'sometext?"othertext'; 
$pos2 = strpos($title, '"'); 

$title = substr($title, $pos2+1); 

echo $title; 

Ausgang:

othertext

+0

Beachten Sie, dass sie unterschiedliche Zwecke haben. Geben Sie die Ausgabe und Sie werden sehen, dass Ihr Code bekommt was ** nach ** die '" 'und @ RiggsFolly das bekommt, was ** vor ** ... – FirstOne

+0

Ehrlich, ich dafür entschuldigen, verstand ich, dass er will um den Text nach dem Erscheinen des ". Wie auch immer, tut mir leid. –

+0

Keine Panik. Vielleicht tut er das. – RiggsFolly

Verwandte Themen