2017-03-03 2 views
1

Ich versuche, einen Teil wie folgt zu finden:einfach php strpos nicht Wert finden

// get needle for strpos 
$someStringContainingHtmlTags = '<table><td class="size1of2 bold">Order no</td></div><td class="size1of2" data-template="productBestnr">64210</td></table>'; 

$re = '/<td class="size1of2" data-template="productBestnr">\d+<\/td>/'; 
preg_match($re, $someStringContainingHtmlTags , $matches); 

$art = (string)$matches[0]; 

$needle = '<td class="size1of2" data-template="productBestnr">'.$art.'</td>'; 

// echos nothing 
echo strpos($someStringContainingHtmlTags , $needle); 

Wenn ich ersetzen $ Kunst mit dem tatsächlichen Wert 64210, strpos funktioniert.

Vielen Dank für Ihre Hilfe!

+3

Bitte einen entsprechenden Code für '$ str' Variable hinzufügen. –

+0

Ich habe es schon getan – Lyuba

+0

danke für die Bearbeitung :) –

Antwort

0

Als @Sir McPotato Sie Ausdruck in Gruppe setzen gesagt müssen. Zweites Element des matches kehrt 64210

<?php 
// get needle for strpos 
$someStringContainingHtmlTags = '<table><td class="size1of2 bold">Order no</td></div><td class="size1of2" data-template="productBestnr">64210</td></table>'; 

$re = '/<td class="size1of2" data-template="productBestnr">(\d+)<\/td>/'; 
preg_match($re, $someStringContainingHtmlTags , $matches); 

$art = (string)$matches[1]; 

$needle = '<td class="size1of2" data-template="productBestnr">'.$art.'</td>'; 

// echos nothing 
echo strpos($someStringContainingHtmlTags , $needle); 
+0

Danke, das hat funktioniert. Ich dachte, dass '$ matches [0]' meinen Wert enthält ... – Lyuba

+0

Ein wenig Upvote wärmt mein Kartoffelherz :) –

0

prüfen diese,

$someStringContainingHtmlTags = '<table><td class="size1of2 bold">Order no</td></div><td class="size1of2" data-template="productBestnr">64210</td></table>'; 
$re = '/<td class="size1of2" data-template="productBestnr">\d+<\/td>/'; 
preg_match($re, $someStringContainingHtmlTags , $matches); 
$art = (string)$matches[0]; 
// echos nothing 
echo strpos($someStringContainingHtmlTags , $art); 

Ihre $ Kunst ist eigentlich Ihre Nadel. Und du hast Niddle innerhalb der Nadel hinzugefügt.

echo Sobald $ Kunst Sie es bekommen.

+0

Ich muss vollständige Zeichenfolge mit HTML-Tags finden, und $ art wird dynamisch hinzugefügt, so dass ich es in einer Variablen speichern – Lyuba

+0

Möchten Sie Wert 64210 holen? – rahulsm

+0

Ich möchte pos einer Zeichenkette finden, die '$ art' mit einer größeren Zeichenkette enthält. – Lyuba

1

Um Ihre $art den korrekten Wert (64210) tou zu erhalten, sollten Sie die \d in eine Gruppe setzen: $re = '/<td class="size1of2" data-template="productBestnr">(\d+)<\/td>/';

+0

finde ich '$ art' richtig mit' preg_match', kann ich nicht finden ' ''. $ Kunst.‘ ''mit' strpos' – Lyuba