0
$results = simplexml_load_string($results);
foreach($results as $result){
    $result_title = $result->label;
    $result_title = preg_replace('#[^a-zA-Z]+Extra Title#', '', $result_title);
    $result_title = ltrim($result_title);

最初の preg_replace は、$result->label (XML オブジェクトとして var_dumps) の末尾にあるパターンを取り除き、XML オブジェクトではなく文字列を出力します。

preg_replace は文字列に対してのみ機能し、XML オブジェクトに対しては機能しないと思っていたので、これは驚くべきことです。$resultの Avar_dumpは以下を明らかにします:

object(SimpleXMLElement)#1003 (1) { [0]=> string(31) " Some Text > Extra Title" }

「Some Text」の前の余分な空白に注意してください。ただし、 2 番目の場合、次のltrim($result_title);エラーが発生します。

キャッチされていない TypeError: オブジェクト [オブジェクト オブジェクト] にメソッド 'suggest' がありません

それで、私は何を扱っていますか?文字列かオブジェクトか? また、空白を削除するにはどうすればよいですか?

最初の空白に対して preg_replace を試行しても、上記と同じエラーが出力されます。

$result_title = preg_replace('/\s/', '', $result_title, 1);
4

0 に答える 0